System for maintaining consistency across a decentralized database cluster and method therefor
First Claim
1. A system comprising:
- a plurality of database servers each hosting a copy of a database, each database server comprising one or more processing modules and one or more non-transitory storage modules storing computing instructions configured to run on the one or more processing modules and perform acts of;
adding a node representing a database server to a list of active database servers;
receiving a checkpoint marker message with an associated checkpoint ID, wherein the checkpoint marker message and the associated checkpoint ID are embedded in a document update message;
determining when a checkpoint roll call node exists for the associated checkpoint ID;
when the checkpoint roll call node exists for the associated checkpoint ID, adding a database server node representing the database server to the checkpoint roll call node;
determining when a roll call has expired; and
after the roll call has expired and after the database server node is added to the checkpoint roll call node, committing an update to the database server.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for maintaining consistency across a decentralized database cluster is presented. When a database server receives an index update message, it adds a message to a queue indicating it has received the message and watches an index update node. Once every server in the cluster has added a message to the queue or a timer has expired, it is known that every active database server has received the message. The update can be performed for each server and the changes committed simultaneously. In such a manner, all database servers in the cluster perform an update at approximately the same time. When a database server is unable to complete an update, it enters a fallen behind mode and performs updates more often, as configured in a configuration database. Other embodiments also are disclosed.
34 Citations
25 Claims
-
1. A system comprising:
a plurality of database servers each hosting a copy of a database, each database server comprising one or more processing modules and one or more non-transitory storage modules storing computing instructions configured to run on the one or more processing modules and perform acts of; adding a node representing a database server to a list of active database servers; receiving a checkpoint marker message with an associated checkpoint ID, wherein the checkpoint marker message and the associated checkpoint ID are embedded in a document update message; determining when a checkpoint roll call node exists for the associated checkpoint ID; when the checkpoint roll call node exists for the associated checkpoint ID, adding a database server node representing the database server to the checkpoint roll call node; determining when a roll call has expired; and after the roll call has expired and after the database server node is added to the checkpoint roll call node, committing an update to the database server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A method comprising:
in a database server of a cluster of database servers; adding a node representing the database server to a list of active database servers; receiving a checkpoint marker message with an associated checkpoint ID, wherein the checkpoint marker message and the associated checkpoint ID are embedded in a document update message; determining when a checkpoint roll call node exists for the associated checkpoint ID; when the checkpoint roll call node exists for the associated checkpoint ID, adding a database server node representing the database server to the checkpoint roll call node; determining when a roll call is complete; and after the roll call has expired and after the database server node is added to the checkpoint roll call node, committing an update to the database server. - View Dependent Claims (11, 12, 13, 14)
-
15. A method comprising:
-
receiving a first checkpoint marker message with an associated checkpoint ID, wherein the first checkpoint marker message and the associated checkpoint ID are embedded in a document update message; determining when a checkpoint roll call node associated with the first checkpoint marker message is still active; and when the checkpoint roll call node is not active; removing a database server from a list of available servers; and leaving a normal mode to enter a fallen behind mode. - View Dependent Claims (16, 17, 18, 19, 20, 22, 23)
-
-
21. The method of 15, wherein:
-
the first checkpoint marker message comprises a timestamp indicating a time during which the first checkpoint marker message was completed; and the method further comprises; detecting that the database server has caught up to a cluster of database servers by; comparing the timestamp with a current time to determine when the first checkpoint marker message was completed prior to the current time; and leaving the fallen behind mode to enter the normal mode when the first checkpoint marker message was not completed prior to the current time.
-
-
24. A system comprising:
-
one or more processors; and one or more non-transitory computer-readable storage devices storing computing instructions configured to run on the one or more processors and perform acts of; receiving a first checkpoint marker message with an associated checkpoint ID, wherein the first checkpoint marker message and the associated checkpoint ID are embedded in a document update message; determining when a checkpoint roll call node associated with the first checkpoint marker message is still active; and when the checkpoint roll call node is not active; removing a database server from a list of available database servers; and leaving a normal mode to enter a fallen behind mode. - View Dependent Claims (25)
-
Specification