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 acts of:
- 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;
restricting processing of write operations received from the database clients to the at least one primary node;
establishing at least one secondary node configured to host a replica of data hosted at 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, andlimit participation in replication operations at the at least one arbiter node to updating the operation log without replication of the operations on respective data;
wherein the at least one arbiter node does not host a replica of the data hosted by the at least one primary node;
replicating from the at least one primary node at least one log entry reflecting the write operations executed by the at least one primary node to the at least one secondary node and the at least one arbiter node; and
confirming a safe write operation received from a database client in response to determining that the safe write operation has been executed at a threshold number of the plurality of nodes based on a count of nodes determined to have executed the safe write operation, wherein determining that the safe write operation has been executed at the threshold number includes acts of;
determining that the safe write operation has been executed at a respective one of the at least one arbiter node when the respective arbiter node has entered a log entry reflecting the safe write operation into the operation log hosted by the respective arbiter node, wherein execution at the respective arbiter node does not require replication of the safe write operation on respective data; and
determining that the safe write operation has been executed at a respective one of the at least one secondary node when the respective secondary node has replicated the safe write operation in a replica of the data of the at least one primary node hosted by the respective secondary node.
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.
257 Citations
20 Claims
-
1. A computer implemented method for managing a distributed database, the method comprising acts of:
-
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; restricting processing of write operations received from the database clients to the at least one primary node; establishing at least one secondary node configured to host a replica of data hosted at 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, and limit participation in replication operations at the at least one arbiter node to updating the operation log without replication of the operations on respective data; wherein the at least one arbiter node does not host a replica of the data hosted by the at least one primary node; replicating from the at least one primary node at least one log entry reflecting the write operations executed by the at least one primary node to the at least one secondary node and the at least one arbiter node; and confirming a safe write operation received from a database client in response to determining that the safe write operation has been executed at a threshold number of the plurality of nodes based on a count of nodes determined to have executed the safe write operation, wherein determining that the safe write operation has been executed at the threshold number includes acts of; determining that the safe write operation has been executed at a respective one of the at least one arbiter node when the respective arbiter node has entered a log entry reflecting the safe write operation into the operation log hosted by the respective arbiter node, wherein execution at the respective arbiter node does not require replication of the safe write operation on respective data; and determining that the safe write operation has been executed at a respective one of the at least one secondary node when the respective secondary node has replicated the safe write operation in a replica of the data of the at least one primary node hosted by the respective secondary node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A distributed database system, the system comprising:
-
at least one processor operatively connected to a memory, 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, a plurality of secondary nodes with a secondary role, and at least one arbiter node with an arbiter role; a replication component configured to restrict write operations received from client computer systems to the at least one primary node having the primary role; the at least one primary node configured to; execute write operations on a respective copy of at least a portion of database data and generate at least one log entry for execution of the write operations; replicate the at least one log entry to the plurality of secondary nodes and the at least one arbiter node; the plurality of secondary nodes configured to; host a copy of data hosted by 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 data; the at least one arbiter node configured to update an operation log, hosted by the at least one arbiter node, of operations performed by the at least one primary node, wherein the at least one arbiter node does not host a copy of the data hosted by the at least one primary node; wherein the replication component is further configured to; limit participation in replication operations at the at least one arbiter node to updating the operation log, hosted by the at least one arbiter node, without replication of the operations on respective data; determine that a safe write operation has been executed at a respective one of the at least one arbiter node when the respective arbiter node has entered a log entry reflecting the safe write operation in the operation log hosted by the respective arbiter node, wherein execution at the respective arbiter node does not require replication of the safe write operation on respective data; determine that a safe write operation has been executed at a respective one of the plurality of secondary nodes when the safe write operation has been replicated in a copy of the data hosted by the respective secondary node; and acknowledge the safe write operation responsive to determining that the safe write operation has been executed by a threshold number of the plurality of nodes based on a count of nodes determined to have executed the safe write operation. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification