Client-Side Buffering for Transient Duplicate Key Violations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing database management systems (DBMS) face challenges in handling transient duplicate key violations during row updates, particularly when replicating data from a source to a target database, as they may incorrectly identify violations before commit time, leading to unnecessary errors and requiring complex schema modifications or data duplication.

Innovation Solution

Implementing both server-side and client-side techniques to buffer and reorder row changes, using workspaces to track duplicates and defer constraint checking until commit time, allowing for the resolution of transient violations without delaying constraint enforcement or duplicating data structures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If row changes are applied individually to the target database during replication, then replication speed is improved, but transient duplicate key violations cause unnecessary errors

Engineering Contradiction:
Improvereplication speedVSAvoidconstraint enforcement accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary buffering of row changes in memory before applying them to the target database. This preliminary buffering action allows the system to collect multiple row changes, detect transient duplicates, and reorder or filter them before constraint enforcement, thereby preventing unnecessary errors while maintaining replication speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary buffering layer between the source and target databases. This intermediary buffer stores row changes temporarily and performs intelligent processing (reordering, filtering) to resolve transient duplicates before passing data to the target database, thus mediating between replication speed and constraint enforcement accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If constraint checking is performed immediately on each row update, then data integrity is maintained, but transient violations cause unnecessary rollbacks and errors

Engineering Contradiction:
Improvedata integrityVSAvoidupdate operation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary buffering of row changes in memory before applying them to the target database. This preliminary buffering action allows the system to collect multiple row changes, detect transient duplicates, and reorder or filter them before constraint enforcement, thereby preventing unnecessary errors while maintaining replication speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary buffering layer between the source and target databases. This intermediary buffer stores row changes temporarily and performs intelligent processing (reordering, filtering) to resolve transient duplicates before passing data to the target database, thus mediating between replication speed and constraint enforcement accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If row changes are buffered and reordered to avoid transient violations, then error reduction is achieved, but additional memory storage is required

Engineering Contradiction:
Improveconstraint enforcement accuracyVSAvoidmemory storage for buffering
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system changes the parameter of constraint checking timing from immediate to deferred. By deferring constraint enforcement until after row changes are buffered and reordered, the system reduces transient violation errors while the buffered storage requirements remain manageable and temporary.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9965535B2Client-side handling of transient duplicates for row-level replication
Publication Date: 2018.05.08 ORACLE INT CORP
  • US9965535B2 patent drawing
  • US9965535B2 patent drawing

AI summary

Transient duplicate key violations of unique key constraints are handled during row updates. Row changes are buffered until a point is reached that those changes are safe to execute. Row changes are effectively reordered to avoid constraint violations during execution of updates. In response to receiving a constraint key violation from a server after an attempted update, a client locally stores a record containing information regarding the failed update. Later, in response to the lack of receipt of an error in response to another update to the same column of the same table, the client uses the information in this record to instruct the server to attempt to repeat a failed update that previously attempted to change the value of a row to a value that was present in a uniqueness-constrained column at the time of the failure, but is no longer present due to the successful update.