Node clustering configuration
AssigneeElasticsearch B.V.
InventorsYannick Welsch, David Christopher Turner
Life of this patent
Estimating the term…
Abstract
Node clustering configuration is disclosed herein. An example method includes determining nodes of a cluster, each of the nodes having a unique identifier and a cluster identifier for the cluster, determining a voting configuration for the cluster, the voting configuration defining a quorum of master-eligible nodes of the nodes, the voting configuration being adaptable so as to maintain an optimal level of fault tolerance for the cluster, adding and removing nodes that can change the voting configuration, configuring a cluster configuration through an API, and electing one of the master-eligible nodes as a master node.
Claims17
A method to be performed by one or more computer processors in one or more nodes in a cluster, the method comprising:
- determining a voting configuration for the cluster based on a cluster state and a voting configuration exclusions list, the exclusions list preventing a listed node from returning to the voting configuration, the voting configuration defining a quorum of master-eligible nodes of the nodes, the voting configuration being adaptable so as to maintain an optimal level of fault tolerance for the cluster, wherein reconfiguration is controlled through an Application Programming Interface;
- establishing a fault tolerance level for the cluster, the fault tolerance level being determined as a number of nodes in the cluster compared to a number of nodes that can be lost from the cluster while the cluster maintains availability;
- and
- electing one of the master-eligible nodes as a master node.
A method to be performed by one or more computer processors in one or more nodes in a cluster, the method comprising:
- bootstrapping the cluster by:
- determining at least three master-eligible nodes;
- resolving a list of names to persistent node IDs after discovery for the at least three master-eligible nodes;
- allowing the master-eligible nodes to perform an automatic discovery process to create the cluster based on a cluster state and a voting configuration exclusions list, the exclusions list preventing a listed node from returning to a voting configuration;
- and
- establishing an optimal level of fault tolerance for the cluster using the voting configuration, the fault tolerance level being determined as a number of nodes in the cluster compared to a number of nodes that can be lost from the cluster while the cluster maintains availability;
- and
- reconfiguring the voting configuration based on a change to the cluster, the reconfiguring comprising updating the cluster state based on acceptance by a quorum in a current voting configuration and a quorum in a target voting configuration;
- wherein the bootstrapping is invoked through an Application Programming Interface.
A method of reconfiguring a cluster, the method to be performed by one or more computer processors in one or more nodes in the cluster, the method comprising:
- selecting one or more nodes to be removed;
- determining a count of master-eligible nodes in the cluster;
- determining a number of master-eligible nodes within the one or more nodes to be removed;
- removing the selected one or more nodes if the number of master-eligible nodes to be removed is less than half the count of master-eligible nodes in the cluster;
- removing less than half of the count of master-eligible nodes in the selected one or more nodes if the number of master-eligible nodes to be removed is equal to or greater than half the count of master-eligible nodes in the cluster and auto-configuring the cluster;
- and
- removing any remaining master-eligible nodes selected to be removed that have not been removed;
- wherein nodes are added to or removed from the cluster using an Application Programming Interface.
Dependencies are inferred from the claim text.