xiaonanln / lockd

Distributed Locking Service -- under development

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

lockd

Distributed Locking Service

Raft and replicated state machines

Lockd uses Raft to implement replicated state machines. The locking service is a state-machine that handle client inputs in a determined way. So, 3 or 5 locking service instances consist a cluster to offer high availability.

Implementing Raft Features

Most of Raft features will be implemented.

  • Basic Raft Algorithm

    • Leader election
    • Log replication
    • Safety
    • Persisted state (won't have)
    • Server restarts
    • Leader transfer extension
  • Cluster membership changes

  • Log compaction

    • Memory-Based Snapshots (partly)
  • Client interaction

    • Finding the cluster
    • Routing requests to the leader
    • Implementing linearizable semantics
    • Processing read-only queries more efficiently

Raft-tester

The raft-tester is used to test the correctness in simulation. Raft-tester runs multiple Raft Clusters to test the correctness of Raft algorhtm with different values of quorum.

About

Distributed Locking Service -- under development

License:Apache License 2.0


Languages

Language:Go 99.9%Language:Batchfile 0.1%