System and method for augmenting consensus election in a distributed database
First Claim
1. A computer implemented method for managing a distributed database, the method comprising:
- establishing at least one primary node within a plurality of nodes, wherein the plurality of nodes comprise a distributed database system and the distributed database system provides responses to database requests from database clients;
establishing at least one secondary node configured to host a replica of data of the at least one primary node from the plurality of nodes and update the replica responsive to received replicated operations from the at least one primary node;
establishing at least one arbiter node configured to host an operation log of operations executed by the at least one primary node, wherein the at least one arbiter node does not host a replica of the data; and
electing a new primary node responsive to detecting a failure of the at least one primary node, wherein electing the new primary node includes;
executing a consensus protocol to elect one of the at least one secondary node as the new primary node, wherein the consensus protocol includes participation of the at least one secondary node and the at least one arbiter node associated with the failed at least one primary node;
evaluating election criteria at the at least one secondary node during an election period;
communicating by a respective one of the at least one secondary node i) a self-vote responsive to determining that the respective one of the at least one secondary node meets the election criteria, or ii) a confirmation of a received vote of another secondary node responsive to determining that the another secondary node is more suitable to be elected as the new primary node based on the election criteria; and
evaluating by the respective one of the at least one secondary node the operation log of the at least one arbiter node as part of the acts of determining.
1 Assignment
0 Petitions
Accused Products
Abstract
According to one aspect, a distributed database system is configured to manage write operations received from database clients and execute the write operations at primary nodes. The system then replicates received operations across a plurality of secondary nodes. Write operation can include safe write requests such that the database guaranties the operation against data loss once acknowledged. In some embodiments, the system incorporates an enhanced arbiter role the enables the arbiter to participate in cluster-wide commitment of data. In other embodiments, the enhanced arbiter role enables secondary nodes to evaluate arbiter operations logs when determining election criteria for new primary nodes.
-
Citations
21 Claims
-
1. A computer implemented method for managing a distributed database, the method comprising:
-
establishing at least one primary node within a plurality of nodes, wherein the plurality of nodes comprise a distributed database system and the distributed database system provides responses to database requests from database clients; establishing at least one secondary node configured to host a replica of data of the at least one primary node from the plurality of nodes and update the replica responsive to received replicated operations from the at least one primary node; establishing at least one arbiter node configured to host an operation log of operations executed by the at least one primary node, wherein the at least one arbiter node does not host a replica of the data; and electing a new primary node responsive to detecting a failure of the at least one primary node, wherein electing the new primary node includes; executing a consensus protocol to elect one of the at least one secondary node as the new primary node, wherein the consensus protocol includes participation of the at least one secondary node and the at least one arbiter node associated with the failed at least one primary node; evaluating election criteria at the at least one secondary node during an election period; communicating by a respective one of the at least one secondary node i) a self-vote responsive to determining that the respective one of the at least one secondary node meets the election criteria, or ii) a confirmation of a received vote of another secondary node responsive to determining that the another secondary node is more suitable to be elected as the new primary node based on the election criteria; and evaluating by the respective one of the at least one secondary node the operation log of the at least one arbiter node as part of the acts of determining. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A distributed database system, the system comprising:
-
at least one processor operatively connected to a memory, wherein the at least one processor when running is configured to execute a plurality of system components, wherein the plurality of system components comprise; a configuration component configured to establish a role associated with each node in a plurality of nodes, wherein the configuration component is configured to establish at least one primary node with a primary role, at least one secondary node with a secondary role, and at least one arbiter node with an arbiter role; the at least one primary node configured to; host data; execute write operations on at least a portion of the data and generate at least one log entry for execution of the write operations; replicate the at least one log entry to the at least one secondary node and the at least one arbiter node; the at least one secondary node configured to; host a replica of the data of the at least one primary node; execute the at least one log entry received from the at least one primary node to update a respective copy of the at least a portion of the data; the at least one arbiter node configured to update an operation log of operations responsive to receipt of the at least one log entry for the write operations from the at least one primary node, wherein the at least one arbiter node does not host a replica of the data; an election component configured to elect a new primary node responsive to detecting a failure of the at least one primary node, wherein the election component is further configured to; execute a consensus protocol to elect one of the at least one secondary node as the new primary node, wherein the consensus protocol includes participation of the at least one secondary node and the at least one arbiter node associated with the failed at least one primary node; evaluate election criteria at the at least one secondary node during an election period; communicate i) a self-vote for a respective one of the at least one secondary node responsive to determining that the respective one of the at least one secondary node meets the election criteria, or ii) a confirmation of a received vote of another secondary node responsive to determining that the another secondary node is more suitable to be elected as the new primary node based on the election criteria; and evaluate the operation log of the at least one arbiter node as part of the acts of determining. - View Dependent Claims (10, 11, 12)
-
-
13. A computer implemented method for managing a distributed database, the method comprising:
-
establishing at least one primary node configured to host data; establishing at least one secondary node configured to host a replica of the data hosted by the at least one primary node; establishing at least one arbiter node, the at least one arbiter node configured to host an operation log of operations executed by the at least one primary node, wherein the at least one arbiter node does not host a replica of the data hosted by the at least one primary node or the at least one secondary node; electing a new primary node responsive to detecting a failure of the at least one primary node, wherein electing the new primary node includes; executing a consensus protocol to elect one of the at least one secondary node as the new primary node, wherein the consensus protocol includes participation of the at least one secondary node and the at least one arbiter node associated with the failed at least one primary node; evaluating election criteria at the at least one secondary node during an election period; communicating by a respective one of the at least one secondary node i) a self-vote responsive to determining that the respective one of the at least one secondary node meets the election criteria, or ii) a confirmation of a received vote of another secondary node responsive to determining that the another secondary node is more suitable to be elected as the new primary node based on the election criteria; and evaluating, by the respective one of the at least one secondary node, the operation log of the at least one arbiter node as part of the acts of determining. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A distributed database system, the system comprising:
-
at least one processor operatively connected to a memory, wherein the at least one processor when running is configured to execute a plurality of system components, wherein the plurality of system components comprise; a configuration component configured to; establish at least one primary node configured to host data; establish at least one secondary node configured to host a replica of the data of the at least one primary node; and establish at least one arbiter node, the at least one arbiter node configured to host an operation log of operations executed by the at least one primary node, wherein the at least one arbiter node does not host a replica of the data; an election component configured to elect a new primary node responsive to detecting a failure of the at least one primary node, wherein the election component is further configured to; execute a consensus protocol to elect one of the at least one secondary node as the new primary node, wherein the consensus protocol includes participation of the at least one secondary node and the at least one arbiter node; evaluate election criteria at the at least one secondary node during an election period; communicate i) a self-vote for a respective one of the at least one secondary node responsive to determining that the respective one of the at least one secondary node meets the election criteria, or ii) communicate a confirmation of a received vote of another secondary node responsive to determining that the another secondary node is more suitable to be elected as the new primary node based on the election criteria; and evaluate the operation log of the at least one arbiter node as part of the acts of determining. - View Dependent Claims (19, 20, 21)
-
Specification