Hi Tsz-Wo, Thanks very much for the detailed change list! Let me update the website and send out announcements according to the change list.
William > 2023年11月21日 02:46,Tsz Wo Sze <[email protected]> 写道: > > (Resend the change list below.) > > > Change list of ratis 3.0.0 > In total, there are roughly 100 commits diffing from 2.5.1 > > # Incompatible Changes > > - RaftStorage Auto-Format > - RATIS-1677. Do not auto format RaftStorage in RECOVER. (#718) > - RATIS-1694. Fix the compatibility issue of RATIS-1677. (#731) > - RATIS-1871. Auto format RaftStorage when there is only one > directory configured. (#903) > > - Pluggable Ratis-Metrics (RATIS-1688) > - RATIS-1689. Remove the use of the thirdparty Gauge. (#728) > - RATIS-1692. Remove the use of the thirdparty Counter. (#732) > - RATIS-1693. Remove the use of the thirdparty Timer. (#734) > - RATIS-1703. Move MetricsReporting and JvmMetrics to impl. (#741) > - RATIS-1704. Fix SuppressWarnings("VisibilityModifier") in > RatisMetrics. (#742) > - RATIS-1710. Refactor metrics api and implementation to separated > modules. (#749) > - RATIS-1712. Add a dropwizard 3 implementation of ratis-metrics-api. (#751) > - RATIS-1391. Update library dropwizard.metrics version to 4.x (#632) > - RATIS-1601. Use the shaded dropwizard metrics and remove the > dependency (#671) > > - Streaming Protocol Change > - RATIS-1569. Move the asyncRpcApi.sendForward(..) call to the > client side. (#635) > > # New Features > - Leader Lease (RATIS-1864) > - RATIS-1865. Add leader lease bound ratio configuration (#897) > - RATIS-1866. Maintain leader lease after AppendEntries (#898) > - RATIS-1894. Implement ReadOnly based on leader lease (#925) > - RATIS-1882. Support read-after-write consistency (#913) > - StateMachine API > - RATIS-1874. Add notifyLeaderReady function in IStateMachine (#906) > - RATIS-1897. Make TransactionContext available in DataApi.write(..). (#930) > - New Configuration Properties > - RATIS-1862. Add the parameter whether to take Snapshot when > stopping to adapt to different services (#896) > - RATIS-1930. Add a conf for enable/disable majority-add. (#961) > - RATIS-1918. Introduces parameters that separately control the > shutdown of RaftServerProxy by JVMPauseMonitor. (#950) > - RATIS-1636. Support re-config ratis properties (#800) > - RATIS-1860. Add ratis-shell cmd to generate a new raft-meta.conf. (#901) > > # Improvements & Bug Fixes > > ## Streaming & Netty > - RATIS-1550. Rewrite stream client reply queue. (#740) > - RATIS-1847. Stream has memory leak. (#884) > - RATIS-1850. When the stream server side receives a disconnection, > memory is cleared (#887) > - RATIS-1853. When the stream server channelInactive, all requests in > the channel. (#889) > - RATIS-1880. Optimize Stream client&server side channel pipeline Create > (#910) > - RATIS-1898. Netty should use EpollEventLoopGroup by default (#931) > - RATIS-1899. Use EpollEventLoopGroup for Netty Proxies (#932) > - RATIS-1913. Assert that the primary peers in DataStreamClient and > RoutingTable are equal (#945) > - RATIS-1921. Shared worker group in WorkerGroupGetter should be closed. > (#955) > - RATIS-1923. Netty: atomic operations require side-effect-free > functions. (#956) > > ## Read Index > - RATIS-1856. Notify apply index change of all RaftLog entries (#893) > - RATIS-1895. IllegalStateException: Failed to updateIncreasingly for > nextIndex. (#926) > - RATIS-1861. NullPointerException in readAsync when Ratis leader is > changing (#895) > - RATIS-1888. Handle exception of readIndexAsync in gRPC readIndex impl (#920) > - RATIS-1927. Use double check to eliminate data race in ReadRequests. (#958) > > ## RaftServer > - RATIS-1924. Increase the default of raft.server.log.segment.size.max. (#957) > - RATIS-1892. Unify the lifetime of the RaftServerProxy thread pool (#923) > - RATIS-1889. NoSuchMethodError: > RaftServerMetricsImpl.addNumPendingRequestsGauge #922 (#922) > - RATIS-761. Handle writeStateMachineData failure in leader. (#927) > - RATIS-1902. The snapshot index is set incorrectly in > InstallSnapshotReplyProto. (#933) > - RATIS-1912. Fix infinity election when perform membership change. (#954) > - RATIS-1858. Follower keeps logging first election timeout. (#894) > > ## AppendEntries & GrpcLogAppender > - RATIS-1804. Change the default number of outstanding append entries. (#838) > - RATIS-1883. Next Index should be always larger than Match Index in > GrpcLogAppender (#914) > - RATIS-1886. AppendLog sleep fixed time cause significant drop in > write throughput. (#929) > - RATIS-1909. Fix Decreasing Next Index When GrpcLogAppender Reset > Client. (#939) > - RATIS-1920. NPE in AppendLogResponseHandler. (#952) > - RATIS-1928. Join the LogAppenders when closing the server. (#959) > - RATIS-1705. Fix metrics leak (#744) > > ## RaftLog & RaftLog Cache > - RATIS-1887. Gap between segement log (#919) > - RATIS-1890. SegmentedRaftLogCache#shouldEvict should only iterate > over closed segments once (#921) > - RATIS-1893. In SegmentedRaftLogCache, start a daemon thread to > checkAndEvictCache. (#924) > - RATIS-1884. Fix retry cache warning condition (#915) > - RATIS-872. Invalidate replied calls in retry cache. (#942) > - RATIS-1916. OrderAsync does not call handReply. (#948) > > ## Common Utilities > - RATIS-1932. Create zero-copy Marshaller. (#962) > - RATIS-1910. Deduplicate RaftGroupId and ClientId. (#940) > - RATIS-1867. To uniformly manage the timeout parameters for detecting > gc. (#899) > > # Code Cleanup & Refactoring > - RATIS-1870. Refactor hasMajority code during configuration changes. (#902) > - RATIS-1848. Simplify PeerMap inheritance (#885) > - RATIS-1849. Remove unused getRaftClient (#886) > - RATIS-1854. Remove useless error logs when closing the ratisclient > writing thread (#890) > - RATIS-1904. Refactor RaftServerImpl.submitClientRequestAsync(..). (#935) > > # Code Improvement > - RATIS-1852. Fix trivial SonarLint complains (#888) > - RATIS-1855. Fix some sonar code smell and bugs in ratis-server (#892) > - RATIS-1903. Fix parameter number warning in RaftClientRequest. (#934) > - RATIS-1905. Fix some sonar lint complains (#936) > - RATIS-1915. Do not use FileInputStream/FileOutputStream in > ratis-common. (#947) > - RATIS-1917. Print Epoll.unavailabilityCause() only once. (#949) > - RATIS-1919. Fix some sonar code smell and bugs in > ratis-client/common/grpc (#951) > > # Documentations & Examples > - RATIS-1842. Fix typo of "configuraions.md" name in ratis-docs project (#880) > - RATIS-1843. Add existing markdown documents to site.xml in the > ratis-docs project (#881) > - RATIS-1901. Update Counter example to benchmark performance. (#953) > - RATIS-1908. Keep configurations doc updated (#938) > - RATIS-1911. Add MembershipManager example. (#941) > > # Tests > - RATIS-1828. Enable TestServerRestartWithNetty (#869) > - RATIS-1830. Intermittent failure in TestRetryPolicy (#871) > - RATIS-1832. Intermittent failure in TestStreamObserverWithTimeout (#873) > - RATIS-1833. Intermittent failure in > TestRaftStateMachineExceptionWithSimulatedRpc (#874) > - RATIS-1599. Fix test failure from RATIS-1569. (#659) > > # Build & Maven > - RATIS-1829. Support magic links to PR and JIRA in IDEA (#870) > - RATIS-1878. checkstyle fails with UnsupportedClassVersionError. (#909) > - RATIS-1906. Bump copyright year to 2023 (#937) > - RATIS-1914. Bouncy Castle For Java LDAP injection vulnerability. (#944) > - RATIS-1929. Bump ratis-thirdparty version to 1.0.5 (#960)
