komuw / kshaka

Kshaka is a Go implementation of the CASPaxos consensus protocol.
MIT License
23 stars 2 forks source link

how to use #17

Open vtolstov opened 5 years ago

vtolstov commented 5 years ago

i want to use this package for my use case: i'm try to write key/val storage that uses ceph crushmap to determine on which nodes data placed and do data replication. i need to know when node down to disable it in crushmap., so i think about caspaxos to solve this issue by replicate node state to all cluster members. Also i need to transfer new crushmap (if i add or delete node) to all nodes consistently. What do you think?

komuw commented 5 years ago

Hi,

this package is very immature and I haven't been working on it for sometime now. I do not think there is a mature implementation of CASpaxos in Golang that is available in open source.

I do not know about your exact use case, but if I was to build a storage system that requires consensus; I would use the raft protocol. This is because there are some very mature implementation of that in Go; eg;

  1. https://github.com/hashicorp/raft
  2. https://github.com/etcd-io/etcd/tree/master/raft