Hi dev, Just went through the change list between 2.5.1 and 3.0.0 as follows. Please help me check the list to see if anything is missing out or mistakenly presented. I’ll use a summarized version of this for Announcements in user mailing list and the Ratis website:
Change list of ratis 3.0.0 In total, there are roughly 100 commits diffing from 2.5.1 # Incompatible Changes [RATIS-1688] Make ratis-metrics Pluggable [RATIS-1569] Move the asyncRpcApi.sendForward(..) call to the client side. # New Features [RATIS-1636] Support re-config ratis properties [RATIS-1860] Add ratis-shell cmd to generate a new raft-meta.conf when moving peer to new location [RATIS-1864] Support leader lease [RATIS-1874] Support notifyLeaderReady hook in StateMachine [RATIS-1862] Add parameter to control snapshot taking when stop [RATIS-1882] Support read-after-write consistency [RATIS-1897] Make TransactionContext available in DataApi.write [RATIS-1930] Add a conf for enable/disable majority-add. # Improvements and Bug Fixes ## Raft Log Cache [RATIS-1890] SegmentedRaftLogCache#shouldEvict should only iterate over closed segments once [RATIS-1893] Start a daemon to checkAndEvictCache ## JVMPause/GC detection [RATIS-1867] Uniformly manage the timeout parameters for detecting gc [RATIS-1877] In JvmPauseMonitor, sleepTime should not be larger than sleepDeviationThreshold [RATIS-1918] Introduces parameters that separately control the shutdown of RaftServerProxy by JVMPauseMonitor ## AppendEntries [RATIS-1804] Change default appending - outstanding max configuration [RATIS-1836] Reduce retry frequency by leader on failure path for appendEntry [RATIS-1883] NextIndex should be larger than MatchIndex [RATIS-1876] NPE in GrpcLogAppender.resetClient [RATIS-1886] AppendLog sleep fixed time cause significant drop in write throughput [RATIS-1909] Fix Decreasing Next Index When GrpcLogAppender Reset Client [RATIS-1919] NPE in AppendLogResponseHandler [RATIS-1920] NPE in AppendLogResponseHandler [RATIS-1928] Join the LogAppenders when closing the server ## Streaming [RATIS-1847] Stream has memory leak [RATIS-1850] When the stream server channelInactive, cleanup the request. [RATIS-1853] When the stream server channelInactive, all requests in the channel. [RATIS-1880] Optimize Stream client&server side channel pipeline Create [RATIS-1913] Assert that the primary peers in DataStreamClient and RoutingTable are equal ## Snapshoting [RATIS-1841], Fixed bug where cluster restart failed to transfer snapshot [RATIS-1902] The snapshot index is set incorrectly in InstallSnapshotReplyProto ## Netty [RATIS-1868] Handling Netty back pressure when streaming ratis log [RATIS-1898] Netty to should use EpollEventLoopGroup by default [RATIS-1899] Use EpollEventLoopGroup for Netty Proxies ## Read Index RATIS-1856, RATIS-1861, RATIS-1872, RATIS-1888, RATIS-1927 ## RaftStorage Auto Format RATIS-1694, RATIS-1871 [RATIS-761] Handle writeStateMachineData failure in leader [RATIS-872] Invalidate replied calls in retry cache [RATIS-1858] Follower keeps logging first election timeout [RATIS-1887] Gap between segement log [RATIS-1873] IllegalStateException: retry cache entry should be pending [RATIS-1884] Fix retry cache warning condition [RATIS-1910] Deduplicate RaftGroupId and ClientId [RATIS-1912] Fix infinity election when perform membership change. [RATIS-1914] Bouncy Castle For Java LDAP injection vulnerability [RATIS-1921] Shared worker group in WorkerGroupGetter should be closed [RATIS-1923] Detect client retries from a long time ago # Usability & Code Quality [RATIS-1829] Support magic links to PR and JIRA in IDEA [RATIS-1878] checkstyle fails with UnsupportedClassVersionError [Documentations/Examples] RATIS-1842, RATIS-1843, RATIS-1911 , RATIS-1901, RATIS-1908 [Test Coverage] RATIS-1828, RATIS-1830, RATIS-1832, RATIS-1833 [Code Smells & Refactor] RATIS-1855, RATIS-1852, RATIS-1905, RATIS-1848, RATIS-1849, RATIS-1854, RATIS-1881, RATIS-1892, RATIS-1903, RATIS-1916, RATIS-1904, RATIS-1917, RATIS-1924 William > 2023年11月10日 16:59,William Song <[email protected]> 写道: > > Hi community, > > I’m calling a vote For Apache Ratis Release 3.0.0 rc0. > > The git tag to be vote upon: > https://github.com/apache/ratis/tree/ratis-3.0.0-rc0 > > The git commit hash: > 238e2ec51cd780df6c214e3d0c20ce4de439fced > > The source and binary tarballs can be found at: > https://dist.apache.org/repos/dist/dev/ratis/3.0.0/rc0 > > Fingerprint of the GPG key release artifacts are signed with: > DCE2 C33D 41C6 2578 969D BAFE 37D6 ECF8 4E78 BC92 > > My public key to verify signatures can be found in: > https://dist.apache.org/repos/dist/dev/ratis/KEYS > > Maven artifacts are staged at: > https://repository.apache.org/content/repositories/orgapacheratis-1142 > > This vote will remain open for at least 72 hours. > Please vote on releasing this ratis-3.0.0-rc0. Thanks in advance. > > [ ] +1 approve > [ ] 0 no opinion > [ ] -1 disapprove (and reason why) > > Starting with my +1(binding) > - Verified checksums, signatures and git hash. > - Checked LICENSE and NOTICE. > - Compared the files in src tarball with the files at the given git tag (all > matches excpet for ratis-experiments). > - Built from source. > - Ran regular Ratis CI. [1] > - Ran ratis examples successfully. > > [1] https://github.com/apache/ratis/actions/runs/6812884699
