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
----- 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-09-08 07:34:17 CEST