Data Convergence

With data convergence, all the sites may end up with the same values, but not necessarily the ones that would have resulted had all the work been done at only one site. For example, merge replication puts more importance on data value convergence and site autonomy than on transactional consistency. All sites may freely work in a disconnected manner, and when all the nodes have synchronized, all sites converge to the same values.

For example, suppose node 3 submits five transactions, A-B-C-D-E , for synchronization. Transactions A and B have no conflicts, and are accepted. But transaction C has a conflict, and the reconciliation mechanism discards this transaction. Now, transactions D and E must also be discarded if transactional consistency is to be maintained. This is because those transactions may have read, and depended on, data that transaction C had modified. This situation is conceptually like a “dirty read” in a single database system. Other transactions may have introduced changes dependent on a data state that was later discarded and logically did not exist. Even a compensating transaction (for example, sending back a DELETE statement if an INSERT statement had been rejected) is not sufficient to guarantee transactional consistency. The problem is not in undoing a specific transaction, but rather in the possible changes that subsequent transactions may apply.

  


(c) 1988-98 Microsoft Corporation. All Rights Reserved.