Skip to content

yizhuoliang/gopaxos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

bc80fda · Feb 28, 2024
Mar 27, 2023
Feb 15, 2023
Mar 27, 2023
Mar 26, 2023
Mar 27, 2023
Feb 17, 2023
Mar 28, 2023
Mar 27, 2023
Feb 16, 2023
Mar 1, 2023
Mar 27, 2023
Oct 21, 2022
Dec 29, 2022
Nov 20, 2022
Feb 26, 2023
Feb 26, 2023
Mar 27, 2023
Mar 27, 2023
Mar 24, 2023
Mar 27, 2023
Feb 28, 2024
Oct 21, 2022
Nov 20, 2022
Mar 1, 2023

Repository files navigation

Implementing multi-paxos with gRPC framework

Another system we built - ZooKeeper Atomic Broadcast written in Go

System Structure

structure.png

Client/main.go

  • send operations
  • periodically check performed operations

Replica/main.go

  • receive client operations, assign slot number
  • send proposal to leaders
  • peridoically check decided proposals
  • maintain sequencial consistency of how operations are performed

Leader/main.go

  • receive replica proposals, assign ballot number
  • send Commanders to ask for acceptor quorum consent
  • use Scout to maintain the invariant that only one active leader at a time
  • update ballot number when the previous active leader is down
  • avoid unstable leadership by sending and receiving hearbeats

system testing setup and port assginment

  • 2 clients (50051, 50052)
  • 2 replicas (50053, 50054)
  • 2 leaders (50055, 50056)
  • 3 acceptors (50057, 50058, 50059)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published