Initial code.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ratis/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ratis/commit/813db4b7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ratis/tree/813db4b7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ratis/diff/813db4b7 Branch: refs/heads/master Commit: 813db4b7847891bb76164fd663a732927d7d25a4 Parents: d960d1e d16c5c6 Author: Jitendra Pandey <jiten...@apache.org> Authored: Tue Jan 31 13:15:45 2017 -0800 Committer: Jitendra Pandey <jiten...@apache.org> Committed: Tue Jan 31 13:15:45 2017 -0800 ---------------------------------------------------------------------- .gitignore | 17 + BUILD.md | 11 + README.md | 10 + pom.xml | 252 +++ ratis-client/pom.xml | 54 + .../org/apache/ratis/client/RaftClient.java | 123 ++ .../ratis/client/RaftClientConfigKeys.java | 23 + .../ratis/client/RaftClientRequestSender.java | 34 + .../ratis/client/impl/ClientImplUtils.java | 33 + .../ratis/client/impl/ClientProtoUtils.java | 131 ++ .../ratis/client/impl/RaftClientImpl.java | 163 ++ ratis-common/RatisCommon.cmake | 208 +++ ratis-common/RatisJNI.cmake | 97 + ratis-common/pom.xml | 143 ++ ratis-common/src/CMakeLists.txt | 108 ++ ratis-common/src/config.h.cmake | 24 + ratis-common/src/main/conf/log4j.properties | 74 + .../org/apache/ratis/conf/RaftProperties.java | 1658 ++++++++++++++++++ .../main/java/org/apache/ratis/io/MD5Hash.java | 205 +++ .../org/apache/ratis/io/nativeio/Errno.java | 64 + .../org/apache/ratis/io/nativeio/NativeIO.java | 805 +++++++++ .../ratis/io/nativeio/NativeIOException.java | 70 + .../ratis/protocol/AlreadyExistsException.java | 36 + .../ratis/protocol/ChecksumException.java | 35 + .../java/org/apache/ratis/protocol/Message.java | 30 + .../ratis/protocol/NotLeaderException.java | 40 + .../RaftClientAsynchronousProtocol.java | 30 + .../ratis/protocol/RaftClientProtocol.java | 26 + .../apache/ratis/protocol/RaftClientReply.java | 91 + .../ratis/protocol/RaftClientRequest.java | 73 + .../apache/ratis/protocol/RaftException.java | 36 + .../org/apache/ratis/protocol/RaftPeer.java | 79 + .../apache/ratis/protocol/RaftRpcMessage.java | 33 + .../ReconfigurationInProgressException.java | 24 + .../ReconfigurationTimeoutException.java | 24 + .../ratis/protocol/SetConfigurationRequest.java | 39 + .../ratis/protocol/StateMachineException.java | 28 + .../ratis/util/AtomicFileOutputStream.java | 112 ++ .../apache/ratis/util/AutoCloseableLock.java | 57 + .../org/apache/ratis/util/CheckedFunction.java | 30 + .../org/apache/ratis/util/CheckedRunnable.java | 28 + .../ratis/util/CodeInjectionForTesting.java | 67 + .../main/java/org/apache/ratis/util/Daemon.java | 35 + .../java/org/apache/ratis/util/ExitUtils.java | 98 ++ .../java/org/apache/ratis/util/FileUtils.java | 207 +++ .../java/org/apache/ratis/util/LifeCycle.java | 210 +++ .../java/org/apache/ratis/util/MD5FileUtil.java | 177 ++ .../org/apache/ratis/util/NativeCodeLoader.java | 70 + .../java/org/apache/ratis/util/NativeCrc32.java | 143 ++ .../apache/ratis/util/NativeLibraryChecker.java | 64 + .../java/org/apache/ratis/util/NetUtils.java | 151 ++ .../org/apache/ratis/util/PeerProxyMap.java | 128 ++ .../java/org/apache/ratis/util/ProtoUtils.java | 147 ++ .../org/apache/ratis/util/PureJavaCrc32.java | 619 +++++++ .../org/apache/ratis/util/PureJavaCrc32C.java | 632 +++++++ .../java/org/apache/ratis/util/RaftUtils.java | 240 +++ .../java/org/apache/ratis/util/StringUtils.java | 108 ++ .../java/org/apache/ratis/util/Timestamp.java | 84 + ratis-common/src/main/native/src/exception.c | 124 ++ ratis-common/src/main/native/src/exception.h | 104 ++ .../src/org/apache/ratis/io/nativeio/NativeIO.c | 1061 +++++++++++ .../org/apache/ratis/io/nativeio/errno_enum.c | 123 ++ .../org/apache/ratis/io/nativeio/errno_enum.h | 27 + .../apache/ratis/io/nativeio/file_descriptor.c | 115 ++ .../apache/ratis/io/nativeio/file_descriptor.h | 36 + .../org/apache/ratis/util/NativeCodeLoader.c | 56 + .../src/org/apache/ratis/util/NativeCrc32.c | 276 +++ .../src/org/apache/ratis/util/bulk_crc32.c | 244 +++ .../src/org/apache/ratis/util/bulk_crc32.h | 73 + .../org/apache/ratis/util/bulk_crc32_aarch64.c | 362 ++++ .../src/org/apache/ratis/util/bulk_crc32_x86.c | 345 ++++ .../ratis/util/crc32_zlib_polynomial_tables.h | 552 ++++++ .../src/org/apache/ratis/util/crc32c_tables.h | 550 ++++++ .../org/apache/ratis/util/gcc_optimizations.h | 30 + .../src/main/native/src/org_apache_ratis.h | 189 ++ .../org/apache/ratis/util/test_bulk_crc32.c | 113 ++ .../org/apache/ratis/util/TestLifeCycle.java | 54 + ratis-examples/pom.xml | 130 ++ .../arithmetic/ArithmeticStateMachine.java | 181 ++ .../examples/arithmetic/AssignmentMessage.java | 83 + .../ratis/examples/arithmetic/Evaluable.java | 24 + .../arithmetic/expression/BinaryExpression.java | 103 ++ .../arithmetic/expression/DoubleValue.java | 61 + .../arithmetic/expression/Expression.java | 112 ++ .../arithmetic/expression/NullValue.java | 55 + .../arithmetic/expression/UnaryExpression.java | 95 + .../arithmetic/expression/Variable.java | 126 ++ .../java/org/apache/ratis/TestBatchAppend.java | 172 ++ .../org/apache/ratis/TestRestartRaftPeer.java | 116 ++ .../ratis/examples/RaftExamplesTestUtil.java | 90 + .../examples/arithmetic/TestArithmetic.java | 106 ++ .../arithmetic/expression/TestExpression.java | 107 ++ .../TestRaftStateMachineException.java | 88 + .../src/test/resources/log4j.properties | 18 + ratis-grpc/pom.xml | 93 + .../org/apache/ratis/grpc/RaftGRpcService.java | 185 ++ .../apache/ratis/grpc/RaftGrpcConfigKeys.java | 47 + .../org/apache/ratis/grpc/RaftGrpcUtil.java | 87 + .../ratis/grpc/client/AppendStreamer.java | 396 +++++ .../grpc/client/RaftClientProtocolClient.java | 73 + .../grpc/client/RaftClientProtocolProxy.java | 104 ++ .../grpc/client/RaftClientProtocolService.java | 195 ++ .../grpc/client/RaftClientSenderWithGrpc.java | 119 ++ .../ratis/grpc/client/RaftOutputStream.java | 112 ++ .../ratis/grpc/server/GRpcLogAppender.java | 416 +++++ .../server/PipelinedLogAppenderFactory.java | 32 + .../grpc/server/RaftServerProtocolClient.java | 63 + .../grpc/server/RaftServerProtocolService.java | 116 ++ .../ratis/grpc/MiniRaftClusterWithGRpc.java | 144 ++ .../grpc/TestNotLeaderExceptionWithGrpc.java | 39 + .../grpc/TestRaftReconfigurationWithGRpc.java | 47 + .../ratis/grpc/TestRaftSnapshotWithGrpc.java | 32 + .../org/apache/ratis/grpc/TestRaftStream.java | 319 ++++ .../org/apache/ratis/grpc/TestRaftWithGrpc.java | 73 + ratis-grpc/src/test/resources/log4j.properties | 18 + ratis-hadoop/pom.xml | 99 ++ .../hadoop/ipc/ProtobufRpcEngineShaded.java | 623 +++++++ .../apache/ratis/hadooprpc/HadoopConstants.java | 29 + .../java/org/apache/ratis/hadooprpc/Proxy.java | 55 + .../client/HadoopClientRequestSender.java | 68 + ...aftClientProtocolClientSideTranslatorPB.java | 70 + .../hadooprpc/client/RaftClientProtocolPB.java | 37 + ...aftClientProtocolServerSideTranslatorPB.java | 69 + .../hadooprpc/server/HadoopRpcService.java | 209 +++ .../hadooprpc/server/RaftServerProtocolPB.java | 37 + ...aftServerProtocolServerSideTranslatorPB.java | 73 + .../hadooprpc/MiniRaftClusterWithHadoopRpc.java | 123 ++ .../TestNotLeaderExceptionWithHadoopRpc.java | 37 + .../TestRaftReconfigurationWithHadoopRpc.java | 40 + .../TestRaftSnapshotWithHadoopRpc.java | 32 + .../ratis/hadooprpc/TestRaftWithHadoopRpc.java | 69 + .../src/test/resources/log4j.properties | 18 + ratis-netty/pom.xml | 99 ++ .../org/apache/ratis/netty/NettyClient.java | 73 + .../org/apache/ratis/netty/NettyRpcProxy.java | 186 ++ .../netty/client/NettyClientRequestSender.java | 71 + .../ratis/netty/server/NettyRpcService.java | 275 +++ .../ratis/netty/MiniRaftClusterWithNetty.java | 117 ++ .../netty/TestNotLeaderExceptionWithNetty.java | 33 + .../netty/TestRaftReconfigurationWithNetty.java | 31 + .../ratis/netty/TestRaftSnapshotWithNetty.java | 32 + .../apache/ratis/netty/TestRaftWithNetty.java | 62 + ratis-netty/src/test/resources/log4j.properties | 18 + ratis-project-dist/pom.xml | 169 ++ ratis-project/pom.xml | 409 +++++ ratis-proto-shaded/.gitignore | 2 + ratis-proto-shaded/README.md | 23 + ratis-proto-shaded/pom.xml | 426 +++++ ratis-proto-shaded/src/main/proto/GRpc.proto | 45 + ratis-proto-shaded/src/main/proto/Hadoop.proto | 44 + ratis-proto-shaded/src/main/proto/Netty.proto | 49 + ratis-proto-shaded/src/main/proto/Raft.proto | 165 ++ ....ratis.shaded.io.grpc.ManagedChannelProvider | 16 + ...he.ratis.shaded.io.grpc.NameResolverProvider | 16 + ...g.apache.ratis.shaded.io.grpc.ServerProvider | 16 + ratis-server/pom.xml | 80 + .../org/apache/ratis/server/RaftServer.java | 98 ++ .../ratis/server/RaftServerConfigKeys.java | 150 ++ .../org/apache/ratis/server/RaftServerRpc.java | 74 + .../ratis/server/impl/ConfigurationManager.java | 91 + .../apache/ratis/server/impl/FollowerInfo.java | 103 ++ .../apache/ratis/server/impl/FollowerState.java | 91 + .../ratis/server/impl/LeaderElection.java | 247 +++ .../apache/ratis/server/impl/LeaderState.java | 601 +++++++ .../apache/ratis/server/impl/LogAppender.java | 494 ++++++ .../ratis/server/impl/LogAppenderFactory.java | 31 + .../ratis/server/impl/PeerConfiguration.java | 91 + .../ratis/server/impl/PendingRequest.java | 88 + .../ratis/server/impl/PendingRequests.java | 130 ++ .../ratis/server/impl/RaftConfiguration.java | 262 +++ .../ratis/server/impl/RaftServerConstants.java | 46 + .../ratis/server/impl/RaftServerImpl.java | 830 +++++++++ .../ratis/server/impl/ServerImplUtils.java | 101 ++ .../ratis/server/impl/ServerProtoUtils.java | 191 ++ .../apache/ratis/server/impl/ServerState.java | 350 ++++ .../ratis/server/impl/StateMachineUpdater.java | 214 +++ .../server/protocol/RaftServerProtocol.java | 36 + .../apache/ratis/server/protocol/TermIndex.java | 36 + .../server/storage/BufferedChannelBase.java | 52 + .../server/storage/BufferedWriteChannel.java | 159 ++ .../apache/ratis/server/storage/FileInfo.java | 59 + .../ratis/server/storage/LogInputStream.java | 259 +++ .../ratis/server/storage/LogOutputStream.java | 181 ++ .../apache/ratis/server/storage/LogReader.java | 302 ++++ .../apache/ratis/server/storage/LogSegment.java | 233 +++ .../ratis/server/storage/MemoryRaftLog.java | 183 ++ .../apache/ratis/server/storage/MetaFile.java | 131 ++ .../apache/ratis/server/storage/RaftLog.java | 293 ++++ .../ratis/server/storage/RaftLogCache.java | 328 ++++ .../ratis/server/storage/RaftLogWorker.java | 371 ++++ .../ratis/server/storage/RaftStorage.java | 145 ++ .../server/storage/RaftStorageDirectory.java | 361 ++++ .../ratis/server/storage/SegmentedRaftLog.java | 328 ++++ .../ratis/server/storage/SnapshotManager.java | 134 ++ .../ratis/statemachine/BaseStateMachine.java | 151 ++ .../statemachine/FileListSnapshotInfo.java | 64 + .../statemachine/SimpleStateMachineStorage.java | 135 ++ .../statemachine/SingleFileSnapshotInfo.java | 38 + .../apache/ratis/statemachine/SnapshotInfo.java | 58 + .../apache/ratis/statemachine/StateMachine.java | 168 ++ .../ratis/statemachine/StateMachineStorage.java | 40 + .../ratis/statemachine/TransactionContext.java | 210 +++ .../java/org/apache/ratis/MiniRaftCluster.java | 453 +++++ .../java/org/apache/ratis/RaftBasicTests.java | 199 +++ .../ratis/RaftNotLeaderExceptionBaseTest.java | 161 ++ .../java/org/apache/ratis/RaftTestUtil.java | 306 ++++ .../impl/BlockRequestHandlingInjection.java | 85 + .../impl/DelayLocalExecutionInjection.java | 67 + .../impl/RaftReconfigurationBaseTest.java | 576 ++++++ .../ratis/server/impl/RaftServerTestUtil.java | 76 + .../MiniRaftClusterWithSimulatedRpc.java | 136 ++ .../server/simulation/RaftServerReply.java | 100 ++ .../server/simulation/RaftServerRequest.java | 98 ++ .../ratis/server/simulation/RequestHandler.java | 134 ++ .../simulation/SimulatedClientRequestReply.java | 45 + .../simulation/SimulatedRequestReply.java | 202 +++ .../server/simulation/SimulatedServerRpc.java | 175 ++ .../TestNotLeaderExceptionWithSimulation.java | 32 + ...TestRaftReconfigurationWithSimulatedRpc.java | 31 + .../TestRaftSnapshotWithSimulatedRpc.java | 32 + .../simulation/TestRaftWithSimulatedRpc.java | 51 + .../ratis/server/storage/TestRaftLogCache.java | 255 +++ .../server/storage/TestRaftLogReadWrite.java | 269 +++ .../server/storage/TestRaftLogSegment.java | 305 ++++ .../ratis/server/storage/TestRaftStorage.java | 215 +++ .../server/storage/TestSegmentedRaftLog.java | 330 ++++ .../statemachine/RaftSnapshotBaseTest.java | 214 +++ .../SimpleStateMachine4Testing.java | 246 +++ .../ratis/statemachine/TermIndexTracker.java | 67 + .../ratis/statemachine/TestStateMachine.java | 192 ++ .../src/test/resources/log4j.properties | 18 + 231 files changed, 35102 insertions(+) ----------------------------------------------------------------------