Database Synchronizer
First Claim
1. A method of synchronizing values of data items on a plurality of computers, comprising the steps of:
- storing a data item having a value at a first computer;
at the first computer, maintaining a log of modification operations to the value of the data item, the value of the data item being modifiable by the first computer and in response to actions at a plurality of computers, including at a second computer;
at the first computer, deriving a single effective operation from a plurality of modification operations maintained in the log, the effective operation yielding the same result on the value of the data item as would the plurality of modification operations; and
using the effective operation to synchronize the value of the data item at the first computer with a value of a replica data item stored at the second computer.
2 Assignments
0 Petitions
Accused Products
Abstract
A database synchronizer facilitates computing systems which have client-side and server-side applications that share data in similar database structures, but which do not maintain a continuous connection to a single shared data source. In general, a database synchronizer is used to share data among many nodes on the computing system. The database synchronizer is used to synchronize the data in a central database for a particular client with the data on that client'"'"'s intermittently-connected computer. Updates performed by either client or server are propagated to the other side when a connection is established and eventually from the server to other clients in the system.
465 Citations
38 Claims
-
1. A method of synchronizing values of data items on a plurality of computers, comprising the steps of:
-
storing a data item having a value at a first computer; at the first computer, maintaining a log of modification operations to the value of the data item, the value of the data item being modifiable by the first computer and in response to actions at a plurality of computers, including at a second computer; at the first computer, deriving a single effective operation from a plurality of modification operations maintained in the log, the effective operation yielding the same result on the value of the data item as would the plurality of modification operations; and using the effective operation to synchronize the value of the data item at the first computer with a value of a replica data item stored at the second computer. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for synchronizing values of data items on a plurality of computers, comprising:
-
a value of a data item stored at a first computer; a log of modification operations to the value of the data item maintained at the first computer, the value of the data item being modifiable by the first computer and in response to actions at a plurality of computers, including at a second computer; an effective operation derived at the first computer from a plurality of modification operations in the log, the effective operation calculated to yield the same result to the value of the data item as would the plurality of modification operations; and a database synchronizer to synchronize the value of the data item with a value of a replica data item stored on the second computer using the effective operation. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A method of synchronizing values of data items on a plurality of computers, comprising the steps of:
-
maintaining a first copy of a data item at a first computer; maintaining a replica copy of the data item at a second computer, the value of the replica copy differing from the value of the first copy; at the first computer, maintaining a log of modification operations to the value of the first copy, the value of the first copy being modifiable by the first computer and in response to actions at the second computer; at the first computer, deriving an effective operation from a plurality of modification operations maintained in the log, the effective operation yielding the same result on the value of the first copy as would the plurality of modification operations; from the effective operation, deducing at the first computer a before value of the replica copy stored at the second computer; at the first computer, detecting a conflict between modification to the values of the first copy and the replica copy using the deduced before value; and applying the effective operation to resolve the conflict. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A system for synchronizing values of data items on a plurality of computers, comprising:
-
a first copy of a data item at a first computer; a replica copy of the data item on a second computer, the value of the replica copy differing from the value of the first copy; a log of modification operations to the value of the first copy maintained on the first computer, the value of the first copy being modifiable by the first computer and in response to actions at the second computer; an effective operation derived at the first computer from a plurality of modification operations in the log, the effective operation calculated to yield the same result to the value of the first copy as would the plurality of modification operations; a deduced before value of the replica copy derived at the first computer from the effective operation; at the first computer, a conflict detector for detecting a conflict between modifications to the values of the first copy and the replica copy from the deduced before value; and a conflict resolver for applying the effective operation to resolve the conflict. - View Dependent Claims (21, 22, 23, 24, 25, 26)
-
-
27. A method of synchronizing values of data items on a plurality of computers, comprising the steps of:
-
maintaining a first copy of a data item at a first computer; maintaining a replica copy of the data item at a second computer, the value of the replica copy differing from the value of the first copy; at the first computer, maintaining a log of modification operations to the value of the first copy, the value of the first copy being modifiable by the first computer and in response to actions at the second computer; at the first computer, deriving an effective operation from a plurality of modification operations maintained in the log, the effective operation yielding the same result on the value of the first copy as would the plurality of modification operations; at the first computer, detecting a conflict between the values of the first copy and the replica copy; from the effective operation, deducing the value of the replica copy stored on the second computer; and forming a propagation operation from the effective operation to modify the value of the replica copy on the second computer to be in synchronization with the value of the first copy on the first computer. - View Dependent Claims (28, 29, 30, 31, 32)
-
-
33. A system for synchronizing values of data items on a plurality of computers, comprising:
-
a first copy of a data item stored at a first computer; a replica copy of the data item stored at a second computer, the value of the replica copy differing from the value of the first copy; a log of modification operations to the value of the first copy maintained at the first computer, the value of the first copy being modifiable by the first computer and in response to actions at the second computer; an effective operation derived at the first computer from a plurality of modification operations in the log, the effective operation calculated to yield the same result to the value of the first copy as would the plurality of modification operations; at the first computer, a conflict detector for detecting a conflict between the values of the first copy and the replica copy; a deduced value of the replica copy derived from the effective operation; and a conflict resolver for forming a propagation operation from the effective operation to modify the value of the replica copy on the second computer to be in synchronization with the value of the first copy on the first computer. - View Dependent Claims (34, 35, 36, 37, 38)
-
Specification