[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Subject: [PATCH] WC rep cache optimization for some file

From: Vasily Tunegov <vasily.tunegov_at_gmail.com>
Date: Wed, 19 Sep 2012 22:18:10 +0400

Hi, Bert

I understand what WAL mode is not suitable for svn. But my patch uses
PERSIST mode which give very good results, e.g. for NTFS on Windows as I
shown in tests.

One problem, as says Philip Martin, is reduced performance on NFS disks.
But I don't understand why. The number of file operations in PERSIST mode
greatly reduced. Unfortunaly I don't have NFS disk, if it means Network
File System developed by Sun Microsystems. Windows is using SMB protocol to
access files via network. I will test SBM and put result here later.

Best regards,
Vasily Tunegov.

On Wed, Sep 19, 2012 at 7:30 PM, Bert Huijben <bert_at_vmoo.com> wrote:

> systems like NTFS on Windows
> MIME-Version: 1.0
> Content-Type: multipart/alternative; boundary=20cf3074b2a0fd54e504ca0ed837
>
> --20cf3074b2a0fd54e504ca0ed837
> Content-Type: text/plain; charset="utf-8"
> Content-Transfer-Encoding: 7bit
>
> For your own install you can enable the WAL on the file and other users
> of the db will use it. I don't think we can enable it as default (like
> you said)
>
> Bert Huijben (Cell phone)
> From: Vasily Tunegov
> Sent: 19-9-2012 7:30
> To: Philip Martin
> Cc: dev_at_subversion.apache.org
> Subject: Re: Subject: [PATCH] WC rep cache optimization for some file
> systems like NTFS on Windows
> Hi, Philip
>
> I'm using SQLite 3.7.14.
> I tried to test checkout for our project code base, hosted on svn 1.7.6
> server (93 984 Files, 3 204 Folders, 1.97GB). There are results:
>
> svn co snv://server/project/branches/branche src -q
>
> Standard disk:
> svn.r1387070 - 256.8 sec
> svn.patch - 152.2 sec
>
> My research shows that PERSIST journal mode greatly reducing the number of
> I/O operations, such as creating, opening and closing SQLite journal files
> on the disk. The best option here is WAL journal mode. But it works only if
> SQLite database is used from one computer (it use memory mapped files API).
> I don't know is this restriction is important to svn client.
>
> Best regards,
> Vasily Tunegov.
>
> On Wed, Sep 19, 2012 at 2:30 PM, Philip Martin
> <philip.martin_at_wandisco.com>wrote:
>
> > Vasily Tunegov <vasily.tunegov_at_gmail.com> writes:
> >
> > > Please review my patch (see attached file patch.txt). It improve svn
> > client
> > > performance on file systems like NTFS on Windows. Maybe on some other
> > file
> > > systems, e.g. NFS, but I didn't test it. This patch switch rep cache db
> > > journal mode from DELETE (by default) to PERSISTENT. For more info
> about
> > > journal modes in SQLite see
> > > http://www.sqlite.org/pragma.html#pragma_journal_mode.
> > >
> > > I have tested this patch on my desktop (Core i7-2600, 16Gb, Windows 7
> x64
> > > Enterprise) for two disk drives: standard and ssd. For tests I used
> > > Subversion Benchmark Tool, see
> > >
> >
> https://ctf.open.collab.net/sf/frs/do/listReleases/projects.csvn/frs.subversion_benchmark_tool
> > .
> > > For tested application I used svn 1.8.0 from trunk, revision 1387070.
> > >
> > > Subversion Benchmark Tool tests, total results:
> > >
> > > Standard disk:
> > > svn.r1387070 - 3:05.895
> > > svn.patch - 2:06.548
> > >
> > > SSD disk:
> > > svn.r1387070 - 2:11.504
> > > svn.patch - 1:38.397
> >
> > Which version of SQLite?
> >
> > On my Linux systems this gives a small improvement in checkout
> > performance for working copies on local disks, unfortunately it also
> > reduces checkout performance for working copies on NFS disks.
> >
> > I'm using SQLite 3.7.12.1 and 3.7.13.
> >
> > --
> > Certified & Supported Apache Subversion Downloads:
> > http://www.wandisco.com/subversion/download
> >
>
> --20cf3074b2a0fd54e504ca0ed837
> Content-Type: text/html; charset="utf-8"
> Content-Transfer-Encoding: quoted-printable
>
> <html><head><meta content=3D"text/html; charset=3Dutf-8"
> http-equiv=3D"Cont=
> ent-Type"></head><body><div><div style=3D"font-family: Calibri,sans-serif;
> =
> font-size: 11pt;">For your own install you can enable the WAL on the file
> a=
> nd other users of the db will use it. I don't think we can enable it as
> def=
> ault (like you said)<br><br>Bert Huijben (Cell
> phone)<br></div></div><hr><s=
> pan style=3D"font-family: Tahoma,sans-serif; font-size: 10pt; font-weight:
> =
> bold;">From: </span><span style=3D"font-family: Tahoma,sans-serif;
> font-siz=
> e: 10pt;">Vasily Tunegov</span><br><span style=3D"font-family:
> Tahoma,sans-=
> serif; font-size: 10pt; font-weight: bold;">Sent: </span><span
> style=3D"fon=
> t-family: Tahoma,sans-serif; font-size: 10pt;">19-9-2012
> 7:30</span><br><sp=
> an style=3D"font-family: Tahoma,sans-serif; font-size: 10pt; font-weight:
> b=
> old;">To: </span><span style=3D"font-family: Tahoma,sans-serif; font-size:
> =
> 10pt;">Philip Martin</span><br><span style=3D"font-family:
> Tahoma,sans-seri=
> f; font-size: 10pt; font-weight: bold;">Cc: </span><span
> style=3D"font-fami=
> ly: Tahoma,sans-serif; font-size: 10pt;">dev_at_subversion.apache.org
> </span><b=
> r><span style=3D"font-family: Tahoma,sans-serif; font-size: 10pt;
> font-weig=
> ht: bold;">Subject: </span><span style=3D"font-family: Tahoma,sans-serif;
> f=
> ont-size: 10pt;">Re: Subject: [PATCH] WC rep cache optimization for some
> fi=
> le systems like NTFS on Windows</span><br><br></body></html><div
> style=3D"c=
>
> olor:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-c=
> olor:rgb(255,255,255)">Hi,=C2=A0Philip</div><div
> style=3D"color:rgb(34,34,3=
>
> 4);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255=
> ,255)">
> <br></div><span
> style=3D"color:rgb(34,34,34);font-family:arial,sans-serif;f=
> ont-size:13px;background-color:rgb(255,255,255)">I&#39;m using SQLite
> 3.7.1=
> 4.=C2=A0</span><div
> style=3D"color:rgb(34,34,34);font-family:arial,sans-ser=
> if;font-size:13px;background-color:rgb(255,255,255)">
> I tried to test checkout for our project code base, hosted on svn 1.7.6
> ser=
> ver (93 984 Files, 3 204 Folders, 1.97GB). There are results:</div><div
> sty=
>
> le=3D"color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;backg=
> round-color:rgb(255,255,255)">
> <br></div><div
> style=3D"color:rgb(34,34,34);font-family:arial,sans-serif;fo=
> nt-size:13px;background-color:rgb(255,255,255)">svn co
> snv://server/project=
> /branches/branche src -q</div><div
> style=3D"color:rgb(34,34,34);font-family=
> :arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
> <br></div><div
> style=3D"color:rgb(34,34,34);font-family:arial,sans-serif;fo=
> nt-size:13px;background-color:rgb(255,255,255)">Standard
> disk:<br>svn.r1387=
> 070 - 256.8 sec<br>svn.patch - 152.2 sec<br><br>My research shows that
> PERS=
> IST journal mode greatly reducing the number of I/O operations, such as
> cre=
> ating, opening and closing SQLite journal files on the disk. The best
> optio=
> n here is WAL journal mode. But it works only if SQLite database is used
> fr=
> om one computer (it use memory mapped files API). I don&#39;t know is this
> =
> restriction is important to svn client.</div>
> <div
> style=3D"color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13=
> px;background-color:rgb(255,255,255)"><br></div><div
> style=3D"color:rgb(34,=
>
> 34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255=
> ,255,255)">
> Best regards,</div><div
> style=3D"color:rgb(34,34,34);font-family:arial,sans=
> -serif;font-size:13px;background-color:rgb(255,255,255)">Vasily
> Tunegov.</d=
> iv><br><div class=3D"gmail_quote">On Wed, Sep 19, 2012 at 2:30 PM, Philip
> M=
> artin <span dir=3D"ltr">&lt;<a href=3D"mailto:philip.martin_at_wandisco.com"
> t=
> arget=3D"_blank">philip.martin_at_wandisco.com</a>&gt;</span> wrote:<br>
> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
> .8ex;border-left:1p=
> x #ccc solid;padding-left:1ex"><div class=3D"im">Vasily Tunegov &lt;<a
> href=
> =3D"mailto:vasily.tunegov_at_gmail.com">vasily.tunegov_at_gmail.com</a>&gt;
> write=
> s:<br>
>
> <br>
> &gt; Please review my patch (see attached file patch.txt). It improve svn
> c=
> lient<br>
> &gt; performance on file systems like NTFS on Windows. Maybe on some other
> =
> file<br>
> &gt; systems, e.g. NFS, but I didn&#39;t test it. This patch switch rep
> cac=
> he db<br>
> &gt; journal mode from DELETE (by default) to PERSISTENT. For more info
> abo=
> ut<br>
> &gt; journal modes in SQLite see<br>
> &gt; <a href=3D"http://www.sqlite.org/pragma.html#pragma_journal_mode"
> targ=
> et=3D"_blank">http://www.sqlite.org/pragma.html#pragma_journal_mode
> </a>.<br=
> >
> &gt;<br>
> &gt; I have tested this patch on my desktop (Core i7-2600, 16Gb, Windows 7
> =
> x64<br>
> &gt; Enterprise) for two disk drives: standard and ssd. For tests I
> used<br=
> >
> &gt; Subversion Benchmark Tool, see<br>
> &gt; <a href=3D"
> https://ctf.open.collab.net/sf/frs/do/listReleases/projects=
> .csvn/frs.subversion_benchmark_tool" target=3D"_blank">
> https://ctf.open.col=
> lab.net/sf/frs/do/listReleases/projects.csvn/frs.subversion_benchmark_tool
> <=
> /a>.<br>
>
> &gt; For tested application I used svn 1.8.0 from trunk, revision
> 1387070.<=
> br>
> &gt;<br>
> &gt; Subversion Benchmark Tool tests, total results:<br>
> &gt;<br>
> &gt; Standard disk:<br>
> &gt; svn.r1387070 - 3:05.895<br>
> &gt; svn.patch - 2:06.548<br>
> &gt;<br>
> &gt; SSD disk:<br>
> &gt; svn.r1387070 - 2:11.504<br>
> &gt; svn.patch - 1:38.397<br>
> <br>
> </div>Which version of SQLite?<br>
> <br>
> On my Linux systems this gives a small improvement in checkout<br>
> performance for working copies on local disks, unfortunately it also<br>
> reduces checkout performance for working copies on NFS disks.<br>
> <br>
> I&#39;m using SQLite 3.7.12.1 and 3.7.13.<br>
> <span class=3D"HOEnZb"><font color=3D"#888888"><br>
> --<br>
> Certified &amp; Supported Apache Subversion Downloads:<br>
> <a href=3D"http://www.wandisco.com/subversion/download"
> target=3D"_blank">h=
> ttp://www.wandisco.com/subversion/download</a><br>
> </font></span></blockquote></div><br>
>
> --20cf3074b2a0fd54e504ca0ed837--
>
Received on 2012-09-19 20:18:43 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.