Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unsafe recovery option #167

Closed
kjnilsson opened this issue Feb 14, 2020 · 2 comments
Closed

Unsafe recovery option #167

kjnilsson opened this issue Feb 14, 2020 · 2 comments

Comments

@kjnilsson
Copy link
Contributor

Provide an option to force a ra server to start as a single node cluster in the case where a quorum cannot ever be re-established and we just want to recover what is left.

@michaelklishin
Copy link
Member

We've had some discussion notes about this and compared what Ra has today to other Raft-based systems, namely etcd and Consul.

Links

etc

  • Permanent loss of cluster quorum requires a new cluster, by design
  • Data safety is quoted as the primary reason for that
  • Node recovery is performed using a snapshot file or an existing node data directory
  • A node can be (forced to boot): cluster size shrinks to one
  • Keyspace data can be preserved for a node started with new configuration
  • A node can be forced to join a cluster and forget about its previous one

Consul

  • Cluster membership uses a gossip protocol
  • Recreated failed nodes (e.g. replacement pods) must retain node identity, which is derived from the IP address
  • A node can be forced to boot (bootstrap): cluster size shrinks to one
  • A node can be forcefully removed from the cluster
  • One of the recommendations suggests recovering a single node by forcing it to boot with only one known cluster member, and making a number of brand new nodes join it

What Do We Want to Have in Ra

  • Forced boot option
  • Other ideas are out of scope for now

@kjnilsson
Copy link
Contributor Author

This was done in #306

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants