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%)

Reply via email to