One of the Ways How to Make RIB Distributed
- 2. RAFT
▪ What is RAFT?
▪ Consensus algorithm
▪ Solves fundamental problem in fault-tolerant distributed
system
▪ Multiple servers agree on value
One of the Ways How to Make RIB Distributed
- 3. RAFT
▪ Why we chose RAFT?
▪ Understable version of Paxos
▪ Easy to implement
▪ The same fault-tolerance and performance guarantees
▪ Suitable for RINA environment and RPC
communication
▪ Already used in databases like InfluxDB
One of the Ways How to Make RIB Distributed
- 4. RAFT RPCs
▪ RequestVotes
▪ Send by Candidates during Leader election to gather
votes
▪ AppendEntries
▪ Sent by Leader for log replication
▪ Also sent by Leader as an HeartBeat to reset timers
One of the Ways How to Make RIB Distributed
- 5. Leader Election
▪ Based on the timer expiration
▪ Presumption that all nodes are equal
One of the Ways How to Make RIB Distributed
Follower
Timeout:
300ms
Follower
Timeout:
200ms
Follower
Timeout:
150ms
- 6. Leader Election
▪ Based on the timer expiration
▪ Presumption that every nodes are equal
One of the Ways How to Make RIB Distributed
Follower
Timeout:
300ms
Follower
Timeout:
200ms
Candidate
Timeout:
150ms
Vote for itself
Request vote Request vote
- 7. Leader Election
▪ Based on the timer expiration
▪ Presumption that every nodes are equal
One of the Ways How to Make RIB Distributed
Follower
Timeout:
300ms
Follower
Timeout:
200ms
Candidate
Timeout:
150ms
Grant votes Grant votes
Majority votes
- 8. Leader Election
▪ Based on the timer expiration
▪ Presumption that every nodes are equal
One of the Ways How to Make RIB Distributed
Follower
Timeout:
300ms
Follower
Timeout:
200ms
Leader
Timeout:
150ms
- 9. Log Replication
▪ Each client request is stored in the Leader’s log
▪ Leader replicate new log entries to the Followers
▪ Command
▪ Sent by the client to be executed
▪ Index
▪ Position identifier in the log
▪ Term Number
▪ Identification of the time of the command
One of the Ways How to Make RIB Distributed
- 10. Client Request
One of the Ways How to Make RIB Distributed
Follower
Timeout:
300ms
Follower
Timeout:
200ms
Leader
Timeout:
150ms
Client
Request
Response
- 11. RAFT RINA Approach
▪ Not possible to use current RAFT implementation
▪ RINA RPC commands as RAFT client commands
▪ RAFT Leader shared during Enrollment phase
▪ RIB
▪ RPC commands stored in RAFT log
One of the Ways How to Make RIB Distributed
- 12. RAFT module
▪ Current state of the Application Process
▪ RAFT provided as compound module within RIBDaemon
▪ Management of objects in RIB
▪ Replication and updates primarily using Management AE
One of the Ways How to Make RIB Distributed