Method and apparatus for bi-directional communication and data replication between multiple locations during intermittent connectivity
First Claim
1. A method for synchronizing contents of a local database with contents of a remote database, the method comprising:
- writing at least one data transaction received from a user terminal from the local database to a local transaction log file;
assigning a bin number to each of the at least one data transaction;
determining, by a local replicator service, if the assigned bin number has changed due to receipt of at least one subsequent data transaction;
if the bin number has changed, inserting, by the local replicator service, the at least one subsequent data transaction into a local sequence log file and assigning the at least one subsequent data transaction a first sequence number;
in response to a request by a remote replicator service, providing, to the remote replicator service, access to the first sequence number, the remote replicator service having access to a second sequence number stored in the remote database; and
if the first sequence number does not match the second sequence number,providing, to the remote replicator service, access to the at least one subsequent data transaction associated with the first sequence number, the remote replication service updating the remote database to include the at least one subsequent data transaction.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and database server for synchronizing contents of a local database with contents of a remote database. The method includes writing data transactions to a local transaction log file, assigning bin numbers to the data transactions, and determining if the assigned bin numbers have changed due to receipt of subsequent data transactions and if the bin numbers have changed, inserting the subsequent data transactions into a local sequence log file and assigning the subsequent data transactions a first sequence number. The method includes providing, to a remote replicator service, access to the first sequence number, the remote replicator service having access to a second sequence number, and if the first sequence number does not match the second sequence number, providing to the remote replicator service access to the subsequent data transactions, the remote replication service updating a remote database to include the subsequent data transactions.
-
Citations
20 Claims
-
1. A method for synchronizing contents of a local database with contents of a remote database, the method comprising:
-
writing at least one data transaction received from a user terminal from the local database to a local transaction log file; assigning a bin number to each of the at least one data transaction; determining, by a local replicator service, if the assigned bin number has changed due to receipt of at least one subsequent data transaction; if the bin number has changed, inserting, by the local replicator service, the at least one subsequent data transaction into a local sequence log file and assigning the at least one subsequent data transaction a first sequence number; in response to a request by a remote replicator service, providing, to the remote replicator service, access to the first sequence number, the remote replicator service having access to a second sequence number stored in the remote database; and if the first sequence number does not match the second sequence number, providing, to the remote replicator service, access to the at least one subsequent data transaction associated with the first sequence number, the remote replication service updating the remote database to include the at least one subsequent data transaction. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A local database server configured to synchronize contents of a local database with contents of a remote database, the local database server comprising:
-
a local transaction log file; processing circuitry including a memory and a processor, the memory in communication with the processor, the memory having instructions that, when executed by the processor, configure the processor to; write at least one data transaction received from a user terminal from the local database to the local transaction log file; assign a bin number to each of the at least one data transaction; determine, by a local replicator service, if the assigned bin number has changed due to receipt of at least one subsequent data transaction; if the bin number has changed, insert, by the local replicator service, the at least one subsequent data transaction into a local sequence log file and assign the at least one subsequent data transaction a first sequence number; and a communication interface configured to receive a request from a remote replicator service, in response to the request from the remote replicator service, the processor is further configured to; provide, to the remote replicator service, access to the first sequence number, the remote replicator service having access to a second sequence number stored in the remote database; and if the first sequence number does not match the second sequence number, provide, to the remote replicator service, access to the at least one subsequent data transaction associated with the first sequence number, the remote replication service updating the remote database to include the at least one subsequent data transaction. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A remote database server configured to synchronize contents of a local database with contents of a remote database, the remote database comprising:
-
a communications interface configured to; receive, from a local replicator service, a first sequence number, the first sequence number associated with at least one data transaction, the local replicator service configured to assign the at least one data transaction the first sequence number upon determining if a bin number assigned to each of the at least one data transaction has changed due to receipt of at least one subsequent data transaction; and processing circuitry including a memory and a processor, the memory in communication with the processor, the memory having instructions that, when executed by the processor, configure the processor to; compare, by a remote replicator service, the first sequence number received from the local replicator service to a second sequence number, the second sequence number associated with a latest data transaction stored in the remote database; and if the first sequence number does not match the second sequence number, obtain from the local replicator service, via the communications interface, the at least one data transaction associated with the first sequence number; and the processor is further configured to write the at least one data transaction to the remote database. - View Dependent Claims (14, 15)
-
-
16. A system for synchronizing data transactions stored in a local database with data transactions stored in a remote database, the system comprising:
-
a local database server comprising; a local transaction log file; processing circuitry including a memory and a processor, the memory in communication with the processor, the memory having instructions that, when executed by the processor, configure the processor to; write at least one data transaction received from a user terminal from the local database to the local transaction log file; assign a bin number to each of the at least one data transaction; determine, by a local replicator service, if the assigned bin number has changed due to receipt of at least one subsequent data transaction; if the bin number has changed, insert, by the local replicator service, the at least one subsequent data transaction into a local sequence log file and assign the at least one subsequent data transaction a first sequence number; and a local communication interface configured to communicate with a remote replicator service, a remote database server comprising; a remote communications interface configured to receive, from the local replicator service, the first sequence number; and processing circuitry including a memory and a processor, the memory in communication with the processor, the memory having instructions that, when executed by the processor, configure the processor to; compare, by the remote replicator service, the first sequence number received from the local replicator service to a second sequence number, the second sequence number associated with a latest data transaction stored in the remote database; and if the first sequence number does not match the second sequence number, obtain from the local replicator service, via the remote communications interface, the at least one data transaction associated with the first sequence number; and the processor further configured to write the at least one data transaction to the remote database. - View Dependent Claims (17, 18, 19, 20)
-
Specification