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

Re: Poor performance for large software repositories downloading to CIFS shares

From: Les Mikesell <lesmikesell_at_gmail.com>
Date: Tue, 13 Jul 2010 15:57:52 -0500

On 7/13/2010 2:50 PM, David Brodbeck wrote:
>
> On Jul 13, 2010, at 5:50 AM, Les Mikesell wrote:
>
>> Nico Kadel-Garcia wrote:
>>> I've got some colleagues with a rather large Subversion repository
>>> whose trunk includes over 10,000 files and over 500 Meg of actual
>>> content for various reasons. What we're finding is that checking it
>>> out it on a Windows client to a local hard drive takes perhaps 3
>>> minutes. Downloading it to a mounted Windows (CIFS) share takes
>>> roughly half an hour.
>>
>> What's the server on the CIFS side? If it is Linux/samba, it may be the overhead of making a case sensitive filesystem look case insensitive (consider what has to happen when you create a new file in a large directory and have to check if the name already exists).
>
> This could be a lot of it if a substantial number of files are in one flat subdirectory. CIFS really, really does not deal with large directories well. Neither does NFS, but the way Windows handles directories tends to make it worse.

I think CIFS is just the network protocol. The real issue is on the
physical filesystem side. When you open a file for writing, the
underlying system has to determine if that file name already exists and
if not, find or create a new filename slot to create it. And this has to
be done atomically, since other processes might be trying to create the
same file at the same time and only one can succeed. This is bad enough
in a large directory when you let the OS deal with exact matches, but if
you are faking case insensitivity you have to do much more work in user
space to find the potential collisions with everything locked for longer
times.

-- 
   Les Mikesell
    lesmikesell_at_gmail.com
Received on 2010-07-13 23:00:35 CEST

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

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