Hi all,
Thanks for your quick reply. I didn't pick the right words when starting the discussion.
I don't want to build a "scalable" solution, but really just a "high-available" one. :)
So the `N` is either 1 or 2.
@Matthias
> For option 1 I'd recommend you give Gerrit with its high-availability plugin a try
> and if you face issues collaborate with the Gerrit community to improve this solution
> instead of starting your own implementation which is for sure more work.
> For option 2 you may consider to join an initiative started by Luca Milanesio, one
> of the Gerrit maintainers, to implement an open source implementation of the
> JGit DFS API on Cassandra. The current PoC patch series is maintained here
I'll take a look into these options with my colleagues.
> I don't get why you need a scalable server if only a few of your thousands of
> repositories are actively used. There are many Gerrit installations serving
> thousands of repositories from a single server.
In our company, we provide customers a web editor, which allows them to edit their
files through the browsers. Behind the screen, 2 types of Git repositories are used:
- normal Git repository: workspace
- bare Git repository: remote git server
Normal Git repository are served as workspace. Each time a user connect, we create
a workspace for him (clone from remote). It's bounded to the HTTP session. Each
time user saves something, we store the data in a workspace. When they decide to
push / pull, we communicate with the remote Git server. We also maintain a caching
system to accelerate the clone. So briefly:
Git Server
^ |
| v
| Git Cache (web-server)
| |
| v
Workspace (web-server)
Using solution 1 with 2 GitServlets allows us to remove the Git Cache layout, but still
have a high speed for cloning repositories. I think I went too deep into the internal
implementation. I can start another thread if needed.
@Luca
> How many repos, users and locations are you going to support?
Thousands of repos, thousands of users, locations is world-wide but principally in US and France.
@Martin
Thanks for your advise. I didn't know all these about NFS and Git.
Thank you guys for your precious advice. I'll study all these notes with my colleagues today.
Have a nice day!
Mincong