A chained key-value storage system (KVS) with strong data consistency guarantees and support for multiple servers and clients. Built as a group assignment for UBC's CPSC 416 (Distributed Systems).
For a PDF containing the assignment's specifications, please view assignment-spec.pdf.
You should have GoLand, Go v1.18.1 and Git installed on your PC.
-
Clone the repo using:
git clone https://github.com/sassansh/Chained-KV.git
-
Open the project in GoLand.
-
First, start the tracing server by running:
go run cmd/tracing-server/main.go
-
Next, start the Coord by running:
go run cmd/coord/main.go
-
Next, start Servers 1-5 by running:
go run cmd/server/main.go go run cmd/server/main2.go go run cmd/server/main3.go go run cmd/server/main4.go go run cmd/server/main5.go
-
Lastly, start the Client which will make multiple Push and Get reqeusts by running:
go run cmd/client/main.go
Sassan Shokoohi - GitHub - LinkedIn - Personal Website
Jonathan Hirsch
Naithan Bosse