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

Support linearizable read from followers (Read Index)

    XMLWordPrintableJSON

Details

    Description

      Raft algorithm not only allows linearizable read through Read Index or Lease Read, but also allows linearizable read on the follower nodes, which can increase the read throughput linearly with the number of nodes. Algorithm specific processes can refer to Raft thesis in section 6.4

      Our project, Apache IoTDB, is trying to build our high availability module using Ratis. We want Ratis to support linearizable follower read so that we can mask the concept of replicas for upper layers, that is, reading the latest data at any node.

      In our survey, sofa-jraft, etcd, tikv-rs and other famous consensus algorithms libraries have supported linearizable follower read. As the only consensus algorithm library under the Apache Foundation, we expect Ratis to support this feature as well, and I'm happy to participate in further discussions and development.

      Attachments

        1. 700_review.patch
          31 kB
          Tsz-wo Sze
        2. Proposal-Support leader readIndex.pdf
          59 kB
          Song Ziyang
        3. image-2022-04-07-12-28-43-122.png
          31 kB
          Xinyu Tan
        4. image-2022-04-07-12-27-45-677.png
          90 kB
          Xinyu Tan
        5. image-2022-04-03-23-42-58-922.png
          305 kB
          Xinyu Tan

        Issue Links

          Activity

            People

              William Song Song Ziyang
              tanxinyu Xinyu Tan
              Votes:
              0 Vote for this issue
              Watchers:
              8 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 - 29.5h
                  29.5h