Skip to content

Specifying and Verfying concensus algorithms in PolarDB using TLA+

License

Notifications You must be signed in to change notification settings

googlc/Parallel-Raft-tla

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parallel-Raft-tla

Overview

This project is devoted to provide formal specification and verification using TLA+ for the Parallel-Raft concensus protocol proposed in PolarFS:An ultra-low latency and failure resilient distributed file system for shared storage cloud database.

The highlight of Parallel-Raft is that it enables "out-of-order executions". To better understand the relationship between Parallel-Raft and existing concensus algorithms(i.e. Raft,Multi-Paxos), we proposed ParallelRaft-SE(SE stands for "Sequential Execution"). Parallel-Raft is the same as Parallel-Raft except that it prohibits "out-of-order executions". In the way, we established the refinement mapping from ParallelRaft-SE to Multi-Paxos.

We discovered that Parallel-Raft, according to its brief description, neglects the so-called "ghost log entries" phenomenon, which may violate the consistency among state machines. Therefore, based on ParallelRaft-SE, we proposed ParallelRaft-CE(CE stands for "Concurrent Executions"). ParallelRaft-CE avoids the "ghost log entries" by limiting parallelism in the commmitment of log entries.

We provided the formal specifications of MultiPaxos,ParallelRaft-SE and ParallelRaft-CE and verified the refinement mapping from ParallelRaft-SE to Multi-Paxos and the correctness of ParallelRaft-CE using the TLC model checker.

Papaers

See paper-parallelraft

How to Run

Create and run TLA models in the usual way

TLA+ Modules

MultiPaxos.tla: specification of Multi-Paoxs

ParallelRaftSE: specification of ParallelRaft-SE

ParallelRaftCE: specification of ParallelRaft-CE

About

Specifying and Verfying concensus algorithms in PolarDB using TLA+

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TLA 100.0%