You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Vasily Tunegov <va...@gmail.com> on 2012/09/19 11:05:17 UTC

Subject: [PATCH] WC rep cache optimization for some file systems like NTFS on Windows

[[[
   WC rep cache optimization for some file systems like NTFS on Windows
]]]

Hello,

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

For detailed results see attached files: std.180.txt, std.patch.txt,
ssd.180.txt, ssd.patch.txt

Re: Subject: [PATCH] WC rep cache optimization for some file systems like NTFS on Windows

Posted by Vasily Tunegov <va...@gmail.com>.
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
<ph...@wandisco.com>wrote:

> Vasily Tunegov <va...@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
>

Re: Subject: [PATCH] WC rep cache optimization for some file systems like NTFS on Windows

Posted by Philip Martin <ph...@wandisco.com>.
Vasily Tunegov <va...@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