All Projects → hellocodeM → raft-rocks

hellocodeM / raft-rocks

Licence: MIT License
A simple database based on raft and rocksdb

Programming Languages

go
31211 projects - #10 most used programming language
Protocol Buffer
295 projects
shell
77523 projects

Projects that are alternatives of or similar to raft-rocks

Tikv
Distributed transactional key-value database, originally created to complement TiDB
Stars: ✭ 10,403 (+27276.32%)
Mutual labels:  rocksdb, key-value, raft, consensus
raft-badger
Badger-based backend for Hashicorp's raft package
Stars: ✭ 27 (-28.95%)
Mutual labels:  key-value, raft, consensus
Etcd
Distributed reliable key-value store for the most critical data of a distributed system
Stars: ✭ 38,238 (+100526.32%)
Mutual labels:  key-value, raft, consensus
Verdi Raft
An implementation of the Raft distributed consensus protocol, verified in Coq using the Verdi framework
Stars: ✭ 143 (+276.32%)
Mutual labels:  key-value, raft, consensus
Hraftd
A reference use of Hashicorp's Raft implementation
Stars: ✭ 732 (+1826.32%)
Mutual labels:  key-value, raft, consensus
Zanredisdb
Yet another distributed kvstore support redis data and index. moved to: https://github.com/youzan/ZanRedisDB
Stars: ✭ 64 (+68.42%)
Mutual labels:  rocksdb, key-value, raft
Vasto
A distributed key-value store. On Disk. Able to grow or shrink without service interruption.
Stars: ✭ 206 (+442.11%)
Mutual labels:  rocksdb, key-value
openraft
rust raft with improvements
Stars: ✭ 826 (+2073.68%)
Mutual labels:  raft, consensus
beryldb
BerylDB is a fully modular data structure data manager that can be used to store data as key-value entries. The server allows channel subscription and is optimized to be used as a cache repository. Supported structures include lists, sets, multimaps, and keys.
Stars: ✭ 201 (+428.95%)
Mutual labels:  rocksdb, key-value
database-engine
LSM-Tree Key-Value Store based on RocksDB
Stars: ✭ 47 (+23.68%)
Mutual labels:  rocksdb, key-value
Tidis
Distributed transactional NoSQL database, Redis protocol compatible using tikv as backend
Stars: ✭ 1,182 (+3010.53%)
Mutual labels:  rocksdb, raft
Raft-Paxos-Sample
MIT6.824实现分布式一致性算法——Raft&Paxos
Stars: ✭ 37 (-2.63%)
Mutual labels:  raft, consensus
Kites
🪁 A consistency, partition tolerance completed distributed KV store, implementation of the Raft distributed consensus protocol and Kotlin.
Stars: ✭ 41 (+7.89%)
Mutual labels:  rocksdb, raft
Sharkstore
distributed key - value persisted storage system
Stars: ✭ 165 (+334.21%)
Mutual labels:  rocksdb, raft
Ardb
A redis protocol compatible nosql, it support multiple storage engines as backend like Google's LevelDB, Facebook's RocksDB, OpenLDAP's LMDB, PerconaFT, WiredTiger, ForestDB.
Stars: ✭ 1,707 (+4392.11%)
Mutual labels:  rocksdb, key-value
raftor
Distributed chat system built with rust
Stars: ✭ 31 (-18.42%)
Mutual labels:  raft, consensus
quitsies
A persisted drop-in replacement for Memcached, respecting the rules of quitsies.
Stars: ✭ 16 (-57.89%)
Mutual labels:  rocksdb, key-value
huffleraft
Replicated key-value store driven by the raft consensus protocol 🚵
Stars: ✭ 32 (-15.79%)
Mutual labels:  key-value, raft
distkv
Distributed KV Storage System based on Raft and RocksDB, can be use to store small files, like images.
Stars: ✭ 50 (+31.58%)
Mutual labels:  rocksdb, raft
raft
raft is a golang library that provides a simple, clean, and idiomatic implementation of the Raft consensus protocol
Stars: ✭ 35 (-7.89%)
Mutual labels:  raft, consensus

raft-rocks

A simple key/value store based on raft and rocksdb

Motivation

It's my graduation project, about Raft consensus algorithm. Originally, I wrote these code for MIT 6.824 's labraft, but it doesn't has real storage or rpc. So I completed it with grpc and RocksDB, which makes it a real High-Available Key/Value storage.

Implementation

As through, the design and implementation is too Naive, there's tons of bugs in code.

In MIT6.824, there's many unit-tests, the origin code base could PASS ALL those tests, but after migration to this project and some modification, I could make sure that these code could not pass tests in 6.824.

Design

  • Raft: follow the Raft Consensus paper, implements leader election, log replication, without snapshot or configuration change.
  • KV: use RocksDB to store key/value data
  • WAL: use RocksDB to store log entry, in <index,command> way
  • IDL: protobuf
  • RPC: grpc
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].