hwding / rafty-kv

(Obsolete)A local running, process-distributed KV store for learning purposes based on replica state machine(RSM) cluster which implements raft consensus algorithm in a fully asynchronous way.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

rafty-kv


A local running, process-distributed KV store for learning purposes based on replica state machine(RSM) cluster which implements raft consensus algorithm in a fully asynchronous way.

Introduction

Implementation

Using netty's event-driven udp for async communication among nodes inside the cluster.

Related readings

Progress

Finished

  • Leader election/reelection (without restriction)
  • Log replication
  • Persisted states & recovery

Ongoing

  • Safety
  • Client interaction
  • Log compaction

Todo

  • Cluster membership changes
  • Leadership transfer extension

How-To

Node start up argument

[current node port] [other node ports ...]

e.g.
(node 0) 8080 8081 8082 8083 8084
(node 1) 8081 8080 8082 8083 8084
(node 2) 8082 8080 8081 8083 8084
(node 3) 8083 8080 8081 8082 8084
(node 4) 8084 8080 8081 8082 8083

Cluster/Node global configuration

Configuration will be auto loaded from resource path.

Specifying conf file in startup argument is currently not supported, for that using different configurations among nodes is not suggested.

Default conf: rafty-node.properties

About

(Obsolete)A local running, process-distributed KV store for learning purposes based on replica state machine(RSM) cluster which implements raft consensus algorithm in a fully asynchronous way.

License:MIT License


Languages

Language:Java 100.0%