Tian Jiang created IOTDB-900:
--------------------------------
Summary: [Distributed] Tree-structured log forwarding within a
raft group.
Key: IOTDB-900
URL: https://issues.apache.org/jira/browse/IOTDB-900
Project: Apache IoTDB
Issue Type: Improvement
Components: Core/Cluster
Reporter: Tian Jiang
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.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)