Multimaster Database Conflict Detection Using Version Vectors
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Multimaster database systems employing asynchronous replication face challenges in detecting and resolving conflicts resulting from concurrent changes, particularly those involving object resolution, which can lead to data integrity issues due to unclear 'correct' changes.
Innovation Solution
The implementation of per-object and per-link set version vectors to track changes and detect conflicts, allowing for automatic or user-assisted deconfliction by comparing version vectors across sites, ensuring consistent data propagation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If asynchronous replication is used to improve availability, then system availability is improved, but conflict detection and resolution complexity increases
Solution Approach 1:
The system performs preliminary actions by attaching version vectors to data changes before propagation. Each database site maintains version vectors that record the version history of each data object, enabling conflict detection to be performed automatically when changes are propagated, thus resolving conflicts before they affect data integrity while maintaining asynchronous replication's availability benefits
Solution Approach 2:
The system implements feedback mechanisms where databases exchange version vector information with each other. When a database receives a change from another database, it compares the incoming version vector with its local version vectors to detect conflicts. This feedback loop enables automatic conflict detection and resolution without requiring complex manual intervention, thus reducing the perceived complexity while maintaining high availability
2Reliability
If version vectors are used to detect conflicts, then data integrity is improved, but computational overhead increases
Solution Approach 1:
The system uses version vectors as compact copies of version history information. Instead of storing complete version histories or performing complex comparisons, each data object carries a condensed version vector that can be quickly copied and compared. This copying mechanism enables efficient conflict detection with minimal computational overhead while ensuring data integrity through accurate conflict identification
Solution Approach 2:
The system changes the parameter representation from complete version histories to compressed version vectors. Each version vector uses a fixed-size data structure that records only the essential version information needed for conflict detection. This parameter transformation reduces the computational complexity of conflict detection while maintaining the ability to ensure data integrity through accurate conflict identification
3Measurement precision
If object resolution changes are tracked with version vectors, then conflict detection accuracy is improved, but system complexity increases
Solution Approach 1:
The system implements a universal version vector mechanism that handles multiple types of changes uniformly, including object resolution changes. The same version vector structure and comparison logic are used for all data object modifications regardless of the specific change type. This universal approach improves conflict detection accuracy for object resolution while avoiding the need for separate complex handling mechanisms, thus not increasing system complexity
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A computer-based method and system for sharing and deconflicting data changes amongst a plurality of replication sites. In a particular embodiment, data changes at sites to data objects are tracked by each site on a per-data object basis using per-data object version vectors. In another particular embodiment, data changes at sites to links connecting two data objects are tracked by each site on a per-link set basis using per-link set version vectors. In another particular embodiment, per-object version vectors are used to detect a conflict resulting from concurrent changes at two or more sites in which one of the concurrent changes includes an object resolution change.