Database Replication Parallel Execution via Dependency Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current database replication mechanisms face significant latency when applying a combination of row-level, statement-level, and procedure-level changes to a destination database, as they typically apply these changes sequentially rather than in parallel, despite being executed concurrently at the source database.
Innovation Solution
The techniques enable parallel application of a combination of row-level, statement-level, and procedure-level changes to a destination database by computing dependencies among these changes at various levels and using conflict detection mechanisms to ensure logical equivalence, allowing multiple processing elements to execute changes in parallel based on determined dependencies.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If changes are applied sequentially to the destination database, then conflicts are avoided and data consistency is maintained, but replication latency increases and performance deteriorates
Solution Approach 1:
The patent segments changes into different types (row-level, statement-level, procedure-level) and further divides them into independent sets that can be applied in parallel. By identifying independent changes that do not conflict with each other, the system can apply multiple changes simultaneously to different data rows, thereby reducing replication latency while maintaining data consistency through conflict detection mechanisms.
Solution Approach 2:
The patent performs preliminary conflict detection and dependency analysis before applying changes to the destination database. By pre-identifying independent changes that can be safely applied in parallel, the system prepares the replication process to execute multiple changes concurrently without risking data consistency, thus reducing replication latency while preserving reliability.
2Productivity
If parallel application of changes is implemented, then replication latency is reduced and performance improves, but device complexity increases due to dependency computation and conflict detection mechanisms
Solution Approach 1:
The patent segments the replication process into distinct phases: change classification, dependency analysis, conflict detection, and parallel execution. By organizing the complex parallel application process into manageable segments with clear interfaces, the system achieves high replication performance while controlling complexity through structured processing of different change types.
Solution Approach 2:
The patent introduces intermediary components such as dependency graphs and conflict detection mechanisms that mediate between the incoming changes and the parallel application process. These intermediaries manage the complexity by providing systematic methods for identifying independent changes and coordinating their parallel execution, thereby improving replication performance without overwhelming system complexity.
3Productivity
If all changes are applied in parallel, then replication performance is maximized, but logical equivalence between source and destination may be compromised due to conflicts
Solution Approach 1:
The patent implements feedback mechanisms through conflict detection that monitor the parallel application process. By detecting conflicts between concurrent changes and adjusting the replication strategy accordingly (e.g., serializing conflicting changes while maintaining parallel execution of independent ones), the system maximizes replication throughput while preserving logical equivalence between source and destination databases.
Solution Approach 2:
The patent performs preliminary conflict detection and dependency analysis before parallel application to identify changes that can be safely executed concurrently. This pre-screening ensures that only non-conflicting changes are applied in parallel, maximizing throughput while maintaining logical equivalence by preventing conflicting operations from being executed simultaneously.
Data Source
AI summary
Techniques for replicating data in database systems are described. In an example embodiment, a set of changes is received at a destination database, where the set of changes has been applied at a source database and is being replicated from the source database to the destination database. The set of changes is analyzed and it is determined that the set of changes includes two or more of: a subset of row-level changes, a subset of statement-level changes, and a subset of procedure-level changes. A set of dependencies is determined at least between the changes that are included in the subsets of changes. The changes, in the subsets of changes, are assigned to two or more processing elements. The set of changes is applied to the destination database by executing the two or more processing elements in parallel to each other and based on the set of dependencies.


