-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
hashring
Consistent hashing "hashring" implementation in golang (using the same algorithm as libketama) (by serialx)
This is the best open source implementation I've seen that does what you're asking about: https://github.com/lni/dragonboat
I use lightweight https://github.com/hashicorp/memberlist to build initial cluster skeleton (find out what are nodes constituting it)
What is commited to config group log is then base to spin out multi-group raft; I'm using consistent hashing currently because of API: https://github.com/serialx/hashring but soon I plan to migrate to rendezvous hashing either by finding out similar library or by rewriting API hashring to rendezvous (algorithm is quite trivial so it isn't big deal)
Yes, "joint consensus" took me a while to comprehend. If you check dragonboat examples there is one ( https://github.com/lni/dragonboat-example/tree/master/ondisk ) which shows how to perform migrations between nodes simply by copying snapshots. There are few open questions (eg. how does it scale up? does it always need to copy everything to target node first or could it be reimplemented with option for streaming?) but it looks quite promising.