I'm currently using LShift's mercurial-server to host some mercurial repositories. It looks like the number of repositories as well as their size is expected to grow tremendously.
To combat that, I'm planning on hosting the repositories on a cluster of file servers separate from the machine hosting the mercurial-server app.
My big concern is how does the mercurial-server app handle requests from clients? Take a request like "hg clone ssh://hg@server/repo". I know it validates the key and ensure the user is allowed to clone that repo, but does it then handle the tunneling of the request or shunt that off to the file server?
Basically, does the mercurial-server machine need the capacity to transmit the GBs of data or just enough capacity to parse the requests?
Hey Paul, I realize my request wasn't super clear, so I'm taking another shot at it. I really want to know how mercurial-server will work when the repos are physically separate. Will the mercurial-server need to handle the bandwidth of the actual repositories flowing through it?
Potential Implementation 1
File is passed through mercurial-server:
Potential Implementation 2
File is sent directly to requestor (not using mercurial-server bandwidth):