Thanks Tsz-Wo for preparing the proposed changes. Besides linearizable read and Ozone certificate improvements, it is worth noting that there is also a transfer leadership improvement included: 1. Transferring leader to a peer with same priority is now supported. 2. The transfer command in ratis-shell will minimize priority changes as possible.
Since there are several new features introduced, let's call the new version 2.5.0? Best, Kaijie ---- On Mon, 06 Mar 2023 04:04:35 +0800 Tsz Wo Sze wrote --- > Hi dev, > > Just have checked the JIRAs including > - Xinyu's list, > - Yaolong's list (linearizable read), > - other bug fixes and improvements. > > There are 51 new commits compared to branch-2. > See https://github.com/apache/ratis/tree/branch-2_readIndex and > the diff > https://github.com/apache/ratis/compare/branch-2...branch-2_readIndex > > Please check. Thanks. > > Tsz-Wo > ------ 51 commits > new f54754a04 RATIS-1643. Add heartbeat broadcast mechanism for leader > readIndex. (#730) > new 9270bb3ce RATIS-1697. > StateMachineUpdater.getStateMachineLastAppliedIndex should handle null. > (#736) > new b6468dbff RATIS-1696. Support linearizable read-only requests in > leader (#735) > new 22c6a036a RATIS-1701. Add new Server RPC: readIndex (#738) > new 3fcf38812 RATIS-1706. Move heartbeat listeners to LeaderState > (#743) > new 1375bdb9b RATIS-1715. Support linearizable read in AsyncApi. (#754) > new 242df11b0 RATIS-1716. Separate ReadException and > ReadIndexException for client retry (#758) > new bbadb4144 RATIS-1652. Fix NP_NULL_PARAM_DEREF in > DataStreamManagement (#763) > new bd8a12cf4 RATIS-1722. Fix the suppressed findbugs warnings in > SimpleStateMachineStorage. (#760) > new fd7a6f373 RATIS-1723. CounterStateMachine should update the latest > snapshot. (#765) > new c8f8145e1 RATIS-1728. Avoid org.apache.log4j imports. (#768) > new cc807fda9 RATIS-1733. Typo: fix misleading params names in > `RaftServerConfigKeys` (#771) > new da23510d8 RATIS-1732. Add configuration reference for RaftServer > (#770) > new 43d8f220f RATIS-1742. Remove slf4j-log4j12 test dependency from > ratis-common and ratis-server. (#781) > new 59eae1106 RATIS-1752. Clean md5 file created by old ratis version. > (#790) > new 99640255b RATIS-1750. Add snapshot section in dev guide (#788) > new 615a03853 RATIS-1744. NullPointerException causes RaftClient retry > failure. (#794) > new f58e2a5c5 RATIS-1751. Race condition between LeaderStateImpl & > ServerState. (#789) > new e489fd67c RATIS-1757: Missing some metrics for listener. (#796) > new 053a815d9 RATIS-1758. Add linearizable read in Counter example > (#797) > new 5fa608d4b RATIS-1759. Support client use linearizable read per > request (#798) > new 9628ae999 RATIS-1761. If LeaderStateImpl is not running, it should > not restart a LogAppender. (#799) > new 25552d6cd RATIS-1763. Purging logs in an ordered manner. (#801) > new d11663562 RATIS-1764. installSnapshot failed due to file already > exists (#802) > new 743f86a05 RATIS-1765. [GrpcLogAppender] Calculate streaming md5 > file-wise when installSnapshot (#803) > new 32a22a47c RATIS-1767. Initialize MatchIndex to > RaftLog.INVALID_LOG_INDEX. (#805) > new f8634e52a RATIS-1768. Fix stepDown command don't work issue (#806) > new db6944eac RATIS-1766. Add descriptions to metrics entries (#804) > new 960950795 RATIS-1772. Refactor the startLeaderElection code in > LeaderStateImpl. (#811) > new d3d7d6eab RATIS-1773. Fix readIndexHeartbeat using incorrct index > handle onAppendEntriesReply method (#810) > new 8908caf73 RATIS-1775. FollowerInfoImpl should not store RaftPeer. > (#812) > new b6e8c9e9d RATIS-1774. Change SenderList in LeaderStateImpl to > implement Iterable. (#813) > new 5d98c64a9 RATIS-1762. Support transfer leadership between nodes > with same priority (#807) > new e7f25ed5c RATIS-1778. Fix NPE in readIndexHeartbeats (#819) > new f6b5efc62 RATIS-1779. Refactor: Reduce nesting in > TransferLeadership (#820) > new 755399407 RATIS-1784. Ignore .vscode in source repo. (#822) > new e0b97879a RATIS-1783. MAX_OP_SIZE is not configurable on raft log > read. (#823) > new 54bcb7471 RATIS-1543. Log from GrpcLogAppender is confusing. (#821) > new 4efca7871 RATIS-1769. Avoid changing priorities in TransferCommand > unless necessary (#808) > new 1f54d4552 RATIS-1786. Reset the digester of the follower at the > beginning of each file transfer during a InstallSnapshot to avoid snapshot > transfer failure (#825) > new 2954754e4 RATIS-1785. Use SingleThreadExecutor to manage the > lifetime of single thread (#824) > new 3a3fafb96 RATIS-1788. Improve the JvmPauseMonitor log messages. > (#826) > new 15474faf5 RATIS-1791. Intermittent failure in > ServerRestartTests#testRestartFollower (#827) > new fd7ccbecb RATIS-1794. Intermittent failure in > PreAppendLeaderStepDownTest#testLeaderStepDown (#833) > new c1da37cb4 RATIS-1793. Enforce > raft.server.log.appender.wait-time.min. (#832) > new 4d0c7d0e9 RATIS-1799. Make shell scripts in binary package > executable (#835) > new dae9a5fbf RATIS-1801. Fix flaky test of > TestLogAppenderWithGrpc.testPendingLimits (#837) > new 03e99088f RATIS-1800. Remove unused ratis-shell properties (#836) > new 12e0c6e10 RATIS-1798. Make ratis-shell command respect > GENERIC_COMMAND_OPTIONS (#834) > new d1d13fe70 RATIS-1806. Further fix for > TestLogAppenderWithGrpc#testPendingLimits (#841) > new 6748ec853 RATIS-1805. Add doc about GENERIC_COMMAND_OPTIONS of > ratis-shell (#840) > ------ END > > On Wed, Mar 1, 2023 at 10:44 AM Tsz Wo Sze [email protected]> wrote: > > > Hi Attila, > > > > The list only contains bug fixes and performance improvements but not new > > features (e.g. linearizable read). Let me go through the JIRAs again to > > include linearizable read. > > > > Tsz-Wo > > > > On Wed, Mar 1, 2023 at 12:21 AM Attila Doroszlai [email protected]> > > wrote: > > > >> Hi Tsz-Wo, > >> > >> > Just have checked the commit list of the master branch. I suggest > >> > including the following 16 commits for bug fixes and improvements. I > >> have > >> > tried to cherry-pick them to branch-2; see > >> > https://github.com/apache/ratis/tree/branch-2_tmp > >> > >> Do you mean only these, or in addition to the ones already mentioned > >> in previous emails? (Some are present in both your list and the > >> previous ones, hence the question.) > >> > >> -Attila > >> > > >
