I would like to know if SVN has a specified limitations of how many users and repositories it can sustain?
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.Sign up to join this community
There are no limitations built into Subversion. However, there are practical limits if the repositories are used a lot.
You might have a misconception that leads you to believe you do something special at install time to choose limits. You don't. When you use the 'svnadmin create /path/here' command, that is when you choose things like which back-end to use. Just use the default, it's better.
There are some things to consider though. For instance, if you have 100 million repositories all served from the same machine, the disk and/or CPU will eventually max out. I suspect the disk will first.
You might want to look at the subversion testimonials page: Subversion Testimonials
I think the biggest decision you have to make is to decide whether to go for the Berkely DB backend or the FSFS backend.
I don't think so, though obviously I've not tested it with a million users.. but I know a site that has - Google code uses svn and it has quite a lot of code and users.
For my part, we use active directory integration (through VisualSVN Server) so we're practically limited by ADs limitations (which I think is roughly 2 billion objects). I hold a SVN repo that is 12Gb in size, so it scales quite happily to large repositories and speed is not an issue for our repo even though its being run inside a virtual machine.
For further scalability, you can distribute the load using svnsync to create mirrors.
In short, I don't think you'll find a scalability problem with it.
You can distribute the load of heavily used repositories between servers.
You could setup
It also seems FSFS repositories can be safely shared through NFS so you could have a few SVN nodes serving the same repository through NFS. That may not scale very well though.
In extreme cases you could develop you own repository back-end like Google did.
Keep in mind the limitations of the system(s) managing the SVN databases. They may have limits such as the number of users or scalability issues with the number of files or directories in use. For example, Linux ext3 fs may search directories linearly, which may be an issue with millions of repos. There may be other limits such as the number of users registered on the system. Research these areas and test if necessary.
Re: testing. You could use a shell script to generate as many users as you expect to use. Then use another script to generate repos for each user with as many files as you would typically expect. Creating a comprehensive test suite is beyond the scope that can be presented here. Hope that gets you on your way.