This is an automated email from the ASF dual-hosted git repository.
msingh pushed a change to branch ratis-ozone
in repository https://gitbox.apache.org/repos/asf/incubator-ratis.git.
from ea949f1 RATIS-1047. Fix can not elect leader when higher priority
server crash (#187)
add 81b65fb RATIS-1050. Include build version descriptor in Ratis jars
add 0a720b5 RATIS-1025. Ratis logs may not be purged completely (#170)
add 0d96495 RATIS-1052. Fix the testDisconnectLeader assertion
add cf9ed08 RATIS-1051. Use try-resource-block when saveMd5File (#190)
add 6dd5145 RATIS-1052. Math operands should be cast before assignment
(#192)
add 61f038b RATIS-1055. Switch cases should end with an unconditional
"break" statement (#193)
add a4cedc2 RATIS-1059. Avoid NPE when exportInfo is NULL in
LogStateMachine.processArchiveLog (#195)
add 5bf1430 RATIS-1063. Failed UT: testOldLeaderCommit: expected leader
is different than actual leader (#197)
add 07543a4 RATIS-455. Move exception classes to
org.apache.ratis.protocol.exceptions (#203). Contributed by Rui Wang
add 07278cd RATIS-1064. Fix TestGrpcOutputStream.testSimpleWrite (#201)
add a7ab5e6 RATIS-830. Add a metric for tracking failed client requests
on a server (#205)
add a79281c RATIS-1042. Watch for commit calls are blocked for a long if
no other message (#185)
add b559f48 RATIS-1043. Add Pause/Resume to RaftServerImpl (#188)
Contributed by Rui Wang
add 50594a5 RATIS-1074: GrpcLogAppender improperly decrease nextIndex to
1, which may trigger a installSnapshot request to follower (#207) Contributed
by Glen Geng
add 9b1d2c1 RATIS-1075. Classes that implement AutoCloseable should call
"close()" when it should be terminated (#208)
add 5b435ec RATIS-1072: Should not shutdown and re-create channel/stub in
GrpcServerProtocolClient when StreamObserver::onError() is called. (#206)
Contributed by Glen Geng
add 11689cd RATIS-1078. Refactor DataStream classes. (#210)
add 9ffceab RATIS-1080. Rename StreamApi to MessageStreamApi. (#211)
add 2d72fbf RATIS-1081. Change NettyServerStreamRpc to write data to
StateMachine. (#212)
add ff56358 RATIS-1087. Add setConfiguration tests with single node
clusters. (#214)
add 86300a1 RATIS-1089. Add getDataStreamApi() to RaftClient. (#215)
add 6f835c1 RATIS-1092. Move the group management methods from RaftClient
to a new interface. (#218)
add 449a272 RATIS-1094. Move async methods from RaftClient to a new
AsyncApi interface (#220). Contributed by Rui Wang
add f78403a RATIS-1093. Move blocking methods from RaftClient to a new
BlockingApi interface (#219). Contributed by Rui Wang
add a8075e3 RATIS-1095. Move the related methods from RaftClientImpl to
the corresponding impls. (#222)
add 7878ddf RATIS-1085. Encode a RaftClientRequest as the head of a
stream request (#221)
add 88327da RATIS-1097. DataStreamOutputImpl should use streamOffset
instead of messageId (#224)
add 694fe6f RATIS-1082. Netty stream server should forward the data to
the other servers in the group (#213)
add f5ebbb7 RATIS-1088. SegmentedRaftLogWorker#closeLogSegment should
also roll the open segment maintained in the cache. (#217)
add e99f0d4 RATIS-1099. DataStreamServerRpc should connect other peers
automatically (#225)
add 6cd9f97 RATIS-1103. Add an interface for adding RaftPeers. (#227)
add a80fc6c RATIS-1101. Fix Failed UT:
RaftBasicTests.runTestOldLeaderNotCommit:IndexOutOfBounds (#229). Contributed
by Rui Wang
add 9141f74 RATIS-1098. DataStreamReply should include byteWritten and
isSuccess. (#228)
add ad3cd5a RATIS-1104.Should check "bytewritten" from remote writes to
peers to determine whether current stream write is successful (#230)
add c8c8360 Fix typo. (#226)
add 746de17 RATIS-1036. ratis_leader_election_electionCount metric is
similar to ratis_leader_election_electionTimeoutCount. (#216)
add 72b3ab5 RATIS-1105. Refactor Netty streaming encoder and decoder.
(#231)
add 4e8940d RATIS-1106. Add type for DataStream (#232)
add e00bc49 RATIS-1107. Start NettyServerStreamRpc when create
RaftServerProxy. (#233)
add 6ed64ee RATIS-1110. Fix DataStreamReply out of order. (#235)
add da56f4f RATIS-1114. Change NettyServerStreamRpc to use only one
ConcurrentMap. (#236)
add c498bc1 RATIS-1108. Add SupportedDataStreamType.DISABLED (#234).
Contributed by Rui Wang
add af35841 RATIS-1116. Add DataStreamType. (#238)
add 865a6ca RATIS-1117. Remove DataStreamClient.start() and
DataStreamClientRpc.startClient(). (#239)
add cca0e6c RATIS-1121. Support multiple streams. (#243)
add f939700 RATIS-1123. Support multiple DataStream clients. (#244)
add e5861fa RATIS-1124. NettyServerStreamRpc should get stateMachine from
RaftServer. (#246)
add e0958c9 RATIS-1125. Fix TestDataStream (#247)
add 12af614 RATIS-1127. Add a stream(RaftGroupId) method to
DataStreamApi. (#248)
add f5e771d RATIS-1126. Fix can not support more than 10 stream (#249)
add c77c183 RATIS-1084. Support multiple groups in Streaming (#245).
Contributed by Rui Wang
add 536d640 RATIS-1119. StateMachine is not closed when
StateMachineUpdater encounters exception. (#242)
add fbdcccc RATIS-1109. Notify StateMachine on Configuration change (#251)
add 9f5fd11 RATIS-1120. Terminate election in advance if majority peers
reject (#241)
add c16a811 RATIS-1128. Update Configuration on InstallSnapshot (#253)
add daa7afb RATIS-1122. Use thenApplyAsync instead of thenApply (#250)
add 9357fdb RATIS-1112. Ensure a node doesn't get reelected as a leader
if it voluntarily steps down. (#252)
add 715bc0f RATIS-1083. Create transaction once stream data replicated to
all servers (#237)
add a475808 RATIS-1129. Move out the RPC related APIs from
DataStreamOutput. (#254)
add 43a042a RATIS-950. Handle Exceptions appropriately (#115)
add ab1ac87 RATIS-1090. Implement RaftClient.getDataStreamApi (#255)
add 1429bf1 RATIS-1131. Refactor the notifyXxx() methods in StateMachine.
(#256)
add f0460f8 RATIS-1132. Primary and peer should use the same streamId
(#257)
add 31381b6 RATIS-1133. Primary and peer should use the same
RaftClientRequest (#258)
add 189ee94 RATIS-1134. Remove DataStreamApi.stream(RaftGroupId). (#259)
add 6e9db1a RATIS-1135. Initialize DataStreamServer after RaftServerProxy
id is set (#260). Contributed by Rui Wang
add 7172da0 RATIS-1137. Rename StreamRequestTypeProto to
MessageStreamRequestTypeProto (#261)
add 311229c RATIS-1138. Add dataStreamAddress to RaftPeer. (#262)
add 0e2ddf8 RATIS-1139. Use RaftPeer.Bulider instead of the constructors.
(#263)
add f4c2cec RATIS-1140. Do not create DataStreamOutput for non-primary
server (#264)
add 6aa4d58 RATIS-1142. Remove STREAM_CLOSE_FORWARD (#265)
add 05eaa70 RATIS-1144. Default disable datastream when start a
MiniRaftCluster (#266)
add d289643 RATIS-1145. In NettyServerStreamRpc, the local/remote writes
should only wait for the previous write. (#267)
add 4021164 RATIS-1148. In NettyServerStreamRpc, each remote stream
should not wait for its own previous write. (#269)
add 87813c5 RATIS-1141. Class.getSimpleName() has a 4% overhead in the
SegmentedRaftLogWriter thread. (#268)
add f91ef63 RATIS-1143. Return exception of submitClientRequestAsync to
client (#270)
add 19b1354 RATIS-1146. Does not build with newer JDK (#271)
add 32c8653 RATIS-1151. Move the DateStream requests handling code from
NettyServerStreamRpc to a new class. (#273)
add a43f36a RATIS-1155. Add a builder for DataStreamReplyByteBuffer.
(#276)
add b092951 RATIS-1130. Add E2E test for Ratis streaming based on
MiniRaftCluster (#272). Contributed by Rui Wang
add a054165 RATIS-1150. Return DataStreamException to client (#277)
add 32016e4 RATIS-1158. Use the same proto for
StateMachineExceptionProto, AlreadyClosedExceptionProto and
DataStreamExceptionProto. (#279)
add cba931f RATIS-1159. Wait ChannelFuture be completed before getting
the local address of the channel (#280)
add f8f6705 RATIS-1153. Implement ChannelInboundHandler.exceptionCaught
in NettyServerStreamRpc. (#278)
add ffedbba RATIS-1160. DataStreamClientImpl.closeAsync() should be
idempotent. (#281)
add 190b0f7 RATIS-1149. Leader should step down and initiate a
stateMachine action in case of jvm pauses. (#275)
add 6f49943 RATIS-610. Add a builder for RaftClientReply. (#283)
add dc60590 RATIS-1162. Enable testing clusters with Netty data stream
and gRPC. (#282)
add 913f5a4 RATIS-1154. Add sync flag when write stream data (#284)
add 2adccb0 RATIS-1136. Add DataStreamRequestTypeProto. (#287)
add 15d2646 RATIS-1164. Remove deprecated
RaftServerConstants.INVALID_LOG_INDEX. (#286)
add 375b738 RATIS-1163. RefCountingMap is not thread-safe. (#285)
add 0a934cf RATIS-1165. Add ClientInvocationId. (#288)
add 6887001 RATIS-1166. Link DataStream with LogEntryProto. (#290)
add 507f09d RATIS-1168. Move the utils from DataStreamBaseTest to a new
file. (#292)
add 83c613c RATIS-1169. Move the DataStream tests from
TestDataStreamNetty to DataStreamClusterTests. (#293)
add 2b83c99 RATIS-1171. Allow null for the stream parameter in
StateMachine.DataApi.link (#294)
add 0a9ae9a RATIS-1173. Rename StateMachineDataChannel to DataChannel.
(#295)
add 7c124b1 RATIS-1175. DataStreamOutput should support
FileChannel#transferTo. (#296)
add 3b8f66d RATIS-1177. NPE when RaftServerJmxAdapter queries
getLeaderId. (#297)
add 1ec750d RATIS-1179. Add a new API to DataStreamOutput for sending a
File. (#299)
add bc9d761 RATIS-1182. Move RaftServerProxy/RaftServerImpl LOG to
RaftServer. (#301)
add bcc392c RATIS-1161. Updating commit index of follower does not
require term check (#289)
add e61333d RATIS-1183. Add getId() and getPeer() to
RaftServer/RaftServer.Division. (#302)
add c3a1d56 RATIS-1184. Move RaftServerMetrics to
org.apache.ratis.server.metrics. (#303)
add 5ee32b5 RATIS-1185. Avoid directly using RaftServerProxy in
JvmPauseMonitor. (#304)
add faa38be RATIS-1187. Avoid directly using RaftServerImpl in
LeaderElectionMetrics. (#305)
add ebabdbf RATIS-1188. Change MiniRaftCluster.getLeader() to return
RaftServer.Division. (#306)
add 0672157 RATIS-1189. Change other MiniRaftCluster methods to return
RaftServer.Division. (#307)
add ccca25a RATIS-1190. Remove the abstract newRaftServer method in
MiniRaftCluster. (#309)
add aa56a31 RATIS-1178. Use RaftClient to submit request (#308)
add 9a3589f RATIS-1191. Define an interface for FollowerInfo. (#311)
add 4573fb7 HDDS-1001: make RaftServerImpl#getRoleInfoProto() public
(#312)
add 7557104 RATIS-1192. Add a public API to get server states. (#313)
add d15a3e4 RATIS-1174. Test leader change when close stream (#310)
add 4cc6f53 Remove $QUORUM_OPTS parameter (#200)
add 02caace RATIS-953. XML Parsers should not be vulnerable to XXE
attacks (#126)
add feed58a RATIS-1193. Add getRaftLog() to RaftServer.Division. (#314)
add f35d4f5 RATIS-1194. SegmentedRaftLog syncWithSnapshot should not
create a new open segment. (#315)
add fbf0386 RATIS-1197. Add getRoleInfoProto() and other methods to
DivisionInfo. (#316)
add ef95e2c RATIS-1199. Change RaftServerProxy/RaftServerImpl to package
private. (#318)
add 04ff37e RATIS-1111. Change the FileStore example to use Streaming
(#298). Contributed by Rui Wang
add 39480bf RATIS-1203. Fix flaky tests caused by
TestRetryCacheMetrics#retryCache (#321)
add 86dd7fa RATIS-1200. Refactor LogAppender.SnapshotRequestIter. (#319)
add 66768c4 RATIS-1198. Fix OOM when use FileStore to write 1GB file
(#317)
add 3569b13 RATIS-1205. Change LogAppender to use RaftServer.Division and
LeaderState. (#323)
add c95d9a4 RATIS-1206. Use atomic update instead of synchronized in
AppenderDaemon. (#324)
add 7849eee RATIS-1186. Change the FileStore CLI to use Streaming (#325)
add 28bafa1 RATIS-1209. Compare the performance between DataStreamApi and
AsyncApi. (#328)
add 5edc953 RATIS-1212. Remove steams from StreamMap when close stream
(#329)
add 365746f RATIS-1201. Enhance FileStore steaming tests (#320).
Contributed by Rui Wang
add e5a052c RATIS-1208. Separate LogAppender interface from the
implementation. (#326)
add 96b1332 RATIS-1213. Provide a default implementation for
DataStreamApi.stream() (#330)
add 80d857b RATIS-1214. Separate the default LogAppender implementation
from LogAppenderBase. (#331)
add 8a92491 RATIS-1211. Fix
TestLogAppenderWithSimulatedRpc.testUnlimitedElementBuffer throw NPE (#332)
add 002b2ec RATIS-1215. Allow put duplicate key in LogSegment#entryCache
(#333)
add 6c7f1d1 RATIS-1210. Expose RetryCache. (#334)
add edcf1d6 RATIS-1195. Log Entry Validation in appendEntry can fail
after log purge (#322). Contributed by Aravindan Vijayan
add be9a0c1 RATIS-1217. Fix filestore failed to readStateMachineData when
use AsyncApi (#335)
add efca97e RATIS-1218. Add sync option when test filestore performance
(#337)
add d3e2862 RATIS-1219. Define an interface for RaftConfiguration. (#336)
add 79223f8 RATIS-1220. FileStore stream to send small packets for
MappedByteBuffer and NettyFileRegion. (#338)
add 4a03d19 RATIS-1224. Define a CallId class. (#341)
add 582bf58 RATIS-1223. FileStore write file in parallel (#340)
add 4e32dd7 RATIS-1225. Remove RaftServerConstants. (#342)
add 6e94069 RATIS-1226. The primary server should get the other peers
from the current RaftConfiguration. (#343)
add eb3aef5 RATIS-1228. FileStore support multi disk (#346)
add b305a4a RATIS-1227. RaftServerRpcWithProxy constructor and the
abstract impl methods should be protected. (#345)
add a562d9e RATIS-1216. State machine preAppend callback can throw
exception without having leader to step down (#344). Contributed by Ethan Rose
add 544d0e6 RATIS-1230. Move out the LogEntryProto methods from
ServerProtoUtils. (#348)
add 5fff9c5 RATIS-1229. FileStore client generate files in parallel (#347)
add e1e446f RATIS-1232. Change error log message in initGroups (#349).
Contributed by Bharat Viswanadham
add a055ed5 RATIS-1233. Move the StateMachineData methods from
ServerProtoUtils to LogProtoUtils (#350)
add 17a2198 RATIS-1236. Move out the leader only methods from
ServerProtoUtils. (#351)
add 5412d3d RATIS-1237. Move out the string method from ServerProtoUtils.
(#352)
add 89c886f RATIS-1238. Seperate request and write executor (#353)
add c5eafb9 RATIS-1239. Move the TermIndex implementation to TermIndex.
(#354)
add a8bddc5 RATIS-1243. Create ratis-server-api module. (#357)
add 12c4303 RATIS-1244. Move MetaFile and RaftLog.Metadata to
ratis-server-api. (#358)
add f69a355 RATIS-1245. Support change priority dynamically (#359)
add 1c0646d RATIS-1196. Save STREAM_CLOSE RPC call (#339)
add e19894d RATIS-1246. Move out LogPathAndIndex from
RaftStorageDirectory. (#361)
add b4b18ca RATIS-1250. Move RaftStorage classes to ratis-server-api.
(#362)
add f511964 RATIS-1251. Move StateMachine and TransactionContext to
ratis-server-api (#363)
add cfa6c4f RATIS-1252. Refactor RaftLogMetrics. (#365)
add c714aff RATIS-1255. Move RaftLog to raft-server-api. (#367)
add d26861e RATIS-1248. Support network topology (#364)
add 195c572 RATIS-1256. Leader updateCommit should use the updated index.
(#369)
add 2ddf0db RATIS-1241. Leader unable to append logs to a recovering
follower when its logs have been purged. (#360)
add 01b8a85 RATIS-1254. Add transfer leadership request and proto (#366)
add b6c9888 RATIS-1253. FileStore support routing table (#368)
add 0a1b63d RATIS-1257. Refactor RaftServerMetrics. (#370)
add 4627942 RATIS-1259. Move RaftServer and the related interfaces to
raft-server-api. (#371)
add 5a4141a RATIS-1260. Implement transferLeaderShip in server (#372)
add cb648e0 RATIS-1263. Refactor RaftClientRequest to use Builder (#374)
add 5cb7e31 RATIS-1264. Move routingTable to RaftRpcRequestProto (#375)
add c219b98 RATIS-1261. Add timeout in TransferLeadershipRequest (#373)
add 79fd5af RATIS-1266. Leader send StartLeaderElectionRequest to higher
priority peer (#376)
add 379122a RATIS-1269. Add a new AdminApi for RaftClient. (#379)
add ead7504 RATIS-1270. Set default primary DataStreamServer in
RaftClient.Builder. (#380)
add 07fa7a3 RATIS-1271. Bump mockito version. (#381)
add ae7ba94 RATIS-1267. Fix ratis examples after supporting streaming
(#377). Contributed by Hui Fei
add 2aeb237 RATIS-1272. Remove unused slf4j-log4j12 dependency. (#382)
add ab0cd35 RATIS-1274. Close DataStreamClient when close RaftClient
(#384)
add 918c7c3 RATIS-1207. Fix duplicated StreamMap#Key (#385)
add f0d0e73 RATIS-1275. Add slf4j-log4j12 runtime dependency to
ratis-example. (#386)
add c9c2c2f RATIS-1276. Use ClientInvocationId as key instead of
StreamMap.Key (#387)
add b6fbb50 RATIS-1278. Resource leak when decoding
DataStreamReplyByteBuffer. (#388)
add 074a495 RATIS-1277. Fix FileStore write failed because out of order
(#389)
add 841a04c RATIS-1280. Validate RoutingTable before building it. (#390)
add 82fe707 RATIS-1268. Fix leader can not vote for candidate (#378)
add 35f17fa RATIS-993. Support pre vote (#161)
add 402579e RATIS-1282. Refactor the code for preVote and vote in
LeaderElection. (#391)
add 72a9d0f RATIS-1283. Refactor the code for preVote and vote in
RaftServerImpl. (#392)
add 544590d RATIS-1286. Move setConfiguration and transferLeadership to
admin GRPC calls. (#394)
add b9c137d RATIS-1288. Add summary of failures to the CI check (#395)
add c2bfd76 RATIS-1281.
TestRetryCacheWithGrpc#testRetryOnResourceUnavailableException fails (#393)
add ba24a23 RATIS-1287. Incompatible proto changes due to RATIS-1158.
(#397)
add 17bc494 RATIS-1289. Support skip the storagedir with multiple volumes
which cause by bad disk (#396)
add eb66796 RATIS-1290. Allow separate admin and client service (#401).
Contributed by Attila Doroszlai
No new revisions were added by this update.
Summary of changes:
.github/workflows/post-commit.yml | 14 +-
.github/workflows/pr.yml | 17 +-
dev-support/checks/build.sh | 2 +-
pom.xml | 36 +-
.../java/org/apache/ratis/client/AsyncRpcApi.java | 31 +-
.../org/apache/ratis/client/DataStreamClient.java | 66 +-
.../ratis/client/DataStreamClientFactory.java | 9 +-
.../apache/ratis/client/DataStreamClientRpc.java | 12 +-
.../apache/ratis/client/DataStreamOutputRpc.java | 18 +-
.../org/apache/ratis/client/DataStreamRpcApi.java | 19 +-
.../client/DisabledDataStreamClientFactory.java | 25 +-
.../java/org/apache/ratis/client/RaftClient.java | 93 +--
.../apache/ratis/client/RaftClientConfigKeys.java | 21 +-
.../org/apache/ratis/client/RaftClientRpc.java | 5 +-
.../java/org/apache/ratis/client/api/AdminApi.java | 32 +-
.../java/org/apache/ratis/client/api/AsyncApi.java | 71 ++
.../org/apache/ratis/client/api/BlockingApi.java | 71 ++
.../org/apache/ratis/client/api/DataStreamApi.java | 53 ++
.../apache/ratis/client/api/DataStreamOutput.java | 64 +-
.../{StreamApi.java => GroupManagementApi.java} | 33 +-
.../ratis/client/api/MessageOutputStream.java | 15 +-
.../api/{StreamApi.java => MessageStreamApi.java} | 21 +-
.../org/apache/ratis/client/impl/AdminImpl.java | 57 ++
.../org/apache/ratis/client/impl/AsyncImpl.java | 69 ++
.../org/apache/ratis/client/impl/BlockingImpl.java | 142 ++++
.../apache/ratis/client/impl/ClientImplUtils.java | 23 +-
.../apache/ratis/client/impl/ClientProtoUtils.java | 311 +++++---
.../ratis/client/impl/DataStreamClientImpl.java | 200 +++--
.../ratis/client/impl/GroupManagementImpl.java | 84 +++
.../{StreamImpl.java => MessageStreamImpl.java} | 24 +-
.../org/apache/ratis/client/impl/OrderedAsync.java | 10 +-
.../ratis/client/impl/OrderedStreamAsync.java | 89 +--
.../apache/ratis/client/impl/RaftClientImpl.java | 300 +++-----
.../ratis/client/impl/RaftClientRpcWithProxy.java | 5 +-
.../ratis/client/impl/RaftClientTestUtil.java | 6 +-
.../apache/ratis/client/impl/RaftOutputStream.java | 6 +-
.../apache/ratis/client/impl/UnorderedAsync.java | 17 +-
.../ratis/client/retry/ClientRetryEvent.java | 6 +-
.../retry/RequestTypeDependentRetryPolicy.java | 3 +-
ratis-common/pom.xml | 7 +-
.../main/java/org/apache/ratis/RaftConfigKeys.java | 2 +-
.../java/org/apache/ratis/conf/RaftProperties.java | 14 +-
.../apache/ratis/datastream/DataStreamFactory.java | 4 +-
.../apache/ratis/datastream/DataStreamType.java | 70 ++
.../ratis/datastream/SupportedDataStreamType.java | 27 +-
.../impl/DataStreamPacketByteBuffer.java} | 40 +-
.../datastream/impl/DataStreamPacketImpl.java | 72 ++
.../datastream/impl/DataStreamReplyByteBuffer.java | 130 ++++
.../impl/DataStreamRequestByteBuffer.java} | 34 +-
.../impl/DataStreamRequestFilePositionCount.java | 54 ++
.../main/java/org/apache/ratis/io/CloseAsync.java | 18 +-
.../org/apache/ratis/io/FilePositionCount.java | 40 +-
.../StandardWriteOption.java} | 9 +-
.../StreamException.java => io/WriteOption.java} | 17 +-
.../ratis/protocol/AdminAsynchronousProtocol.java | 7 +
.../org/apache/ratis/protocol/AdminProtocol.java | 4 +
.../java/org/apache/ratis/protocol/ClientId.java | 10 +-
.../apache/ratis/protocol/ClientInvocationId.java | 88 +++
...ataStreamMessage.java => DataStreamPacket.java} | 10 +-
...mReplyImpl.java => DataStreamPacketHeader.java} | 43 +-
.../org/apache/ratis/protocol/DataStreamReply.java | 7 +-
.../ratis/protocol/DataStreamReplyHeader.java | 83 ++
.../apache/ratis/protocol/DataStreamRequest.java | 5 +-
.../ratis/protocol/DataStreamRequestHeader.java | 86 +++
.../org/apache/ratis/protocol/GroupInfoReply.java | 24 +-
.../org/apache/ratis/protocol/GroupListReply.java | 20 +-
.../ratis/protocol/GroupManagementRequest.java | 6 +-
.../protocol/RaftClientAsynchronousProtocol.java | 2 -
.../apache/ratis/protocol/RaftClientMessage.java | 24 +-
.../apache/ratis/protocol/RaftClientProtocol.java | 2 -
.../org/apache/ratis/protocol/RaftClientReply.java | 158 +++-
.../apache/ratis/protocol/RaftClientRequest.java | 200 ++++-
.../java/org/apache/ratis/protocol/RaftGroup.java | 4 +-
.../org/apache/ratis/protocol/RaftGroupId.java | 4 +-
.../java/org/apache/ratis/protocol/RaftId.java | 10 +-
.../java/org/apache/ratis/protocol/RaftPeer.java | 172 ++++-
.../java/org/apache/ratis/protocol/RaftPeerId.java | 21 +-
.../org/apache/ratis/protocol/RoutingTable.java | 178 +++++
...Request.java => TransferLeadershipRequest.java} | 20 +-
.../{ => exceptions}/AlreadyClosedException.java | 2 +-
.../{ => exceptions}/AlreadyExistsException.java | 2 +-
.../{ => exceptions}/ChecksumException.java | 2 +-
...ableException.java => DataStreamException.java} | 15 +-
.../{ => exceptions}/GroupMismatchException.java | 2 +-
.../{ => exceptions}/LeaderNotReadyException.java | 4 +-
...ption.java => LeaderSteppingDownException.java} | 12 +-
.../{ => exceptions}/NotLeaderException.java | 4 +-
.../{ => exceptions}/NotReplicatedException.java | 2 +-
.../protocol/{ => exceptions}/RaftException.java | 2 +-
.../RaftRetryFailureException.java | 3 +-
.../ReconfigurationInProgressException.java | 2 +-
.../ReconfigurationTimeoutException.java | 2 +-
.../exceptions/ResourceUnavailableException.java | 2 -
.../{ => exceptions}/ServerNotReadyException.java | 2 +-
.../{ => exceptions}/StaleReadException.java | 2 +-
.../{ => exceptions}/StateMachineException.java | 31 +-
.../ratis/protocol/exceptions/StreamException.java | 2 -
.../{ => exceptions}/TimeoutIOException.java | 2 +-
...ption.java => TransferLeadershipException.java} | 12 +-
.../ratis/retry/MultipleLinearRandomRetry.java | 4 +-
.../java/org/apache/ratis/retry/RetryPolicies.java | 8 +-
.../CallId.java} | 47 +-
.../main/java/org/apache/ratis/rpc/RpcType.java | 20 +-
.../apache/ratis/util/AtomicFileOutputStream.java | 93 ++-
.../java/org/apache/ratis/util/AtomicUtils.java | 29 +-
.../org/apache/ratis/util/CollectionUtils.java | 13 +
.../main/java/org/apache/ratis/util/FileUtils.java | 1 +
.../main/java/org/apache/ratis/util/IOUtils.java | 8 +-
.../main/java/org/apache/ratis/util/JavaUtils.java | 31 +-
.../org/apache/ratis/util/JvmPauseMonitor.java | 163 ++++
.../main/java/org/apache/ratis/util/LifeCycle.java | 56 ++
.../main/java/org/apache/ratis/util/LogUtils.java | 8 +-
.../java/org/apache/ratis/util/MD5FileUtil.java | 7 +-
.../main/java/org/apache/ratis/util/NetUtils.java | 28 +
.../java/org/apache/ratis/util/PeerProxyMap.java | 12 +-
.../java/org/apache/ratis/util/Preconditions.java | 44 +-
.../java/org/apache/ratis/util/ProtoUtils.java | 96 ++-
.../org/apache/ratis/util/ReflectionUtils.java | 31 +-
.../org/apache/ratis/util/ResourceSemaphore.java | 4 +-
.../java/org/apache/ratis/util/SlidingWindow.java | 4 +-
.../main/java/org/apache/ratis/util/TaskQueue.java | 8 +-
.../java/org/apache/ratis/util/TimeDuration.java | 26 +-
.../main/java/org/apache/ratis/util/Timestamp.java | 9 +
.../src/test/java/org/apache/ratis/BaseTest.java | 18 +-
.../java/org/apache/ratis/util/TestNetUtils.java} | 29 +-
ratis-examples/README.md | 2 +-
ratis-examples/pom.xml | 18 +-
ratis-examples/src/main/bin/client.sh | 2 +-
.../arithmetic/ArithmeticStateMachine.java | 8 +-
.../ratis/examples/arithmetic/cli/Assign.java | 2 +-
.../apache/ratis/examples/arithmetic/cli/Get.java | 2 +-
.../ratis/examples/arithmetic/cli/Server.java | 7 +
.../org/apache/ratis/examples/common/Runner.java | 15 +-
.../ratis/examples/common/SubCommandBase.java | 40 +-
.../ratis/examples/counter/CounterCommon.java | 9 +-
.../examples/counter/client/CounterClient.java | 6 +-
.../apache/ratis/examples/filestore/FileInfo.java | 98 +--
.../apache/ratis/examples/filestore/FileStore.java | 146 +++-
.../ratis/examples/filestore/FileStoreClient.java | 47 +-
.../ratis/examples/filestore/FileStoreCommon.java | 12 +-
.../examples/filestore/FileStoreStateMachine.java | 73 +-
.../ratis/examples/filestore/cli/Client.java | 124 ++-
.../ratis/examples/filestore/cli/DataStream.java | 316 ++++++++
.../ratis/examples/filestore/cli/FileStore.java | 1 +
.../ratis/examples/filestore/cli/LoadGen.java | 128 ++--
.../ratis/examples/filestore/cli/Server.java | 55 +-
.../java/org/apache/ratis/TestMultiRaftGroup.java | 5 +-
.../ratis/examples/ParameterizedBaseTest.java | 18 +-
.../ratis/examples/arithmetic/TestArithmetic.java | 8 +-
.../examples/arithmetic/TestArithmeticLogDump.java | 15 +-
.../apache/ratis/examples/counter/TestCounter.java | 18 +-
.../examples/filestore/FileStoreAsyncBaseTest.java | 38 +-
.../examples/filestore/FileStoreBaseTest.java | 197 +----
.../filestore/FileStoreStreamingBaseTest.java | 141 ++++
.../ratis/examples/filestore/FileStoreWriter.java | 293 +++++++
... => TestFileStoreStreamingWithGrpcCluster.java} | 8 +-
ratis-grpc/pom.xml | 8 +-
.../java/org/apache/ratis/grpc/GrpcConfigKeys.java | 57 ++
.../java/org/apache/ratis/grpc/GrpcFactory.java | 47 +-
.../main/java/org/apache/ratis/grpc/GrpcUtil.java | 13 +-
.../grpc/client/GrpcClientProtocolClient.java | 84 ++-
.../ratis/grpc/client/GrpcClientProtocolProxy.java | 2 +-
.../grpc/client/GrpcClientProtocolService.java | 29 +-
.../apache/ratis/grpc/client/GrpcClientRpc.java | 22 +-
.../ratis/grpc/client/GrpcClientStreamer.java | 14 +-
.../apache/ratis/grpc/client/GrpcOutputStream.java | 5 +-
.../grpc/server/GrpcAdminProtocolService.java | 18 +
.../apache/ratis/grpc/server/GrpcLogAppender.java | 199 +++--
.../grpc/server/GrpcServerProtocolClient.java | 12 +
.../grpc/server/GrpcServerProtocolService.java | 30 +-
.../org/apache/ratis/grpc/server/GrpcService.java | 184 +++--
.../apache/ratis/grpc/MiniRaftClusterWithGrpc.java | 30 +-
.../ratis/grpc/server/TestGrpcServerMetrics.java | 8 -
ratis-hadoop/pom.xml | 9 -
.../org/apache/ratis/hadooprpc/HadoopFactory.java | 6 +-
...mbinedClientProtocolClientSideTranslatorPB.java | 11 +
...mbinedClientProtocolServerSideTranslatorPB.java | 11 +
.../ratis/hadooprpc/client/HadoopClientRpc.java | 8 +
.../ratis/hadooprpc/server/HadoopRpcService.java | 28 +-
.../RaftServerProtocolServerSideTranslatorPB.java | 9 +
.../src/main/proto/HadoopCompatability.proto | 2 +
.../hadooprpc/MiniRaftClusterWithHadoopRpc.java | 21 +-
.../TestGroupManagementWithHadoopRpc.java | 2 +-
... TestPreAppendLeaderStepDownWithHadoopRpc.java} | 6 +-
.../TestRaftReconfigurationWithHadoopRpc.java | 6 -
.../hadooprpc/TestRaftSnapshotWithHadoopRpc.java | 5 +-
.../ratis/hadooprpc/TestRaftWithHadoopRpc.java | 2 +-
ratis-logservice/pom.xml | 10 +-
.../ratis/logservice/api/LogServiceClient.java | 15 +-
.../apache/ratis/logservice/common/Constants.java | 2 +-
.../ratis/logservice/impl/LogReaderImpl.java | 8 +-
.../ratis/logservice/impl/LogStreamImpl.java | 10 +-
.../ratis/logservice/impl/LogWriterImpl.java | 4 +-
.../apache/ratis/logservice/server/LogServer.java | 8 +-
.../ratis/logservice/server/LogStateMachine.java | 41 +-
.../ratis/logservice/server/MetaStateMachine.java | 12 +-
.../ratis/logservice/tool/VerificationTool.java | 74 +-
.../ratis/logservice/util/LogServiceUtils.java | 9 +-
.../logservice/util/MetaServiceProtoUtil.java | 6 +-
.../ratis/logservice/LogServiceReadWriteBase.java | 2 +-
.../ratis/logservice/server/TestMetaServer.java | 13 +-
ratis-metrics/pom.xml | 27 +-
.../ratis/metrics/MetricRegistriesLoader.java | 4 +-
.../org/apache/ratis/metrics/RatisMetrics.java | 2 +-
.../ratis/metrics/impl/MetricRegistriesImpl.java | 2 +-
.../apache/ratis/metrics/impl/RefCountingMap.java | 50 +-
ratis-netty/pom.xml | 4 -
.../java/org/apache/ratis/netty/NettyClient.java | 3 +-
.../org/apache/ratis/netty/NettyConfigKeys.java | 21 +
.../apache/ratis/netty/NettyDataStreamFactory.java | 3 +-
.../apache/ratis/netty/NettyDataStreamUtils.java | 161 ++++
.../java/org/apache/ratis/netty/NettyFactory.java | 6 +-
.../java/org/apache/ratis/netty/NettyRpcProxy.java | 10 +-
.../apache/ratis/netty/client/NettyClientRpc.java | 5 +
.../ratis/netty/client/NettyClientStreamRpc.java | 136 ++--
.../netty/decoders/DataStreamReplyDecoder.java | 53 --
.../netty/decoders/DataStreamRequestDecoder.java | 59 --
.../netty/encoders/DataStreamReplyEncoder.java | 44 --
.../netty/encoders/DataStreamRequestEncoder.java | 42 --
.../ratis/netty/server/DataStreamManagement.java | 426 +++++++++++
.../netty/server/DataStreamRequestByteBuf.java | 64 ++
.../apache/ratis/netty/server/NettyRpcService.java | 52 +-
.../ratis/netty/server/NettyServerStreamRpc.java | 250 ++++--
.../ratis/netty/MiniRaftClusterWithNetty.java | 21 +-
ratis-proto/pom.xml | 4 +
ratis-proto/src/main/proto/Examples.proto | 12 +
ratis-proto/src/main/proto/Grpc.proto | 14 +-
ratis-proto/src/main/proto/Hadoop.proto | 3 +
ratis-proto/src/main/proto/Netty.proto | 3 +
ratis-proto/src/main/proto/Raft.proto | 95 ++-
ratis-replicated-map/pom.xml | 19 -
{ratis-client => ratis-server-api}/pom.xml | 11 +-
.../org/apache/ratis/server/DataStreamMap.java | 29 +-
.../org/apache/ratis/server/DataStreamServer.java | 9 +-
.../ratis/server/DataStreamServerFactory.java | 20 +-
.../apache/ratis/server/DataStreamServerRpc.java | 16 +-
.../java/org/apache/ratis/server/DivisionInfo.java | 72 ++
.../apache/ratis/server/DivisionProperties.java | 55 ++
.../org/apache/ratis/server/RaftConfiguration.java | 50 ++
.../java/org/apache/ratis/server/RaftServer.java | 234 ++++++
.../apache/ratis/server/RaftServerConfigKeys.java | 82 +-
.../org/apache/ratis/server/RaftServerMXBean.java | 2 +-
.../org/apache/ratis/server/RaftServerRpc.java | 36 +-
.../ratis/server}/RaftServerRpcWithProxy.java | 27 +-
.../java/org/apache/ratis/server/RetryCache.java | 70 ++
.../org/apache/ratis/server}/ServerFactory.java | 21 +-
.../apache/ratis/server/leader/FollowerInfo.java | 81 ++
.../apache/ratis/server/leader/LeaderState.java | 61 ++
.../apache/ratis/server/leader/LogAppender.java | 164 ++++
.../ratis/server/metrics/RaftLogMetrics.java | 11 +-
.../ratis/server/metrics/RaftServerMetrics.java | 12 +-
.../protocol/RaftServerAsynchronousProtocol.java | 2 +-
.../ratis/server/protocol/RaftServerProtocol.java | 4 +
.../apache/ratis/server/protocol/TermIndex.java | 102 +++
.../ratis/server/raftlog/LogEntryHeader.java | 86 +++
.../org/apache/ratis/server/raftlog/RaftLog.java | 166 ++++
.../ratis/server/raftlog/RaftLogIOException.java | 2 +-
.../apache/ratis/server/raftlog/RaftLogIndex.java | 2 +-
.../ratis/server/raftlog/RaftLogSequentialOps.java | 6 +-
.../org/apache/ratis/server/storage/FileInfo.java | 2 +-
.../apache/ratis/server/storage/RaftStorage.java | 27 +-
.../ratis/server/storage/RaftStorageDirectory.java | 53 ++
.../ratis/server/storage/RaftStorageMetadata.java | 82 ++
.../server/storage/RaftStorageMetadataFile.java | 17 +-
.../apache/ratis/statemachine/SnapshotInfo.java | 25 +-
.../statemachine}/SnapshotRetentionPolicy.java | 10 +-
.../apache/ratis/statemachine/StateMachine.java | 282 ++++---
.../ratis/statemachine/StateMachineStorage.java | 3 +-
.../ratis/statemachine/TransactionContext.java | 45 +-
ratis-server/pom.xml | 11 +-
.../server/DisabledDataStreamServerFactory.java | 42 +-
.../java/org/apache/ratis/server/RaftServer.java | 120 ---
.../apache/ratis/server/impl/CommitInfoCache.java | 5 +-
.../ratis/server/impl/ConfigurationManager.java | 30 +-
.../ratis/server/impl/DataStreamMapImpl.java | 57 ++
.../ratis/server/impl/DataStreamServerImpl.java | 29 +-
.../ratis/server/impl/DivisionPropertiesImpl.java | 61 ++
.../{FollowerInfo.java => FollowerInfoImpl.java} | 48 +-
.../apache/ratis/server/impl/FollowerState.java | 58 +-
.../apache/ratis/server/impl/LeaderElection.java | 245 ++++--
.../{LeaderState.java => LeaderStateImpl.java} | 414 +++++-----
.../org/apache/ratis/server/impl/LogAppender.java | 602 ---------------
...eamRequests.java => MessageStreamRequests.java} | 62 +-
.../ratis/server/impl/PeerConfiguration.java | 10 +
.../apache/ratis/server/impl/PendingRequest.java | 41 +-
.../apache/ratis/server/impl/PendingRequests.java | 22 +-
...nfiguration.java => RaftConfigurationImpl.java} | 98 +--
.../ratis/server/impl/RaftServerConstants.java | 51 --
.../apache/ratis/server/impl/RaftServerImpl.java | 840 +++++++++++++--------
.../apache/ratis/server/impl/RaftServerProxy.java | 158 +++-
.../impl/{RetryCache.java => RetryCacheImpl.java} | 168 +++--
.../org/apache/ratis/server/impl/RoleInfo.java | 45 +-
.../apache/ratis/server/impl/ServerImplUtils.java | 74 +-
.../apache/ratis/server/impl/ServerProtoUtils.java | 349 +--------
.../org/apache/ratis/server/impl/ServerState.java | 173 ++---
.../ratis/server/impl/StateMachineUpdater.java | 34 +-
.../ratis/server/impl/TransferLeadership.java | 120 +++
.../org/apache/ratis/server/impl/VoteContext.java | 154 ++++
.../apache/ratis/server/impl/WatchRequests.java | 4 +-
.../server/leader/InstallSnapshotRequests.java | 137 ++++
.../ratis/server/leader/LeaderProtoUtils.java | 73 ++
.../ratis/server/leader/LogAppenderBase.java | 189 +++++
.../ratis/server/leader/LogAppenderDaemon.java | 127 ++++
.../ratis/server/leader/LogAppenderDefault.java | 183 +++++
.../server/metrics/LeaderElectionMetrics.java | 41 +-
.../ratis/server/metrics/LogAppenderMetrics.java | 29 +-
.../ratis/server/metrics/RaftLogMetricsBase.java | 82 ++
.../RaftServerMetricsImpl.java} | 186 +++--
...ogMetrics.java => SegmentedRaftLogMetrics.java} | 90 +--
.../apache/ratis/server/protocol/TermIndex.java | 53 --
.../apache/ratis/server/raftlog/LogProtoUtils.java | 207 +++++
.../raftlog/{RaftLog.java => RaftLogBase.java} | 220 ++----
.../ratis/server/raftlog/memory/MemoryRaftLog.java | 57 +-
.../ratis/server/raftlog/segmented/LogSegment.java | 191 +++--
.../server/raftlog/segmented/LogSegmentPath.java | 133 ++++
.../raftlog/segmented/LogSegmentStartEnd.java | 136 ++++
.../server/raftlog/segmented/SegmentedRaftLog.java | 154 ++--
.../raftlog/segmented/SegmentedRaftLogCache.java | 115 +--
.../segmented/SegmentedRaftLogInputStream.java | 18 +-
.../segmented/SegmentedRaftLogOutputStream.java | 3 +-
.../raftlog/segmented/SegmentedRaftLogReader.java | 16 +-
.../raftlog/segmented/SegmentedRaftLogWorker.java | 129 ++--
.../ratis/server/storage/FileChunkReader.java | 95 +++
.../org/apache/ratis/server/storage/MetaFile.java | 130 ----
...irectory.java => RaftStorageDirectoryImpl.java} | 154 +---
.../{RaftStorage.java => RaftStorageImpl.java} | 76 +-
.../storage/RaftStorageMetadataFileImpl.java | 121 +++
.../ratis/server/storage/SnapshotManager.java | 6 +-
.../ratis/server/util/ServerStringUtils.java | 112 +++
.../ratis/statemachine/impl/BaseStateMachine.java | 25 +-
.../statemachine/impl/FileListSnapshotInfo.java | 20 +-
.../impl/SimpleStateMachineStorage.java | 5 +-
.../statemachine/impl/SingleFileSnapshotInfo.java | 6 +-
.../statemachine/impl/TransactionContextImpl.java | 52 +-
.../ratis/InstallSnapshotNotificationTests.java | 41 +-
.../java/org/apache/ratis/LogAppenderTests.java | 35 +-
...eamApiTests.java => MessageStreamApiTests.java} | 21 +-
.../org/apache/ratis/OutputStreamBaseTest.java | 38 +-
.../org/apache/ratis/RaftAsyncExceptionTests.java | 22 +-
.../test/java/org/apache/ratis/RaftAsyncTests.java | 84 ++-
.../test/java/org/apache/ratis/RaftBasicTests.java | 139 ++--
.../org/apache/ratis/RaftExceptionBaseTest.java | 27 +-
.../test/java/org/apache/ratis/RaftTestUtil.java | 104 ++-
.../apache/ratis/RequestLimitAsyncBaseTest.java | 21 +-
.../java/org/apache/ratis/RetryCacheTests.java | 29 +-
.../java/org/apache/ratis/WatchRequestTests.java | 46 +-
.../server/impl/BlockRequestHandlingInjection.java | 8 +-
.../server/impl/DelayLocalExecutionInjection.java | 6 +-
.../ratis/server/impl/GroupInfoBaseTest.java | 20 +-
.../ratis/server/impl/GroupManagementBaseTest.java | 91 +--
.../ratis/server/impl/LeaderElectionTests.java | 218 +++++-
.../ratis/{ => server/impl}/MiniRaftCluster.java | 225 +++---
.../server/impl/PreAppendLeaderStepDownTest.java | 111 +++
.../server/impl/RaftReconfigurationBaseTest.java | 125 +--
.../ratis/server/impl/RaftServerTestUtil.java | 111 ++-
.../impl/RaftStateMachineExceptionTests.java | 30 +-
.../ratis/server/impl/RetryCacheTestUtil.java | 58 +-
.../ratis/server/impl/ServerPauseResumeTest.java | 88 +++
.../server/impl/StateMachineShutdownTests.java | 35 +-
.../ratis/server/impl/TestLogAppenderMetrics.java | 57 +-
.../server/impl/TestRatisServerMetricsBase.java | 74 ++
.../ratis/server/impl/TestRetryCacheMetrics.java | 54 +-
.../server/metrics/TestLeaderElectionMetrics.java | 32 +-
.../segmented/SegmentedRaftLogTestUtils.java | 1 -
.../MiniRaftClusterWithSimulatedRpc.java | 18 +-
.../ratis/server/simulation/RaftServerReply.java | 33 +-
.../ratis/server/simulation/RaftServerRequest.java | 32 +-
.../ratis/server/simulation/RequestHandler.java | 4 +-
.../server/simulation/SimulatedClientRpc.java | 4 +-
.../server/simulation/SimulatedRequestReply.java | 5 +-
.../ratis/server/simulation/SimulatedRpc.java | 6 +-
.../server/simulation/SimulatedServerRpc.java | 24 +-
.../ratis/server/storage/RaftStorageTestUtils.java | 18 +-
.../ratis/statemachine/RaftSnapshotBaseTest.java | 52 +-
.../statemachine/SimpleStateMachine4Testing.java | 38 +-
ratis-test/pom.xml | 12 +-
.../ratis/TestRaftServerNoLeaderTimeout.java | 9 +-
.../ratis/TestRaftServerSlownessDetection.java | 20 +-
.../apache/ratis/client/TestClientProtoUtils.java | 11 +-
.../datastream/DataStreamAsyncClusterTests.java | 164 ++++
.../ratis/datastream/DataStreamBaseTest.java | 158 ++++
.../ratis/datastream/DataStreamClusterTests.java | 170 +++++
.../ratis/datastream/DataStreamTestUtils.java | 411 ++++++++++
...usterWithRpcTypeGrpcAndDataStreamTypeNetty.java | 60 ++
...sterWithRpcTypeNettyAndDataStreamTypeNetty.java | 60 ++
.../apache/ratis/datastream/TestDataStream.java | 98 ---
.../ratis/datastream/TestDataStreamDisabled.java | 55 ++
...ettyDataStreamChainTopologyWithGrpcCluster.java | 6 +-
...ettyDataStreamStarTopologyWithGrpcCluster.java} | 34 +-
.../datastream/TestNettyDataStreamWithMock.java | 180 +++++
.../TestNettyDataStreamWithNettyCluster.java | 9 +-
.../ratis/grpc/TestGroupManagementWithGrpc.java | 2 +-
.../apache/ratis/grpc/TestGrpcMessageMetrics.java | 12 +-
.../apache/ratis/grpc/TestGrpcOutputStream.java | 3 -
.../apache/ratis/grpc/TestLogAppenderWithGrpc.java | 32 +-
...Grpc.java => TestMessageStreamApiWithGrpc.java} | 4 +-
...va => TestPreAppendLeaderStepDownWithGrpc.java} | 6 +-
.../apache/ratis/grpc/TestRaftServerWithGrpc.java | 100 +--
.../ratis/grpc/TestRaftSnapshotWithGrpc.java | 8 +-
.../org/apache/ratis/grpc/TestRaftWithGrpc.java | 22 +-
.../apache/ratis/grpc/TestRetryCacheWithGrpc.java | 24 +-
...rpc.java => TestServerPauseResumeWithGrpc.java} | 6 +-
.../ratis/netty/TestGroupManagementWithNetty.java | 2 +-
...a => TestPreAppendLeaderStepDownWithNetty.java} | 6 +-
.../ratis/netty/TestRaftSnapshotWithNetty.java | 5 +-
...pc.java => TestServerPauseResumeWithNetty.java} | 7 +-
.../apache/ratis/protocol/TestRoutingTable.java | 91 +++
.../ratis/retry/TestExceptionDependentRetry.java | 51 +-
.../ratis/retry/TestExponentialBackoffRetry.java | 2 +-
.../org/apache/ratis/retry/TestRetryPolicy.java | 14 +-
.../apache/ratis/server/ServerRestartTests.java | 99 +--
.../ratis/server/TestRaftServerConfigKeys.java | 2 +-
.../ratis/server/impl/TestPeerConfiguration.java | 82 ++
.../apache/ratis/server/impl/TestServerState.java | 5 +-
.../ratis/server/raftlog/TestRaftLogMetrics.java | 51 +-
.../server/raftlog/memory/MemoryRaftLogTest.java | 11 +-
.../raftlog/segmented/TestCacheEviction.java | 32 +-
.../server/raftlog/segmented/TestLogSegment.java | 86 ++-
.../raftlog/segmented/TestRaftLogReadWrite.java | 53 +-
.../raftlog/segmented/TestSegmentedRaftLog.java | 146 ++--
.../segmented/TestSegmentedRaftLogCache.java | 31 +-
.../TestGroupManagementWithSimulatedRpc.java | 2 +-
...stPreAppendLeaderStepDownWithSimulatedRpc.java} | 8 +-
.../TestRaftSnapshotWithSimulatedRpc.java | 5 +-
...=> TestRatisServerMetricsWithSimulatedRpc.java} | 9 +-
... => TestServerPauseResumeWithSimulatedRpc.java} | 13 +-
.../ratis/server/storage/TestRaftStorage.java | 98 ++-
.../ratis/statemachine/TestStateMachine.java | 33 +-
.../apache/ratis/util/TestDataBlockingQueue.java | 8 +-
.../org/apache/ratis/util/TestPeerProxyMap.java | 2 +-
.../apache/ratis/util/TestResourceSemaphore.java | 1 +
.../org.mockito.plugins.MockMaker | 7 +-
.../java/org/apache/ratis/tools/ParseRatisLog.java | 10 +-
433 files changed, 16355 insertions(+), 7212 deletions(-)
copy
ratis-server/src/test/java/org/apache/ratis/server/simulation/SimulatedClientRpc.java
=> ratis-client/src/main/java/org/apache/ratis/client/AsyncRpcApi.java (59%)
copy
ratis-server/src/main/java/org/apache/ratis/server/protocol/RaftServerAsynchronousProtocol.java
=> ratis-client/src/main/java/org/apache/ratis/client/DataStreamOutputRpc.java
(68%)
copy
ratis-logservice/src/main/java/org/apache/ratis/logservice/shell/Command.java
=> ratis-client/src/main/java/org/apache/ratis/client/DataStreamRpcApi.java
(64%)
copy
ratis-netty/src/main/java/org/apache/ratis/netty/NettyDataStreamFactory.java =>
ratis-client/src/main/java/org/apache/ratis/client/DisabledDataStreamClientFactory.java
(61%)
copy
ratis-test/src/test/java/org/apache/ratis/server/impl/TestRaftConfiguration.java
=> ratis-client/src/main/java/org/apache/ratis/client/api/AdminApi.java (53%)
create mode 100644
ratis-client/src/main/java/org/apache/ratis/client/api/AsyncApi.java
create mode 100644
ratis-client/src/main/java/org/apache/ratis/client/api/BlockingApi.java
create mode 100644
ratis-client/src/main/java/org/apache/ratis/client/api/DataStreamApi.java
copy ratis-client/src/main/java/org/apache/ratis/client/api/{StreamApi.java =>
GroupManagementApi.java} (53%)
rename ratis-client/src/main/java/org/apache/ratis/client/api/{StreamApi.java
=> MessageStreamApi.java} (60%)
create mode 100644
ratis-client/src/main/java/org/apache/ratis/client/impl/AdminImpl.java
create mode 100644
ratis-client/src/main/java/org/apache/ratis/client/impl/AsyncImpl.java
create mode 100644
ratis-client/src/main/java/org/apache/ratis/client/impl/BlockingImpl.java
create mode 100644
ratis-client/src/main/java/org/apache/ratis/client/impl/GroupManagementImpl.java
rename
ratis-client/src/main/java/org/apache/ratis/client/impl/{StreamImpl.java =>
MessageStreamImpl.java} (74%)
create mode 100644
ratis-common/src/main/java/org/apache/ratis/datastream/DataStreamType.java
rename
ratis-common/src/main/java/org/apache/ratis/{protocol/DataStreamRequestClient.java
=> datastream/impl/DataStreamPacketByteBuffer.java} (52%)
create mode 100644
ratis-common/src/main/java/org/apache/ratis/datastream/impl/DataStreamPacketImpl.java
create mode 100644
ratis-common/src/main/java/org/apache/ratis/datastream/impl/DataStreamReplyByteBuffer.java
copy
ratis-common/src/main/java/org/apache/ratis/{protocol/SetConfigurationRequest.java
=> datastream/impl/DataStreamRequestByteBuffer.java} (53%)
create mode 100644
ratis-common/src/main/java/org/apache/ratis/datastream/impl/DataStreamRequestFilePositionCount.java
copy
ratis-client/src/main/java/org/apache/ratis/client/api/DataStreamOutput.java =>
ratis-common/src/main/java/org/apache/ratis/io/CloseAsync.java (73%)
copy ratis-tools/src/main/java/org/apache/ratis/tools/DefaultLogDump.java =>
ratis-common/src/main/java/org/apache/ratis/io/FilePositionCount.java (54%)
copy
ratis-common/src/main/java/org/apache/ratis/{protocol/DataStreamRequest.java =>
io/StandardWriteOption.java} (79%)
copy
ratis-common/src/main/java/org/apache/ratis/{protocol/exceptions/StreamException.java
=> io/WriteOption.java} (75%)
create mode 100644
ratis-common/src/main/java/org/apache/ratis/protocol/ClientInvocationId.java
copy
ratis-common/src/main/java/org/apache/ratis/protocol/{DataStreamMessage.java =>
DataStreamPacket.java} (82%)
rename
ratis-common/src/main/java/org/apache/ratis/protocol/{DataStreamReplyImpl.java
=> DataStreamPacketHeader.java} (55%)
create mode 100644
ratis-common/src/main/java/org/apache/ratis/protocol/DataStreamReplyHeader.java
create mode 100644
ratis-common/src/main/java/org/apache/ratis/protocol/DataStreamRequestHeader.java
create mode 100644
ratis-common/src/main/java/org/apache/ratis/protocol/RoutingTable.java
copy
ratis-common/src/main/java/org/apache/ratis/protocol/{GroupListRequest.java =>
TransferLeadershipRequest.java} (70%)
rename ratis-common/src/main/java/org/apache/ratis/protocol/{ =>
exceptions}/AlreadyClosedException.java (95%)
rename ratis-common/src/main/java/org/apache/ratis/protocol/{ =>
exceptions}/AlreadyExistsException.java (96%)
rename ratis-common/src/main/java/org/apache/ratis/protocol/{ =>
exceptions}/ChecksumException.java (96%)
copy
ratis-common/src/main/java/org/apache/ratis/protocol/exceptions/{ResourceUnavailableException.java
=> DataStreamException.java} (72%)
rename ratis-common/src/main/java/org/apache/ratis/protocol/{ =>
exceptions}/GroupMismatchException.java (95%)
rename ratis-common/src/main/java/org/apache/ratis/protocol/{ =>
exceptions}/LeaderNotReadyException.java (93%)
copy
ratis-common/src/main/java/org/apache/ratis/protocol/exceptions/{StreamException.java
=> LeaderSteppingDownException.java} (80%)
rename ratis-common/src/main/java/org/apache/ratis/protocol/{ =>
exceptions}/NotLeaderException.java (92%)
rename ratis-common/src/main/java/org/apache/ratis/protocol/{ =>
exceptions}/NotReplicatedException.java (97%)
rename ratis-common/src/main/java/org/apache/ratis/protocol/{ =>
exceptions}/RaftException.java (96%)
rename ratis-common/src/main/java/org/apache/ratis/protocol/{ =>
exceptions}/RaftRetryFailureException.java (93%)
rename ratis-common/src/main/java/org/apache/ratis/protocol/{ =>
exceptions}/ReconfigurationInProgressException.java (95%)
rename ratis-common/src/main/java/org/apache/ratis/protocol/{ =>
exceptions}/ReconfigurationTimeoutException.java (95%)
rename ratis-common/src/main/java/org/apache/ratis/protocol/{ =>
exceptions}/ServerNotReadyException.java (95%)
rename ratis-common/src/main/java/org/apache/ratis/protocol/{ =>
exceptions}/StaleReadException.java (95%)
rename ratis-common/src/main/java/org/apache/ratis/protocol/{ =>
exceptions}/StateMachineException.java (55%)
rename ratis-common/src/main/java/org/apache/ratis/protocol/{ =>
exceptions}/TimeoutIOException.java (96%)
copy
ratis-common/src/main/java/org/apache/ratis/protocol/exceptions/{StreamException.java
=> TransferLeadershipException.java} (80%)
rename
ratis-common/src/main/java/org/apache/ratis/{protocol/DataStreamRequestServer.java
=> rpc/CallId.java} (54%)
create mode 100644
ratis-common/src/main/java/org/apache/ratis/util/JvmPauseMonitor.java
copy ratis-common/src/{main/java/org/apache/ratis/util/Daemon.java =>
test/java/org/apache/ratis/util/TestNetUtils.java} (65%)
create mode 100644
ratis-examples/src/main/java/org/apache/ratis/examples/filestore/cli/DataStream.java
create mode 100644
ratis-examples/src/test/java/org/apache/ratis/examples/filestore/FileStoreStreamingBaseTest.java
create mode 100644
ratis-examples/src/test/java/org/apache/ratis/examples/filestore/FileStoreWriter.java
copy
ratis-examples/src/test/java/org/apache/ratis/examples/filestore/{TestFileStoreAsyncWithGrpc.java
=> TestFileStoreStreamingWithGrpcCluster.java} (73%)
copy
ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/{TestLogAppenderWithHadoopRpc.java
=> TestPreAppendLeaderStepDownWithHadoopRpc.java} (82%)
create mode 100644
ratis-netty/src/main/java/org/apache/ratis/netty/NettyDataStreamUtils.java
delete mode 100644
ratis-netty/src/main/java/org/apache/ratis/netty/decoders/DataStreamReplyDecoder.java
delete mode 100644
ratis-netty/src/main/java/org/apache/ratis/netty/decoders/DataStreamRequestDecoder.java
delete mode 100644
ratis-netty/src/main/java/org/apache/ratis/netty/encoders/DataStreamReplyEncoder.java
delete mode 100644
ratis-netty/src/main/java/org/apache/ratis/netty/encoders/DataStreamRequestEncoder.java
create mode 100644
ratis-netty/src/main/java/org/apache/ratis/netty/server/DataStreamManagement.java
create mode 100644
ratis-netty/src/main/java/org/apache/ratis/netty/server/DataStreamRequestByteBuf.java
copy {ratis-client => ratis-server-api}/pom.xml (88%)
copy
ratis-client/src/main/java/org/apache/ratis/client/DataStreamClientRpc.java =>
ratis-server-api/src/main/java/org/apache/ratis/server/DataStreamMap.java (56%)
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/server/DataStreamServer.java
(92%)
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/server/DataStreamServerFactory.java
(65%)
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/server/DataStreamServerRpc.java
(76%)
create mode 100644
ratis-server-api/src/main/java/org/apache/ratis/server/DivisionInfo.java
create mode 100644
ratis-server-api/src/main/java/org/apache/ratis/server/DivisionProperties.java
create mode 100644
ratis-server-api/src/main/java/org/apache/ratis/server/RaftConfiguration.java
create mode 100644
ratis-server-api/src/main/java/org/apache/ratis/server/RaftServer.java
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java
(85%)
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/server/RaftServerMXBean.java
(99%)
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/server/RaftServerRpc.java (71%)
rename {ratis-server/src/main/java/org/apache/ratis/server/impl =>
ratis-server-api/src/main/java/org/apache/ratis/server}/RaftServerRpcWithProxy.java
(72%)
create mode 100644
ratis-server-api/src/main/java/org/apache/ratis/server/RetryCache.java
rename {ratis-server/src/main/java/org/apache/ratis/server/impl =>
ratis-server-api/src/main/java/org/apache/ratis/server}/ServerFactory.java (75%)
create mode 100644
ratis-server-api/src/main/java/org/apache/ratis/server/leader/FollowerInfo.java
create mode 100644
ratis-server-api/src/main/java/org/apache/ratis/server/leader/LeaderState.java
create mode 100644
ratis-server-api/src/main/java/org/apache/ratis/server/leader/LogAppender.java
copy
ratis-hadoop/src/test/java/org/apache/ratis/hadooprpc/TestLogAppenderWithHadoopRpc.java
=>
ratis-server-api/src/main/java/org/apache/ratis/server/metrics/RaftLogMetrics.java
(75%)
rename
ratis-common/src/main/java/org/apache/ratis/protocol/DataStreamMessage.java =>
ratis-server-api/src/main/java/org/apache/ratis/server/metrics/RaftServerMetrics.java
(81%)
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/server/protocol/RaftServerAsynchronousProtocol.java
(99%)
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/server/protocol/RaftServerProtocol.java
(86%)
create mode 100644
ratis-server-api/src/main/java/org/apache/ratis/server/protocol/TermIndex.java
create mode 100644
ratis-server-api/src/main/java/org/apache/ratis/server/raftlog/LogEntryHeader.java
create mode 100644
ratis-server-api/src/main/java/org/apache/ratis/server/raftlog/RaftLog.java
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/server/raftlog/RaftLogIOException.java
(95%)
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/server/raftlog/RaftLogIndex.java
(97%)
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/server/raftlog/RaftLogSequentialOps.java
(95%)
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/server/storage/FileInfo.java
(99%)
copy
ratis-logservice/src/main/java/org/apache/ratis/logservice/impl/ExportedLogStreamImpl.java
=>
ratis-server-api/src/main/java/org/apache/ratis/server/storage/RaftStorage.java
(61%)
create mode 100644
ratis-server-api/src/main/java/org/apache/ratis/server/storage/RaftStorageDirectory.java
create mode 100644
ratis-server-api/src/main/java/org/apache/ratis/server/storage/RaftStorageMetadata.java
copy
ratis-test/src/test/java/org/apache/ratis/server/simulation/TestRaftExceptionWithSimulation.java
=>
ratis-server-api/src/main/java/org/apache/ratis/server/storage/RaftStorageMetadataFile.java
(64%)
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/statemachine/SnapshotInfo.java
(60%)
rename {ratis-server/src/main/java/org/apache/ratis/statemachine/impl =>
ratis-server-api/src/main/java/org/apache/ratis/statemachine}/SnapshotRetentionPolicy.java
(76%)
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/statemachine/StateMachine.java
(56%)
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/statemachine/StateMachineStorage.java
(95%)
rename {ratis-server =>
ratis-server-api}/src/main/java/org/apache/ratis/statemachine/TransactionContext.java
(82%)
copy
ratis-netty/src/main/java/org/apache/ratis/netty/NettyDataStreamFactory.java =>
ratis-server/src/main/java/org/apache/ratis/server/DisabledDataStreamServerFactory.java
(53%)
delete mode 100644
ratis-server/src/main/java/org/apache/ratis/server/RaftServer.java
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/impl/DataStreamMapImpl.java
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/impl/DivisionPropertiesImpl.java
rename
ratis-server/src/main/java/org/apache/ratis/server/impl/{FollowerInfo.java =>
FollowerInfoImpl.java} (83%)
rename
ratis-server/src/main/java/org/apache/ratis/server/impl/{LeaderState.java =>
LeaderStateImpl.java} (69%)
delete mode 100644
ratis-server/src/main/java/org/apache/ratis/server/impl/LogAppender.java
rename
ratis-server/src/main/java/org/apache/ratis/server/impl/{StreamRequests.java =>
MessageStreamRequests.java} (66%)
rename
ratis-server/src/main/java/org/apache/ratis/server/impl/{RaftConfiguration.java
=> RaftConfigurationImpl.java} (73%)
delete mode 100644
ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerConstants.java
rename
ratis-server/src/main/java/org/apache/ratis/server/impl/{RetryCache.java =>
RetryCacheImpl.java} (63%)
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/impl/TransferLeadership.java
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/impl/VoteContext.java
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/leader/InstallSnapshotRequests.java
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/leader/LeaderProtoUtils.java
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/leader/LogAppenderBase.java
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/leader/LogAppenderDaemon.java
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/leader/LogAppenderDefault.java
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/metrics/RaftLogMetricsBase.java
rename
ratis-server/src/main/java/org/apache/ratis/server/{impl/RaftServerMetrics.java
=> metrics/RaftServerMetricsImpl.java} (50%)
rename
ratis-server/src/main/java/org/apache/ratis/server/metrics/{RaftLogMetrics.java
=> SegmentedRaftLogMetrics.java} (63%)
delete mode 100644
ratis-server/src/main/java/org/apache/ratis/server/protocol/TermIndex.java
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/raftlog/LogProtoUtils.java
rename
ratis-server/src/main/java/org/apache/ratis/server/raftlog/{RaftLog.java =>
RaftLogBase.java} (68%)
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/LogSegmentPath.java
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/LogSegmentStartEnd.java
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/storage/FileChunkReader.java
delete mode 100644
ratis-server/src/main/java/org/apache/ratis/server/storage/MetaFile.java
rename
ratis-server/src/main/java/org/apache/ratis/server/storage/{RaftStorageDirectory.java
=> RaftStorageDirectoryImpl.java} (62%)
rename
ratis-server/src/main/java/org/apache/ratis/server/storage/{RaftStorage.java =>
RaftStorageImpl.java} (64%)
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/storage/RaftStorageMetadataFileImpl.java
create mode 100644
ratis-server/src/main/java/org/apache/ratis/server/util/ServerStringUtils.java
rename ratis-server/src/test/java/org/apache/ratis/{StreamApiTests.java =>
MessageStreamApiTests.java} (82%)
rename ratis-server/src/test/java/org/apache/ratis/{ =>
server/impl}/MiniRaftCluster.java (75%)
create mode 100644
ratis-server/src/test/java/org/apache/ratis/server/impl/PreAppendLeaderStepDownTest.java
create mode 100644
ratis-server/src/test/java/org/apache/ratis/server/impl/ServerPauseResumeTest.java
create mode 100644
ratis-server/src/test/java/org/apache/ratis/server/impl/TestRatisServerMetricsBase.java
create mode 100644
ratis-test/src/test/java/org/apache/ratis/datastream/DataStreamAsyncClusterTests.java
create mode 100644
ratis-test/src/test/java/org/apache/ratis/datastream/DataStreamBaseTest.java
create mode 100644
ratis-test/src/test/java/org/apache/ratis/datastream/DataStreamClusterTests.java
create mode 100644
ratis-test/src/test/java/org/apache/ratis/datastream/DataStreamTestUtils.java
create mode 100644
ratis-test/src/test/java/org/apache/ratis/datastream/MiniRaftClusterWithRpcTypeGrpcAndDataStreamTypeNetty.java
create mode 100644
ratis-test/src/test/java/org/apache/ratis/datastream/MiniRaftClusterWithRpcTypeNettyAndDataStreamTypeNetty.java
delete mode 100644
ratis-test/src/test/java/org/apache/ratis/datastream/TestDataStream.java
create mode 100644
ratis-test/src/test/java/org/apache/ratis/datastream/TestDataStreamDisabled.java
copy
ratis-common/src/main/java/org/apache/ratis/datastream/DataStreamFactory.java
=>
ratis-test/src/test/java/org/apache/ratis/datastream/TestNettyDataStreamChainTopologyWithGrpcCluster.java
(78%)
rename
ratis-test/src/test/java/org/apache/ratis/{server/impl/TestRaftConfiguration.java
=> datastream/TestNettyDataStreamStarTopologyWithGrpcCluster.java} (52%)
create mode 100644
ratis-test/src/test/java/org/apache/ratis/datastream/TestNettyDataStreamWithMock.java
copy
ratis-common/src/main/java/org/apache/ratis/datastream/DataStreamFactory.java
=>
ratis-test/src/test/java/org/apache/ratis/datastream/TestNettyDataStreamWithNettyCluster.java
(71%)
rename
ratis-test/src/test/java/org/apache/ratis/grpc/{TestStreamApiWithGrpc.java =>
TestMessageStreamApiWithGrpc.java} (86%)
copy
ratis-test/src/test/java/org/apache/ratis/grpc/{TestRaftReconfigurationWithGrpc.java
=> TestPreAppendLeaderStepDownWithGrpc.java} (83%)
copy
ratis-test/src/test/java/org/apache/ratis/grpc/{TestRaftAsyncWithGrpc.java =>
TestServerPauseResumeWithGrpc.java} (84%)
copy
ratis-test/src/test/java/org/apache/ratis/netty/{TestRetryCacheWithNettyRpc.java
=> TestPreAppendLeaderStepDownWithNetty.java} (83%)
copy
ratis-test/src/test/java/org/apache/ratis/netty/{TestRetryCacheWithNettyRpc.java
=> TestServerPauseResumeWithNetty.java} (84%)
create mode 100644
ratis-test/src/test/java/org/apache/ratis/protocol/TestRoutingTable.java
create mode 100644
ratis-test/src/test/java/org/apache/ratis/server/impl/TestPeerConfiguration.java
copy
ratis-test/src/test/java/org/apache/ratis/server/simulation/{TestRaftReconfigurationWithSimulatedRpc.java
=> TestPreAppendLeaderStepDownWithSimulatedRpc.java} (83%)
copy
ratis-test/src/test/java/org/apache/ratis/server/simulation/{TestRetryCacheWithSimulatedRpc.java
=> TestRatisServerMetricsWithSimulatedRpc.java} (73%)
copy
ratis-test/src/test/java/org/apache/ratis/server/simulation/{TestLogAppenderWithSimulatedRpc.java
=> TestServerPauseResumeWithSimulatedRpc.java} (83%)
copy ratis-replicated-map/src/test/resources/log4j.properties =>
ratis-test/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
(64%)