├── .gitignore ├── lu-raft-kv ├── pom.xml └── src │ ├── main │ ├── java │ │ ├── cn │ │ │ └── think │ │ │ │ └── in │ │ │ │ └── java │ │ │ │ ├── Consensus.java │ │ │ │ ├── LifeCycle.java │ │ │ │ ├── LogModule.java │ │ │ │ ├── Node.java │ │ │ │ ├── RaftNodeBootStrap.java │ │ │ │ ├── StateMachine.java │ │ │ │ ├── common │ │ │ │ ├── NodeConfig.java │ │ │ │ ├── NodeStatus.java │ │ │ │ ├── Peer.java │ │ │ │ └── PeerSet.java │ │ │ │ ├── constant │ │ │ │ └── StateMachineSaveType.java │ │ │ │ ├── current │ │ │ │ ├── RaftThread.java │ │ │ │ ├── RaftThreadPool.java │ │ │ │ ├── RaftThreadPoolExecutor.java │ │ │ │ └── SleepHelper.java │ │ │ │ ├── entity │ │ │ │ ├── AentryParam.java │ │ │ │ ├── AentryResult.java │ │ │ │ ├── BaseParam.java │ │ │ │ ├── Command.java │ │ │ │ ├── LogEntry.java │ │ │ │ ├── ReplicationFailModel.java │ │ │ │ ├── RvoteParam.java │ │ │ │ └── RvoteResult.java │ │ │ │ ├── exception │ │ │ │ ├── RaftNotSupportException.java │ │ │ │ └── RaftRemotingException.java │ │ │ │ ├── impl │ │ │ │ ├── ClusterMembershipChangesImpl.java │ │ │ │ ├── DefaultConsensus.java │ │ │ │ ├── DefaultLogModule.java │ │ │ │ ├── DefaultNode.java │ │ │ │ ├── DefaultStateMachine.java │ │ │ │ └── RedisStateMachine.java │ │ │ │ ├── membership │ │ │ │ └── changes │ │ │ │ │ ├── ClusterMembershipChanges.java │ │ │ │ │ ├── Result.java │ │ │ │ │ └── Server.java │ │ │ │ ├── rpc │ │ │ │ ├── DefaultRpcClient.java │ │ │ │ ├── DefaultRpcServer.java │ │ │ │ ├── RaftUserProcessor.java │ │ │ │ ├── Request.java │ │ │ │ ├── Response.java │ │ │ │ ├── RpcClient.java │ │ │ │ └── RpcServer.java │ │ │ │ └── util │ │ │ │ └── LongConvert.java │ │ └── raft │ │ │ └── client │ │ │ ├── ClientKVAck.java │ │ │ ├── ClientKVReq.java │ │ │ ├── RaftClient.java │ │ │ ├── RaftClient2.java │ │ │ └── RaftClient3.java │ └── resources │ │ └── log4j.xml │ └── test │ └── java │ └── cn │ └── think │ └── in │ └── java │ └── impl │ ├── DefaultLogModuleTest.java │ ├── DefaultStateMachineTest.java │ └── RocksDBTest.java ├── pom.xml └── readme.md /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/.gitignore -------------------------------------------------------------------------------- /lu-raft-kv/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/pom.xml -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/Consensus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/Consensus.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/LifeCycle.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/LifeCycle.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/LogModule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/LogModule.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/Node.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/Node.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/RaftNodeBootStrap.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/RaftNodeBootStrap.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/StateMachine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/StateMachine.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/common/NodeConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/common/NodeConfig.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/common/NodeStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/common/NodeStatus.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/common/Peer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/common/Peer.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/common/PeerSet.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/common/PeerSet.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/constant/StateMachineSaveType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/constant/StateMachineSaveType.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/current/RaftThread.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/current/RaftThread.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/current/RaftThreadPool.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/current/RaftThreadPool.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/current/RaftThreadPoolExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/current/RaftThreadPoolExecutor.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/current/SleepHelper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/current/SleepHelper.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/entity/AentryParam.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/entity/AentryParam.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/entity/AentryResult.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/entity/AentryResult.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/entity/BaseParam.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/entity/BaseParam.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/entity/Command.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/entity/Command.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/entity/LogEntry.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/entity/LogEntry.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/entity/ReplicationFailModel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/entity/ReplicationFailModel.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/entity/RvoteParam.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/entity/RvoteParam.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/entity/RvoteResult.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/entity/RvoteResult.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/exception/RaftNotSupportException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/exception/RaftNotSupportException.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/exception/RaftRemotingException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/exception/RaftRemotingException.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/impl/ClusterMembershipChangesImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/impl/ClusterMembershipChangesImpl.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/impl/DefaultConsensus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/impl/DefaultConsensus.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/impl/DefaultLogModule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/impl/DefaultLogModule.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/impl/DefaultNode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/impl/DefaultNode.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/impl/DefaultStateMachine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/impl/DefaultStateMachine.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/impl/RedisStateMachine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/impl/RedisStateMachine.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/membership/changes/ClusterMembershipChanges.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/membership/changes/ClusterMembershipChanges.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/membership/changes/Result.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/membership/changes/Result.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/membership/changes/Server.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/membership/changes/Server.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/rpc/DefaultRpcClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/rpc/DefaultRpcClient.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/rpc/DefaultRpcServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/rpc/DefaultRpcServer.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/rpc/RaftUserProcessor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/rpc/RaftUserProcessor.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/rpc/Request.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/rpc/Request.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/rpc/Response.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/rpc/Response.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/rpc/RpcClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/rpc/RpcClient.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/rpc/RpcServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/rpc/RpcServer.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/cn/think/in/java/util/LongConvert.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/cn/think/in/java/util/LongConvert.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/raft/client/ClientKVAck.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/raft/client/ClientKVAck.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/raft/client/ClientKVReq.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/raft/client/ClientKVReq.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/raft/client/RaftClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/raft/client/RaftClient.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/raft/client/RaftClient2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/raft/client/RaftClient2.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/java/raft/client/RaftClient3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/java/raft/client/RaftClient3.java -------------------------------------------------------------------------------- /lu-raft-kv/src/main/resources/log4j.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/main/resources/log4j.xml -------------------------------------------------------------------------------- /lu-raft-kv/src/test/java/cn/think/in/java/impl/DefaultLogModuleTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/test/java/cn/think/in/java/impl/DefaultLogModuleTest.java -------------------------------------------------------------------------------- /lu-raft-kv/src/test/java/cn/think/in/java/impl/DefaultStateMachineTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/test/java/cn/think/in/java/impl/DefaultStateMachineTest.java -------------------------------------------------------------------------------- /lu-raft-kv/src/test/java/cn/think/in/java/impl/RocksDBTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/lu-raft-kv/src/test/java/cn/think/in/java/impl/RocksDBTest.java -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/pom.xml -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderlongren/lu-raft-kv/HEAD/readme.md --------------------------------------------------------------------------------