Uploaded image for project: 'Ratis'
  1. Ratis
  2. RATIS-1181

Define public APIs for StateMachine implementations

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.0.0
    • server, StateMachine
    • None

    Description

      StateMachine implementations such as Ozone need to access server methods such as RaftServerImpl.isLeader()/isLeaderReady(). We should define public APIs.

      Attachments

        Issue Links

          1.
          Move RaftServerProxy/RaftServerImpl LOG to RaftServer Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 20m
          2.
          Add getId() and getPeer() to RaftServer/RaftServer.Division Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h 20m
          3.
          Move RaftServerMetrics to org.apache.ratis.server.metrics Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 40m
          4.
          Avoid directly using RaftServerProxy in JvmPauseMonitor Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 20m
          5.
          Avoid directly using RaftServerImpl in LeaderElectionMetrics Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 20m
          6.
          Change MiniRaftCluster.getLeader() to return RaftServer.Division Sub-task Resolved Tsz-wo Sze  
          7.
          Change other MiniRaftCluster methods to return RaftServer.Division Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 40m
          8.
          Remove the abstract newRaftServer method in MiniRaftCluster Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 20m
          9.
          Define an interface for FollowerInfo Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h
          10.
          Add a public API to get server states. Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 40m
          11.
          Add getRaftLog() to RaftServer.Division Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h 40m
          12.
          Add getRoleInfoProto() and other methods to DivisionInfo Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 40m
          13.
          Change RaftServerProxy/RaftServerImpl to package private Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 20m
          14.
          Refactor LogAppender.SnapshotRequestIter Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h
          15.
          Change LogAppender to use RaftServer.Division and LeaderState Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 20m
          16.
          Separate LogAppender interface from the implementation Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h 40m
          17.
          Expose RetryCache Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 40m
          18.
          Separate the default LogAppender implementation from LogAppenderBase Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 0.5h
          19.
          Define an interface for RaftConfiguration Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h
          20.
          Define a CallId class Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 20m
          21.
          Remove RaftServerConstants Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 20m
          22.
          RaftServerRpcWithProxy constructor and the abstract impl methods should be protected Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h 10m
          23.
          Move out the LogEntryProto methods from ServerProtoUtils Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 40m
          24.
          Move the StateMachineData methods from ServerProtoUtils to LogProtoUtils Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 20m
          25.
          Move out the leader only methods from ServerProtoUtils Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 20m
          26.
          Move out the string method from ServerProtoUtils Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 20m
          27.
          Move the TermIndex implementation to TermIndex Sub-task Resolved Tsz-wo Sze

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 40m

          Activity

            People

              szetszwo Tsz-wo Sze
              szetszwo Tsz-wo Sze
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 17h 40m
                  17h 40m