]> source.dussan.org Git - jgit.git/commit
Ketch: Basic replication system 06/64206/6
authorShawn Pearce <spearce@spearce.org>
Mon, 18 Jan 2016 18:33:31 +0000 (10:33 -0800)
committerShawn Pearce <spearce@spearce.org>
Wed, 20 Jan 2016 07:03:32 +0000 (23:03 -0800)
commit9b33f4aeeb237fd2e4126fc296a814aed2210a40
tree69365dd149a27f0db4069faea948e444c1ceb164
parenta01d6c1e55093529aaddc54bb6082a818f0956c6
Ketch: Basic replication system

Git Ketch is a multi-master Git repository management system.  Writes
are successful only if a majority of participant servers agree.  Acked
writes are durable against server failures as a majority of the
participants store all required objects.

Git Ketch is modeled on the Raft Consensus Algorithm[1].  A ketch
sailing vessel is faster and more nimble than a raft.  It can also
carry more source codes.

Git Ketch front-loads replication costs, which vaguely resembles a
ketch sailing vessel's distinguishing feature of the main mast on the
front of the ship.

[1] https://raft.github.io/
Change-Id: Ib378dab068961fc7de624cd96030266660b64fb4
22 files changed:
org.eclipse.jgit/META-INF/MANIFEST.MF
org.eclipse.jgit/resources/org/eclipse/jgit/internal/ketch/KetchText.properties [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/ElectionRound.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/KetchConstants.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/KetchLeader.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/KetchReplica.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/KetchSystem.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/KetchText.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/LagCheck.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/LeaderSnapshot.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/LocalReplica.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/LogIndex.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/Proposal.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/ProposalRound.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/RemoteGitReplica.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/ReplicaConfig.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/ReplicaFetchRequest.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/ReplicaPushRequest.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/ReplicaSnapshot.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/Round.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/StageBuilder.java [new file with mode: 0644]
org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/package-info.java [new file with mode: 0644]