/Chained-KV

A chained key-value storage system (KVS) built using Go

Primary LanguageGoGNU General Public License v3.0GPL-3.0


Logo

Chained Key-Value Storage System

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).

Logo

Table of Contents

Assignment Spec 🎯

For a PDF containing the assignment's specifications, please view assignment-spec.pdf.

Technology Stack 🛠️

Go

Prerequisites 🍪

You should have GoLand, Go v1.18.1 and Git installed on your PC.

Setup 🔧

  1. Clone the repo using:

      git clone https://github.com/sassansh/Chained-KV.git
  2. Open the project in GoLand.

  3. First, start the tracing server by running:

      go run cmd/tracing-server/main.go
  4. Next, start the Coord by running:

      go run cmd/coord/main.go
  5. 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
  6. Lastly, start the Client which will make multiple Push and Get reqeusts by running:

      go run cmd/client/main.go

Team 😁

Sassan Shokoohi - GitHub - LinkedIn - Personal Website

Jonathan Hirsch

Naithan Bosse