Reconciliation of geo-replicated database clusters
First Claim
1. A method for reconciling data stored on a primary database with a secondary database, the method comprising:
- tracking a current state identifier of the primary database that identifies a last reconciled state with the secondary database, a last system change made in the primary database, and a last system change made in the secondary database;
transmit a request to reconcile changes in the primary database with the secondary database, the request including the current state identifier and a payload; and
receiving confirmation that the primary database has been synchronized with the secondary database, when the current state identifier of the primary database matches a current state identifier of the secondary database and no system operations have been performed on the primary database or the secondary database since a last reconciliation,wherein the current state identifier of the secondary database identifies a last reconciled state with the primary database, a last system change made in the primary database, and a last system change made in the secondary database by a system.
4 Assignments
0 Petitions
Accused Products
Abstract
A database associated with a primary database cluster may be replicated in a backup database cluster located in a different location in order to provide a highly-available fault tolerant database service. The databases are reconciled through a cluster management module distributed in each database cluster. The cluster management module uses a set of reconciliation data structures to track locally the reconciled states of each database in each database cluster, the operations made locally to the databases in each database cluster, and the author of the operations. The cluster management module in each database cluster engages in a stateless messaging protocol using the set of reconciliation data structures to determine whether or not the databases may be reconciled.
-
Citations
20 Claims
-
1. A method for reconciling data stored on a primary database with a secondary database, the method comprising:
-
tracking a current state identifier of the primary database that identifies a last reconciled state with the secondary database, a last system change made in the primary database, and a last system change made in the secondary database; transmit a request to reconcile changes in the primary database with the secondary database, the request including the current state identifier and a payload; and receiving confirmation that the primary database has been synchronized with the secondary database, when the current state identifier of the primary database matches a current state identifier of the secondary database and no system operations have been performed on the primary database or the secondary database since a last reconciliation, wherein the current state identifier of the secondary database identifies a last reconciled state with the primary database, a last system change made in the primary database, and a last system change made in the secondary database by a system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system, comprising:
-
a primary database cluster and a secondary database cluster; and the primary database cluster having at least one processor and a memory; the at least one processor configured to; establish a relationship between a primary database in the primary database cluster and the secondary database in the secondary database cluster that allows a user to perform one or more operations on the primary database and on the secondary database concurrently and independently; track a current state identifier and a previous state identifier for the primary database, the current state identifier represents a last reconciled state with the secondary database and a last system change made in the primary database, and a last system change made in the secondary database; reconcile operations performed on the primary database with the secondary database based on a current state identifier of the primary database and the current state identifier of the secondary database; and reconcile operations performed on the secondary database with the primary database based on a current state identifier of the secondary database and a previous state identifier of the primary database. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A device, comprising:
-
at least one processor and a memory; the at least one processor configured to; establish a relationship with a first database so that the first database and the second database are synchronized; track operations performed on the second database using a current state identifier, the current state identifier associated with a last reconciled state with the first database, a last system change made in the first database, and a last system change made in the second database; receive a first message requesting reconciliation between a first database and a second database, the first message including a current state identifier of the first database and a payload; and incorporating the payload into the second database when the current state identifier of the first database matches the current state identifier of the second database. - View Dependent Claims (17, 18, 19, 20)
-
Specification