Information Technology Reference
In-Depth Information
concurrency-control. The synchronization process begins by transmitting the data
modification log to the server.
Conflict detection : the server must track the data it has replicated to individual
clients and determine whether activity by a given client—as represented by the
data modification log—conflicts with changes that were previously committed
by other clients or server-side applications. The standard algorithm is to detect
a conflict if the synchronizing client has modified a datum that was concur-
rently modified on the server while the synchronizing client was disconnected.
The server copy may have been modified by a server-based application or the
synchronization of another client.
Note that this algorithm, though commonly used in data replication, does not
guarantee detection of all non-serializable conflicts. For example, if client 1
executes A = A + B, and client 2 executes B = B + A, this algorithm does not
detect a problem, because the write-sets do not intersect. However, such cases
do not seem to arise in practice.
Conflict resolution : the conflict resolution algorithm used in commercial sys-
tems places the burden on the user or system administrator. This is not due to
laziness, but reflects the fact that (1) synchronization conflicts at the data level
are difficult to resolve automatically, and (2) the cost of a mishandled conflict
resolution being merged into the shared database may be very high. This implies
that the application itself must specify how conflicts should be resolved.
In some applications, the cost of a mishandled conflict is not as serious,
and/or the probability of an incorrect automatic resolution is not that high. For
example, Lotus Notes can be configured to resolve conflicts between document
records automatically, either by merging all the modified columns together or
by taking the last-modified version of the document. This is adequate for some
applications. Also, the resolved documents are typically viewed by users rather
than by programs, and the users will tend to see most merge problems. Finally,
if an automatic resolution fails, a new “conflict document” is created, which
again will typically be seen by users.
For general databases and applications, though, this is not acceptable. Many
applications databases are accessed directly by programs, and those programs
will not know how to deal with conflict documents or “funny looking” data.
For example, many databases are accessed via a JDBC [21] interface. There is
no provision in JDBC for calling “user exit” code to resolve conflicts, or for
providing a view of conflict records to applications.
Transactional merge : data deleted on the device must be deleted on the server;
data created on the device must be created on the server; and updates performed
on the device's data must also be performed to the server's data. For example, in
Search WWH ::




Custom Search