Multimaster Database Conflict Detection Using Version Vectors

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Reliability

If asynchronous replication is used to improve availability, then system availability is improved, but conflict detection and resolution complexity increases

Engineering Contradiction:
Improvesystem availabilityVSAvoidconflict detection and resolution complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #23Feedback

2Reliability

If version vectors are used to detect conflicts, then data integrity is improved, but computational overhead increases

Engineering Contradiction:
Improvedata integrityVSAvoidcomputational overhead
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

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

Inventive Principle:
Principle #26Copying

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

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If object resolution changes are tracked with version vectors, then conflict detection accuracy is improved, but system complexity increases

Engineering Contradiction:
Improveconflict detection accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

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

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP3680784B1Sharing and deconflicting data changes in a multimaster database system
Publication Date: 2023.12.13 PALANTIR TECHNOLOGIES INC
  • EP3680784B1 patent drawingFigure 1
  • EP3680784B1 patent drawingFigure 2
  • EP3680784B1 patent drawingFigure 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.