This is an automated email from the ASF dual-hosted git repository.
williamsong pushed a change to branch branch-2
in repository https://gitbox.apache.org/repos/asf/ratis.git
from 349aee18d RATIS-1792. Replace parallelStream usage in PeerProxyMap
(#829)
add f54754a04 RATIS-1643. Add heartbeat broadcast mechanism for leader
readIndex. (#730)
add 9270bb3ce RATIS-1697.
StateMachineUpdater.getStateMachineLastAppliedIndex should handle null. (#736)
add b6468dbff RATIS-1696. Support linearizable read-only requests in
leader (#735)
add 22c6a036a RATIS-1701. Add new Server RPC: readIndex (#738)
add 3fcf38812 RATIS-1706. Move heartbeat listeners to LeaderState (#743)
add 1375bdb9b RATIS-1715. Support linearizable read in AsyncApi. (#754)
add 242df11b0 RATIS-1716. Separate ReadException and ReadIndexException
for client retry (#758)
add bbadb4144 RATIS-1652. Fix NP_NULL_PARAM_DEREF in DataStreamManagement
(#763)
add bd8a12cf4 RATIS-1722. Fix the suppressed findbugs warnings in
SimpleStateMachineStorage. (#760)
add fd7a6f373 RATIS-1723. CounterStateMachine should update the latest
snapshot. (#765)
add c8f8145e1 RATIS-1728. Avoid org.apache.log4j imports. (#768)
add cc807fda9 RATIS-1733. Typo: fix misleading params names in
`RaftServerConfigKeys` (#771)
add da23510d8 RATIS-1732. Add configuration reference for RaftServer (#770)
add 43d8f220f RATIS-1742. Remove slf4j-log4j12 test dependency from
ratis-common and ratis-server. (#781)
add 59eae1106 RATIS-1752. Clean md5 file created by old ratis version.
(#790)
add 99640255b RATIS-1750. Add snapshot section in dev guide (#788)
add 615a03853 RATIS-1744. NullPointerException causes RaftClient retry
failure. (#794)
add f58e2a5c5 RATIS-1751. Race condition between LeaderStateImpl &
ServerState. (#789)
add e489fd67c RATIS-1757: Missing some metrics for listener. (#796)
add 053a815d9 RATIS-1758. Add linearizable read in Counter example (#797)
add 5fa608d4b RATIS-1759. Support client use linearizable read per request
(#798)
add 9628ae999 RATIS-1761. If LeaderStateImpl is not running, it should not
restart a LogAppender. (#799)
add 25552d6cd RATIS-1763. Purging logs in an ordered manner. (#801)
add d11663562 RATIS-1764. installSnapshot failed due to file already
exists (#802)
add 743f86a05 RATIS-1765. [GrpcLogAppender] Calculate streaming md5
file-wise when installSnapshot (#803)
add 32a22a47c RATIS-1767. Initialize MatchIndex to
RaftLog.INVALID_LOG_INDEX. (#805)
add f8634e52a RATIS-1768. Fix stepDown command don't work issue (#806)
add db6944eac RATIS-1766. Add descriptions to metrics entries (#804)
add 960950795 RATIS-1772. Refactor the startLeaderElection code in
LeaderStateImpl. (#811)
add d3d7d6eab RATIS-1773. Fix readIndexHeartbeat using incorrct index
handle onAppendEntriesReply method (#810)
add 8908caf73 RATIS-1775. FollowerInfoImpl should not store RaftPeer.
(#812)
add b6e8c9e9d RATIS-1774. Change SenderList in LeaderStateImpl to
implement Iterable. (#813)
add 5d98c64a9 RATIS-1762. Support transfer leadership between nodes with
same priority (#807)
add e7f25ed5c RATIS-1778. Fix NPE in readIndexHeartbeats (#819)
add f6b5efc62 RATIS-1779. Refactor: Reduce nesting in TransferLeadership
(#820)
add 755399407 RATIS-1784. Ignore .vscode in source repo. (#822)
add e0b97879a RATIS-1783. MAX_OP_SIZE is not configurable on raft log
read. (#823)
add 54bcb7471 RATIS-1543. Log from GrpcLogAppender is confusing. (#821)
add 4efca7871 RATIS-1769. Avoid changing priorities in TransferCommand
unless necessary (#808)
add 1f54d4552 RATIS-1786. Reset the digester of the follower at the
beginning of each file transfer during a InstallSnapshot to avoid snapshot
transfer failure (#825)
add 2954754e4 RATIS-1785. Use SingleThreadExecutor to manage the lifetime
of single thread (#824)
add 3a3fafb96 RATIS-1788. Improve the JvmPauseMonitor log messages. (#826)
add 15474faf5 RATIS-1791. Intermittent failure in
ServerRestartTests#testRestartFollower (#827)
add fd7ccbecb RATIS-1794. Intermittent failure in
PreAppendLeaderStepDownTest#testLeaderStepDown (#833)
add c1da37cb4 RATIS-1793. Enforce raft.server.log.appender.wait-time.min.
(#832)
add 4d0c7d0e9 RATIS-1799. Make shell scripts in binary package executable
(#835)
add dae9a5fbf RATIS-1801. Fix flaky test of
TestLogAppenderWithGrpc.testPendingLimits (#837)
add 03e99088f RATIS-1800. Remove unused ratis-shell properties (#836)
add 12e0c6e10 RATIS-1798. Make ratis-shell command respect
GENERIC_COMMAND_OPTIONS (#834)
add d1d13fe70 RATIS-1806. Further fix for
TestLogAppenderWithGrpc#testPendingLimits (#841)
add 6748ec853 RATIS-1805. Add doc about GENERIC_COMMAND_OPTIONS of
ratis-shell (#840)
add cfd342044 RATIS-1802. GrpcServerProtocolService encounters
IllegalStateException: call already closed. (#839)
add 08dc58fcb RATIS-1807. Support timeout in gRPC. (#842)
add 252446070 RATIS-1811. Improve StreamObserver's log messages (#849)
add 1c500bbaf RATIS-1810. Intermittent failure in
TestRaftServerWithGrpc#testRaftClientMetrics (#847)
add 3ed7c481c RATIS-1808. Rerun PreVote when Vote is timed out (#846)
add 70fe68f0d RATIS-1815. GitHub: Enable autolink to Jira (#853)
add 5d9e4b538 RATIS-1813. Allow ratis-shell to run in JDK 8+ (#851)
add ee8aef255 RATIS-1796. Fix TransferLeadership stopped by heartbeat from
old leader (#844)
add 2fc1c83a6 RATIS-1814: The group info command of the Ratis shell does
not show the listener (#852)
add 5a996a42f RATIS-1812. Enforce a outstanding request limit in
StreamObserverWithTimeout. (#850)
add 80617d4bb RATIS-1809. Use separated timeout for GrpcLogAppender's
streaming RPC (#848)
add e20a2e83b RATIS-1816. appendEntryTimer is not accurate due to the
return of writeFuture (#855)
add f0d9d566e RATIS-1770. Yield leader to higher priority peer by
TransferLeadership (#845)
add c727be372 RATIS-1795. Add and distribute a Maven Wrapper (#856)
add f50965d56 RATIS-1817. Do not send StartLeaderElection when
leaderLastEntry is null (#857)
add 649e5fef2 RATIS-1819. Use Maven Wrapper in CI workflows (#859)
add c19db251d RATIS-1820. Update apache parent pom version and other
versions. (#861)
add 14ae143fb RATIS-1662. Intermittent failure in testEnforceLeader (#860)
add 42c3c6ba4 RATIS-1821. Upgrade ratis-thirdparty version to 1.0.4 (#862)
add 2b373f6bc RATIS-1822. Disable first election on changeToFollower (#863)
add 8a226a33b RATIS-1823. Improve error log in StreamObserverWithTimeout.
(#864)
add 6497f8e0b RATIS-1827. Update installed snapshot index only when
InstallSnapshot is done (#868)
add 2e0adeb83 RATIS-1824. Membership change may fail when a Listener is
present in the cluster. (#865)
add ad03a7be4 RATIS-1826: Listener will change to follower when using
ratis shell
No new revisions were added by this update.
Summary of changes:
.asf.yaml | 1 +
.gitignore | 4 +-
.mvn/wrapper/maven-wrapper.properties | 18 +
BUILDING.md | 6 +-
dev-support/checks/_mvn_unit_report.sh | 2 +-
dev-support/checks/build.sh | 4 +-
dev-support/checks/checkstyle.sh | 6 +-
dev-support/checks/findbugs.sh | 6 +-
dev-support/checks/rat.sh | 4 +-
dev-support/checks/sonar.sh | 5 +-
dev-support/checks/unit.sh | 4 +-
.../install-runconfig.sh => find_maven.sh} | 20 +-
dev-support/make_rc.sh | 10 +-
dev-support/run-test-repeatedly.sh | 6 +-
mvnw | 308 +++++++++++
mvnw.cmd | 205 +++++++
pom.xml | 51 +-
ratis-assembly/pom.xml | 1 +
ratis-assembly/src/main/assembly/bin-pkg.xml | 15 +
ratis-assembly/src/main/assembly/src.xml | 10 +
.../org/apache/ratis/client/DataStreamClient.java | 2 +-
.../java/org/apache/ratis/client/RaftClient.java | 2 +-
.../java/org/apache/ratis/client/api/AdminApi.java | 6 +-
.../java/org/apache/ratis/client/api/AsyncApi.java | 19 +-
.../org/apache/ratis/client/api/BlockingApi.java | 19 +-
.../org/apache/ratis/client/impl/AdminImpl.java | 6 +-
.../org/apache/ratis/client/impl/AsyncImpl.java | 9 +-
.../org/apache/ratis/client/impl/BlockingImpl.java | 9 +-
.../apache/ratis/client/impl/ClientProtoUtils.java | 82 ++-
.../org/apache/ratis/client/impl/OrderedAsync.java | 2 +-
ratis-common/pom.xml | 5 -
.../org/apache/ratis/protocol/GroupInfoReply.java | 19 +-
.../org/apache/ratis/protocol/RaftClientReply.java | 13 +-
.../apache/ratis/protocol/RaftClientRequest.java | 8 +-
.../org/apache/ratis/protocol/RoutingTable.java | 2 +-
.../exceptions/LeaderNotReadyException.java | 10 +-
...upMismatchException.java => ReadException.java} | 11 +-
...losedException.java => ReadIndexException.java} | 13 +-
.../java/org/apache/ratis/retry/RetryPolicies.java | 6 +-
.../org/apache/ratis/util/ConcurrentUtils.java | 15 +
.../main/java/org/apache/ratis/util/ExitUtils.java | 2 +-
.../main/java/org/apache/ratis/util/FileUtils.java | 41 +-
.../org/apache/ratis/util/JvmPauseMonitor.java | 18 +-
.../java/org/apache/ratis/util/MD5FileUtil.java | 28 +-
.../java/org/apache/ratis/util/OpenCloseState.java | 4 +-
.../org/apache/ratis/util/ResourceSemaphore.java | 28 +-
.../java/org/apache/ratis/util/StringUtils.java | 10 +-
.../java/org/apache/ratis/util/TimeDuration.java | 18 +-
.../{CheckedRunnable.java => StringSupplier.java} | 28 +-
.../src/test/java/org/apache/ratis/BaseTest.java | 8 +-
.../java/org/apache/ratis/util/Log4jUtils.java | 37 --
.../java/org/apache/ratis/util/Slf4jUtils.java | 129 +++++
ratis-docs/src/site/markdown/cli.md | 10 +
ratis-docs/src/site/markdown/configuraions.md | 614 +++++++++++++++++++++
ratis-docs/src/site/markdown/metrics.md | 145 +++++
ratis-docs/src/site/markdown/snapshot.md | 240 ++++++++
ratis-examples/README.md | 8 +-
ratis-examples/pom.xml | 5 +
.../arithmetic/ArithmeticStateMachine.java | 22 +-
.../examples/arithmetic/expression/Expression.java | 6 +-
.../apache/ratis/examples/common/Constants.java | 31 +-
.../examples/counter/client/CounterClient.java | 31 ++
.../examples/counter/server/CounterServer.java | 24 +-
.../counter/server/CounterStateMachine.java | 37 +-
.../apache/ratis/examples/debug/server/Server.java | 3 +-
ratis-examples/src/main/resources/conf.properties | 4 +-
.../java/org/apache/ratis/TestMultiRaftGroup.java | 7 +-
.../ratis/examples/arithmetic/TestArithmetic.java | 6 +-
.../examples/arithmetic/TestArithmeticLogDump.java | 8 +-
.../java/org/apache/ratis/grpc/GrpcConfigKeys.java | 38 +-
.../main/java/org/apache/ratis/grpc/GrpcUtil.java | 16 +-
.../apache/ratis/grpc/server/GrpcLogAppender.java | 77 +--
.../grpc/server/GrpcServerProtocolClient.java | 13 +-
.../grpc/server/GrpcServerProtocolService.java | 20 +-
.../org/apache/ratis/grpc/server/GrpcService.java | 45 ++
.../grpc/util/ResponseNotifyClientInterceptor.java | 72 +++
.../ratis/grpc/util/StreamObserverWithTimeout.java | 129 +++++
.../ratis/netty/server/DataStreamManagement.java | 2 -
ratis-proto/src/main/proto/Grpc.proto | 3 +
ratis-proto/src/main/proto/Raft.proto | 13 +
.../src/main/proto/Test.proto | 25 +-
.../java/org/apache/ratis/server/RaftServer.java | 15 +-
.../apache/ratis/server/RaftServerConfigKeys.java | 64 ++-
.../org/apache/ratis/server/RaftServerRpc.java | 7 +
.../apache/ratis/server/leader/FollowerInfo.java | 14 +-
.../apache/ratis/server/leader/LeaderState.java | 4 +
.../apache/ratis/server/leader/LogAppender.java | 6 +-
.../protocol/RaftServerAsynchronousProtocol.java | 5 +
.../apache/ratis/server/raftlog/RaftLogIndex.java | 30 +-
ratis-server/pom.xml | 5 -
.../apache/ratis/server/impl/FollowerInfoImpl.java | 54 +-
.../apache/ratis/server/impl/LeaderElection.java | 95 ++--
.../apache/ratis/server/impl/LeaderStateImpl.java | 467 ++++++++++------
.../ratis/server/impl/PeerConfiguration.java | 7 +-
.../apache/ratis/server/impl/PendingRequests.java | 17 +-
.../ratis/server/impl/RaftConfigurationImpl.java | 13 +-
.../apache/ratis/server/impl/RaftServerImpl.java | 150 ++++-
.../apache/ratis/server/impl/RaftServerProxy.java | 16 +-
.../ratis/server/impl/ReadIndexHeartbeats.java | 178 ++++++
.../org/apache/ratis/server/impl/ReadRequests.java | 98 ++--
.../apache/ratis/server/impl/ServerProtoUtils.java | 15 +
.../org/apache/ratis/server/impl/ServerState.java | 25 +-
.../server/impl/SnapshotInstallationHandler.java | 12 +-
.../ratis/server/impl/StateMachineUpdater.java | 44 +-
.../ratis/server/impl/TransferLeadership.java | 274 ++++++++-
.../server/leader/InstallSnapshotRequests.java | 2 +-
.../ratis/server/leader/LogAppenderBase.java | 19 +-
.../ratis/server/leader/LogAppenderDaemon.java | 6 +-
.../ratis/server/leader/LogAppenderDefault.java | 1 +
.../server/metrics/RaftServerMetricsImpl.java | 5 +-
.../server/metrics/SegmentedRaftLogMetrics.java | 8 +-
.../apache/ratis/server/raftlog/LogProtoUtils.java | 2 +-
.../ratis/server/raftlog/segmented/LogSegment.java | 47 +-
.../server/raftlog/segmented/SegmentedRaftLog.java | 6 +-
.../raftlog/segmented/SegmentedRaftLogCache.java | 11 +-
.../segmented/SegmentedRaftLogInputStream.java | 15 +-
.../raftlog/segmented/SegmentedRaftLogReader.java | 27 +-
.../raftlog/segmented/SegmentedRaftLogWorker.java | 19 +-
.../ratis/server/storage/FileChunkReader.java | 13 +-
.../ratis/server/storage/SnapshotManager.java | 6 +-
.../statemachine/impl/FileListSnapshotInfo.java | 10 +-
.../impl/SimpleStateMachineStorage.java | 182 +++---
.../statemachine/impl/SingleFileSnapshotInfo.java | 9 +-
.../ratis/InstallSnapshotFromLeaderTests.java | 26 +-
.../ratis/InstallSnapshotNotificationTests.java | 14 +-
.../java/org/apache/ratis/LogAppenderTests.java | 8 +-
.../org/apache/ratis/MessageStreamApiTests.java | 10 +-
.../org/apache/ratis/RaftAsyncExceptionTests.java | 8 +-
.../test/java/org/apache/ratis/RaftAsyncTests.java | 10 +-
.../test/java/org/apache/ratis/RaftBasicTests.java | 6 +-
.../org/apache/ratis/RaftExceptionBaseTest.java | 10 +-
.../org/apache/ratis/ReadOnlyRequestTests.java | 316 +++++++++++
.../ratis/ReadOnlyRequestWithLongTimeoutTests.java | 125 +++++
.../apache/ratis/RequestLimitAsyncBaseTest.java | 10 +-
.../java/org/apache/ratis/RetryCacheTests.java | 6 +-
.../java/org/apache/ratis/WatchRequestTests.java | 8 +-
.../ratis/server/impl/GroupInfoBaseTest.java | 8 +-
.../ratis/server/impl/GroupManagementBaseTest.java | 10 +-
.../ratis/server/impl/LeaderElectionTests.java | 83 ++-
.../server/impl/PreAppendLeaderStepDownTest.java | 15 +-
.../server/impl/RaftReconfigurationBaseTest.java | 6 +-
.../ratis/server/impl/RaftServerTestUtil.java | 74 +--
.../impl/RaftStateMachineExceptionTests.java | 12 +-
.../server/impl/StateMachineShutdownTests.java | 2 +-
.../server/impl/TestRatisServerMetricsBase.java | 8 +-
.../segmented/SegmentedRaftLogTestUtils.java | 16 +-
.../MiniRaftClusterWithSimulatedRpc.java | 2 +-
.../ratis/statemachine/RaftSnapshotBaseTest.java | 11 +-
.../ratis/statemachine/SnapshotManagementTest.java | 12 +-
.../{ => impl}/SimpleStateMachine4Testing.java | 60 +-
.../java/org/apache/ratis/shell/cli/RaftUtils.java | 7 +
.../shell/cli/sh/command/AbstractRatisCommand.java | 23 +
.../shell/cli/sh/election/StepDownCommand.java | 4 +-
.../shell/cli/sh/election/TransferCommand.java | 99 ++--
.../apache/ratis/shell/cli/sh/peer/AddCommand.java | 8 +-
.../ratis/shell/cli/sh/peer/RemoveCommand.java | 10 +-
.../shell/cli/sh/peer/SetPriorityCommand.java | 25 +-
ratis-shell/src/main/libexec/ratis-shell-config.sh | 16 +-
ratis-test/pom.xml | 21 +-
.../ratis/TestRaftServerNoLeaderTimeout.java | 10 +-
.../ratis/TestRaftServerSlownessDetection.java | 8 +-
.../ratis/datastream/TestDataStreamDisabled.java | 36 +-
...amSslWithRpcTypeGrpcAndDataStreamTypeNetty.java | 6 +-
.../apache/ratis/grpc/TestLogAppenderWithGrpc.java | 24 +-
.../apache/ratis/grpc/TestRaftServerWithGrpc.java | 30 +-
.../org/apache/ratis/grpc/TestRaftWithGrpc.java | 2 +-
...hGrpc.java => TestReadOnlyRequestWithGrpc.java} | 9 +-
...estReadOnlyRequestWithLongTimeoutWithGrpc.java} | 8 +-
.../apache/ratis/grpc/TestRetryCacheWithGrpc.java | 2 +-
.../ratis/grpc/TestWatchRequestWithGrpc.java | 10 +-
.../org/apache/ratis/grpc/util/GrpcTestClient.java | 126 +++++
.../org/apache/ratis/grpc/util/GrpcTestServer.java | 108 ++++
.../grpc/util/TestStreamObserverWithTimeout.java | 119 ++++
.../ratis/retry/TestExceptionDependentRetry.java | 2 +-
.../apache/ratis/server/ServerRestartTests.java | 18 +-
.../server/raftlog/memory/MemoryRaftLogTest.java | 9 +-
.../raftlog/segmented/TestCacheEviction.java | 6 +-
.../server/raftlog/segmented/TestLogSegment.java | 20 +-
.../raftlog/segmented/TestRaftLogReadWrite.java | 7 +-
.../raftlog/segmented/TestSegmentedRaftLog.java | 18 +-
.../segmented/TestSegmentedRaftLogCache.java | 3 +-
.../ratis/server/storage/TestRaftStorage.java | 13 +-
.../cli/sh/ElectionCommandIntegrationTest.java | 68 ++-
.../shell/cli/sh/GroupCommandIntegrationTest.java | 14 +-
.../shell/cli/sh/PeerCommandIntegrationTest.java | 14 +-
.../cli/sh/SnapshotCommandIntegrationTest.java | 14 +-
.../ratis/statemachine/TestStateMachine.java | 9 +-
.../apache/ratis/util/TestResourceSemaphore.java | 13 +-
.../org/apache/ratis/util/TestTimeDuration.java | 22 +-
.../apache/ratis/util/TestTimeoutScheduler.java | 4 +-
.../java/org/apache/ratis/tools/ParseRatisLog.java | 14 +-
191 files changed, 5484 insertions(+), 1323 deletions(-)
create mode 100644 .mvn/wrapper/maven-wrapper.properties
copy dev-support/{intellij/install-runconfig.sh => find_maven.sh} (73%)
create mode 100755 mvnw
create mode 100644 mvnw.cmd
copy
ratis-common/src/main/java/org/apache/ratis/protocol/exceptions/{GroupMismatchException.java
=> ReadException.java} (80%)
copy
ratis-common/src/main/java/org/apache/ratis/protocol/exceptions/{AlreadyClosedException.java
=> ReadIndexException.java} (78%)
copy
ratis-common/src/main/java/org/apache/ratis/util/function/{CheckedRunnable.java
=> StringSupplier.java} (61%)
delete mode 100644
ratis-common/src/test/java/org/apache/ratis/util/Log4jUtils.java
create mode 100644
ratis-common/src/test/java/org/apache/ratis/util/Slf4jUtils.java
create mode 100644 ratis-docs/src/site/markdown/configuraions.md
create mode 100644 ratis-docs/src/site/markdown/metrics.md
create mode 100644 ratis-docs/src/site/markdown/snapshot.md
create mode 100644
ratis-grpc/src/main/java/org/apache/ratis/grpc/util/ResponseNotifyClientInterceptor.java
create mode 100644
ratis-grpc/src/main/java/org/apache/ratis/grpc/util/StreamObserverWithTimeout.java
copy ratis-experiments/src/main/flatbufs/FileTransfer.fbs =>
ratis-proto/src/main/proto/Test.proto (69%)
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/impl/ReadIndexHeartbeats.java
create mode 100644
ratis-server/src/test/java/org/apache/ratis/ReadOnlyRequestTests.java
create mode 100644
ratis-server/src/test/java/org/apache/ratis/ReadOnlyRequestWithLongTimeoutTests.java
rename ratis-server/src/test/java/org/apache/ratis/statemachine/{ =>
impl}/SimpleStateMachine4Testing.java (89%)
copy
ratis-test/src/test/java/org/apache/ratis/grpc/{TestRaftAsyncWithGrpc.java =>
TestReadOnlyRequestWithGrpc.java} (81%)
copy
ratis-test/src/test/java/org/apache/ratis/grpc/{TestRaftReconfigurationWithGrpc.java
=> TestReadOnlyRequestWithLongTimeoutWithGrpc.java} (77%)
create mode 100644
ratis-test/src/test/java/org/apache/ratis/grpc/util/GrpcTestClient.java
create mode 100644
ratis-test/src/test/java/org/apache/ratis/grpc/util/GrpcTestServer.java
create mode 100644
ratis-test/src/test/java/org/apache/ratis/grpc/util/TestStreamObserverWithTimeout.java