[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jgit-dev] Ketch: multi-master replicated Git

Hi Shawn,
worth sharing on the repo-discuss mailing list as well :-)

Could then I use Git Ketch to manage the agreement process on pushes (as Cassandra gives me some headache with that) and still use another DFS implementation based on Git objects on Cassandra?

Luca.

> On 13 Jan 2016, at 14:54, Shawn Pearce <spearce@xxxxxxxxxxx> wrote:
> 
> Google is starting to contribute a new multi-master implementation,
> calling it Git Ketch. Changes are on the Eclipse Gerrit[1].
> 
> 
> What is Git Ketch?
> ------------------
> Git Ketch is a multi-master Git repository management system. Writes
> (such as git push) can be started on any server, at any time. Writes
> are successful only if a majority of participant servers agree.
> 
> Acked writes are durable against server failure, due to a majority of
> the participants storing all required objects.
> 
> 
> Do I need DFS?
> --------------
> No. We realized not everyone wants to run JGit DFS. Git Ketch is a
> higher-level, storage-agnostic service that can use both classical
> local file repositories, and DFS type repositories.
> 
> 
> Do I need JGit?
> ---------------
> Sort of.
> 
> The Ketch Leader process running the consensus algorithm is currently
> implemented in Java, relying on JGit. However...
> 
> Any Git repository served by Git >= 2.4.0 can act as a voting
> participant (the required feature is `git push --atomic`). The
> consensus algorithm runs on the Git wire protocol.
> 
> 
> Where's the rest?
> -----------------
> Google's prior multi-master implementation is 4 years old and heavily
> intertwined with internal source code. We are rewriting the
> multi-master logic and open sourcing as we go. We think this will make
> it easier for the JGit project to review and digest.
> 
> Unfortunately, major portions are being rewritten from scratch, as
> there are segments deeply connected to our internal implementation of
> JGit DFS on Google Bigtable, or to our internal authentication and RPC
> protocols. None of that makes sense in the open source JGit project.
> 
> So, the rest is Coming Soon(TM). We are working on it.
> You can help by providing feedback. :)
> 
> 
> Why is it called Git Ketch?
> ---------------------------
> Git Ketch is modeled on the Raft Consensus Algorithm[2]. A ketch[3]
> sailing vessel is faster and more nimble than a raft[4]. It can also
> carry more source codes.
> 
> Git Ketch front-loads replication costs, which we think vaguely
> resembles a ketch sailing vessel's distinguishing feature of the main
> mast on the front of the ship.
> 
> 
> Footnotes
> ---------
> [1] https://git.eclipse.org/r/64206
> [2] https://raft.github.io/
> [3] https://www.google.com/search?q=ketch&tbm=isch
> [4] https://www.google.com/search?q=raft&tbm=isch
> _______________________________________________
> jgit-dev mailing list
> jgit-dev@xxxxxxxxxxx
> To change your delivery options, retrieve your password, or unsubscribe from this list, visit
> https://dev.eclipse.org/mailman/listinfo/jgit-dev