Skip to content

A Naive attempt to implement Consensus using Raft on a key-value store

Notifications You must be signed in to change notification settings

sauravfouzdar/kvdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kvdb

A Naive attempt to implement Consensus using Raft on a in-memory key-value pair distributed database.

Start the project

go run cmd/kvdbserver/main.go -id node1 -address :8000 -peers :8002,:8003


Run tests

go test ./...

To do list

  • Write unit test for all internal modules
  • Write data to disk(lowpriority)
  • Concurrent read/write, test with multiple clients etc..
  • Update readme
  • API client
  • check for compatibility with 32bit systems(data types etc.)

Project Structure

   kvdb/
   ├── cmd/
   │   └── kvdbserver/
   │       └── main.go
   ├── internal/
   │   ├── storage/
   │   │   └── storage.go
   │   ├── replication/
   │   │   └── replication.go
   │   ├── partitioning/
   │   │   └── partitioning.go
   │   ├── consensus/
   │   │   └── raft.go
   │   ├── loadbalancer/
   │   │   └── loadbalancer.go
   │   └── node/
   │       └── node.go
   ├── pkg/
   │   └── client/
   │       └── client.go
   └── go.mod

References

About

A Naive attempt to implement Consensus using Raft on a key-value store

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages