Uploaded image for project: 'Apache IoTDB'
  1. Apache IoTDB
  2. IOTDB-900

[Distributed] Tree-structured log forwarding within a raft group.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • None
    • None
    • Core/Cluster
    • None

    Description

      In a raft group, the leader takes the responsibility to replicate logs to its followers. When the number of replications is large, the network overhead of sending log replications to other nodes is significantly high, as the leader may need to send every follower a replication for each log. When there are N nodes in the group, the leader suffers N-1 times more network traffic compared with the stand-alone version.

      This could be relieved by adopting a tree-like forwarding schema. Taking N=3 for an example, the leader must send log replications to both followers, denoted as 1 ->

      {2, 3}

      . But we could let the followers send the logs to each other, making the procedure 1 -> 2 -> 3, so the network traffic in leader may reduce to half and even less when N becomes larger.

      The challenges are three folds: first, the leader must know whom to send the initial log replications, so the leader will receive agreements from the quorum the fastest; second, each follower must know whom they should further forward to so that no two nodes send replications to the same node, which wastes bandwidth; last, as some nodes do not receive requests directly from the leader, so when they accept the log, they must inform the leader properly so the leader will not perform meaningless catch-up.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              jt2594838 Tian Jiang
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated: