Skip to content

csc462proj/462_Final_Project_Phase2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

CSC462 Final Project (Phase2)

How to execute?

run the given test file directly

abstract:

Among the three topics given in Phase 2, we choose the third one, which is implementing a Sharded Key/Value Service base on the given codebase in Go. In the Project Phase 1 we have done, we used hashicorp /raft, db_badger, and other packages to implement lightweight, fast, easy-to-use raft-based key-value storage system. However, in practical application, when the data grows to a certain extent, if we still use a single cluster to serve all the data, a large number of accesses will be squeezed on the leader, increasing the pressure on cluster and extending the response time to requirements. Dividing different data into different groups by database sharding is a good way to solve the problem. Each subset of the database that mutually disjoints each other is called a Shard, and the complete database is made up by the database subsets together. As time goes by, some new groups are added or some existing groups are removed, the Shards need to migrate between the different groups. In the Phase 2, we will base on the raft-based key-value Storage system implemented by calling packages in phase 1 and the raft and fault-tolerant Key/Value service implemented in the labs to implement the Sharded key/value Service. Finally, we will get a relatively efficient, optimized distributed database. In the future, we may try to set up the distributed database onto the internet and connect to the multiple actual servers.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published