Tian Jiang created IOTDB-1324:
---------------------------------

             Summary: [Distributed] Quorum selection when appending logs
                 Key: IOTDB-1324
                 URL: https://issues.apache.org/jira/browse/IOTDB-1324
             Project: Apache IoTDB
          Issue Type: Improvement
          Components: Core/Cluster
            Reporter: Tian Jiang


Raft logs contain raw data, which is not compressed, thus sending them may 
increase network bandwidth usage significantly. In the current implementation, 
a log is sent to *_all_* followers and the leader will wait for a positive 
response from any quorum before proceeding to commit. By choosing a quorum and 
only send logs to nodes in the selected quorum and only using snapshots (data 
files) to make other nodes catch up, network bandwidth can be saved as data 
files are highly compressed.

This is similar to the learner mechanism, but we do not have learners 
explicitly: the leader simply ignores nodes that are not in the selected quorum 
during log replication and uses snapshots to make them catch up when the 
snapshot is updated; as such nodes are still followers, they can be added into 
the quorum without any explicit state change.

The problems to be solved are 1. The leader should be able to know when the 
snapshot is updated, so it also knows went to make the non-quorum followers 
catch up; 2. Queries to the non-quorum nodes should be redirected if 
consistency is required, as the leader updates the nodes more lazily, the 
latency may be too long if the follower waits for the synchronization; 3. The 
leader should modify the quorum smartly in response to failures in the quorum,



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to