├── .gitignore ├── .travis.yml ├── .utility ├── before_script.sh ├── build.sh └── publish-artifacts.sh ├── LICENSE ├── README.md ├── checkstyle-suppressions.xml ├── checkstyle.xml ├── doc ├── 404.html ├── Gemfile ├── Gemfile.lock ├── LICENSE.md ├── README.md ├── _includes │ ├── head.html │ └── sidebar.html ├── _layouts │ ├── default.html │ ├── page.html │ └── post.html ├── generate_config_yml ├── getting_started.md ├── imgs │ ├── overview.png │ ├── state_transition.png │ └── workflow.gif ├── index.md └── public │ └── css │ ├── hyde.css │ ├── poole.css │ └── syntax.css ├── findbugs-exclude.xml ├── pom.xml └── src ├── main ├── java │ └── com │ │ └── github │ │ └── zk1931 │ │ └── jzab │ │ ├── AckProcessor.java │ │ ├── ClusterConfiguration.java │ │ ├── CommitProcessor.java │ │ ├── DaemonThreadFactory.java │ │ ├── Election.java │ │ ├── ElectionMessageFilter.java │ │ ├── FastLeaderElection.java │ │ ├── FileUtils.java │ │ ├── Follower.java │ │ ├── Leader.java │ │ ├── Log.java │ │ ├── MessageBuilder.java │ │ ├── MessageQueueFilter.java │ │ ├── MessageTuple.java │ │ ├── NettyTransport.java │ │ ├── Participant.java │ │ ├── ParticipantState.java │ │ ├── PeerHandler.java │ │ ├── PendingRequests.java │ │ ├── PersistentState.java │ │ ├── PreProcessor.java │ │ ├── RequestProcessor.java │ │ ├── RollingLog.java │ │ ├── SimpleLog.java │ │ ├── SnapshotProcessor.java │ │ ├── StateMachine.java │ │ ├── SyncProposalProcessor.java │ │ ├── Transaction.java │ │ ├── Transport.java │ │ ├── Zab.java │ │ ├── ZabConfig.java │ │ ├── ZabException.java │ │ ├── Zxid.java │ │ └── package-info.java └── resources │ └── zab_message.proto └── test ├── java └── com │ └── github │ └── zk1931 │ └── jzab │ ├── AckProcessorTest.java │ ├── FastLeaderElectionTest.java │ ├── FileUtilsTest.java │ ├── LogTest.java │ ├── NettyTransportTest.java │ ├── PersistentStateTest.java │ ├── SnapshotTest.java │ ├── SyncProposalProcessorTest.java │ ├── TestBase.java │ ├── TestStateMachine.java │ ├── ZabTest.java │ └── ZxidTest.java └── resources ├── generate-test-certificates └── logback-test.xml /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/.travis.yml -------------------------------------------------------------------------------- /.utility/before_script.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/.utility/before_script.sh -------------------------------------------------------------------------------- /.utility/build.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/.utility/build.sh -------------------------------------------------------------------------------- /.utility/publish-artifacts.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/.utility/publish-artifacts.sh -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/README.md -------------------------------------------------------------------------------- /checkstyle-suppressions.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/checkstyle-suppressions.xml -------------------------------------------------------------------------------- /checkstyle.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/checkstyle.xml -------------------------------------------------------------------------------- /doc/404.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/404.html -------------------------------------------------------------------------------- /doc/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | gem 'github-pages' 3 | -------------------------------------------------------------------------------- /doc/Gemfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/Gemfile.lock -------------------------------------------------------------------------------- /doc/LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/LICENSE.md -------------------------------------------------------------------------------- /doc/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/README.md -------------------------------------------------------------------------------- /doc/_includes/head.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/_includes/head.html -------------------------------------------------------------------------------- /doc/_includes/sidebar.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/_includes/sidebar.html -------------------------------------------------------------------------------- /doc/_layouts/default.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/_layouts/default.html -------------------------------------------------------------------------------- /doc/_layouts/page.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/_layouts/page.html -------------------------------------------------------------------------------- /doc/_layouts/post.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/_layouts/post.html -------------------------------------------------------------------------------- /doc/generate_config_yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/generate_config_yml -------------------------------------------------------------------------------- /doc/getting_started.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/getting_started.md -------------------------------------------------------------------------------- /doc/imgs/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/imgs/overview.png -------------------------------------------------------------------------------- /doc/imgs/state_transition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/imgs/state_transition.png -------------------------------------------------------------------------------- /doc/imgs/workflow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/imgs/workflow.gif -------------------------------------------------------------------------------- /doc/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/index.md -------------------------------------------------------------------------------- /doc/public/css/hyde.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/public/css/hyde.css -------------------------------------------------------------------------------- /doc/public/css/poole.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/public/css/poole.css -------------------------------------------------------------------------------- /doc/public/css/syntax.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/doc/public/css/syntax.css -------------------------------------------------------------------------------- /findbugs-exclude.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/findbugs-exclude.xml -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/AckProcessor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/AckProcessor.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/ClusterConfiguration.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/ClusterConfiguration.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/CommitProcessor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/CommitProcessor.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/DaemonThreadFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/DaemonThreadFactory.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/Election.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/Election.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/ElectionMessageFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/ElectionMessageFilter.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/FastLeaderElection.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/FastLeaderElection.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/FileUtils.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/FileUtils.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/Follower.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/Follower.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/Leader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/Leader.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/Log.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/Log.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/MessageBuilder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/MessageBuilder.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/MessageQueueFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/MessageQueueFilter.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/MessageTuple.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/MessageTuple.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/NettyTransport.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/NettyTransport.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/Participant.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/Participant.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/ParticipantState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/ParticipantState.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/PeerHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/PeerHandler.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/PendingRequests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/PendingRequests.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/PersistentState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/PersistentState.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/PreProcessor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/PreProcessor.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/RequestProcessor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/RequestProcessor.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/RollingLog.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/RollingLog.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/SimpleLog.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/SimpleLog.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/SnapshotProcessor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/SnapshotProcessor.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/StateMachine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/StateMachine.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/SyncProposalProcessor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/SyncProposalProcessor.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/Transaction.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/Transaction.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/Transport.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/Transport.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/Zab.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/Zab.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/ZabConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/ZabConfig.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/ZabException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/ZabException.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/Zxid.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/Zxid.java -------------------------------------------------------------------------------- /src/main/java/com/github/zk1931/jzab/package-info.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/java/com/github/zk1931/jzab/package-info.java -------------------------------------------------------------------------------- /src/main/resources/zab_message.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/main/resources/zab_message.proto -------------------------------------------------------------------------------- /src/test/java/com/github/zk1931/jzab/AckProcessorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/test/java/com/github/zk1931/jzab/AckProcessorTest.java -------------------------------------------------------------------------------- /src/test/java/com/github/zk1931/jzab/FastLeaderElectionTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/test/java/com/github/zk1931/jzab/FastLeaderElectionTest.java -------------------------------------------------------------------------------- /src/test/java/com/github/zk1931/jzab/FileUtilsTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/test/java/com/github/zk1931/jzab/FileUtilsTest.java -------------------------------------------------------------------------------- /src/test/java/com/github/zk1931/jzab/LogTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/test/java/com/github/zk1931/jzab/LogTest.java -------------------------------------------------------------------------------- /src/test/java/com/github/zk1931/jzab/NettyTransportTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/test/java/com/github/zk1931/jzab/NettyTransportTest.java -------------------------------------------------------------------------------- /src/test/java/com/github/zk1931/jzab/PersistentStateTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/test/java/com/github/zk1931/jzab/PersistentStateTest.java -------------------------------------------------------------------------------- /src/test/java/com/github/zk1931/jzab/SnapshotTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/test/java/com/github/zk1931/jzab/SnapshotTest.java -------------------------------------------------------------------------------- /src/test/java/com/github/zk1931/jzab/SyncProposalProcessorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/test/java/com/github/zk1931/jzab/SyncProposalProcessorTest.java -------------------------------------------------------------------------------- /src/test/java/com/github/zk1931/jzab/TestBase.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/test/java/com/github/zk1931/jzab/TestBase.java -------------------------------------------------------------------------------- /src/test/java/com/github/zk1931/jzab/TestStateMachine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/test/java/com/github/zk1931/jzab/TestStateMachine.java -------------------------------------------------------------------------------- /src/test/java/com/github/zk1931/jzab/ZabTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/test/java/com/github/zk1931/jzab/ZabTest.java -------------------------------------------------------------------------------- /src/test/java/com/github/zk1931/jzab/ZxidTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/test/java/com/github/zk1931/jzab/ZxidTest.java -------------------------------------------------------------------------------- /src/test/resources/generate-test-certificates: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/test/resources/generate-test-certificates -------------------------------------------------------------------------------- /src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zk1931/jzab/HEAD/src/test/resources/logback-test.xml --------------------------------------------------------------------------------