On Wed, Sep 08, 2010 at 07:32:46AM +0200, Bert Huijben wrote:
> Because a simple test with using this lock with status shows a 70% performance increase on Windows.
>
> You can't get to this speed with just removing 50% of the info queries and Philips tests showed that this is probably the only way to get back at 1.6 status performance.
>
Bert, I see that this API isn't used anywhere yet.
If you got the time, could you explain how you envisioned this API to be used?
I'd like to take a stab at helping with improving wc-ng performance and making
use of this API seems to be the way to go.
See also r1039808 which had to be reverted because we cannot safely
invoke callbacks to the client layer while an sql statement is being
evaluated. Any ideas about how your API could help proplist?
Thanks,
Stefan
> Bert
>
> ----- Oorspronkelijk bericht -----
> Van: Hyrum K. Wright <hyrum_wright_at_mail.utexas.edu>
> Verzonden: dinsdag 7 september 2010 20:11
> Aan: Greg Stein <gstein_at_gmail.com>
> CC: dev_at_subversion.apache.org
> Onderwerp: Re: svn commit: r992390 - in /subversion/trunk/subversion: include/private/svn_sqlite.h libsvn_subr/sqlite.c libsvn_wc/wc_db.c libsvn_wc/wc_db.h
>
> On Tue, Sep 7, 2010 at 1:08 PM, Greg Stein <gstein_at_gmail.com> wrote:
> > On Fri, Sep 3, 2010 at 13:34, <rhuijben_at_apache.org> wrote:
> >> Author: rhuijben
> >> Date: Fri Sep 3 17:34:52 2010
> >> New Revision: 992390
> >>
> >> URL: http://svn.apache.org/viewvc?rev=992390&view=rev
> >> Log:
> >> Add a few helper functions to allow experimenting with SQLite operations
> >> inside SAVEPOINTs. This allows taking out a shared read lock for longer than
> >> the duration of a single SQLite statement, which gives a huge performance
> >> boost in some hacky tests. (Especially with SQLite 3.7 and on Windows, where
> >> some of the WAL code slows down SQLite more than it used to do in 3.6)
> >>
> >> * subversion/include/private/svn_sqlite.h
> >> (svn_sqlite__with_lock): New function.
> >>
> >> * subversion/libsvn_subr/sqlite.c
> >> (svn_sqlite__with_lock): New function.
> >>
> >> * subversion/libsvn_wc/wc_db.c
> >> (with_sqlite_lock_baton): New struct.
> >> (call_sqlite_lock_cb): New function.
> >> (svn_wc__db_with_sqlite_lock): New function.
> >>
> >> * subversion/libsvn_wc/wc_db.h
> >> (svn_wc__db_with_sqlite_lock): New function.
> >
> > Why is this part of the WC_DB interface?!? I see no reason to expose
> > sqlite to callers of the DB. Let alone mechanics such as locking...
>
> +1
>
> -Hyrum
Received on 2010-11-29 16:24:43 CET