Database Client Copy Parallelization Through Exit Conflict Tracing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing database client copy tools face challenges in parallel execution due to potential data collisions and corruption, especially when user-coded exits are involved, making it difficult to optimize execution order and speed.
Innovation Solution
Implementing a database access trace mode during the execution of pre-copy and postprocessing exits to generate trace data, allowing for conflict detection and modification of exits or execution order to enable parallel execution without data corruption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If parallel execution of pre-copy and postprocessing exits is implemented, then copying speed is improved, but data collision and corruption risks increase
Solution Approach 1:
The system performs a preliminary test execution phase before the actual parallel copy operation. During this test phase, trace data is collected to identify potential conflicts between exits. Based on this analysis, the system determines a safe execution order and identifies which exits can safely run in parallel, thus preventing data collisions during the actual copy operation while maximizing parallel execution benefits.
Solution Approach 2:
The patent introduces an intermediary mechanism (trace data collection and conflict detection system) that mediates between parallel exit executions. This intermediary layer monitors and analyzes exit behaviors, identifies conflicts, and determines execution ordering, allowing the system to safely enable parallel execution without directly causing data corruption.
2Reliability
If sequential execution of exits is used, then data collision risk is reduced, but copying speed decreases
Solution Approach 1:
The system dynamically determines the execution strategy for exits based on conflict analysis results. Rather than using a fixed sequential or parallel approach, the system adapts the execution order and parallelization level according to the specific conflict patterns detected during test execution, optimizing both safety and performance for the given scenario.
Solution Approach 2:
The patent changes the execution parameters (execution order, parallelization degree) based on trace data analysis. By analyzing actual exit behaviors and adjusting execution parameters accordingly, the system achieves optimal balance between data integrity and copying speed for different exit configurations.
3Adaptability or versatility
If user-coded exits are allowed for customization, then adaptability is improved, but conflict detection difficulty increases
Solution Approach 1:
The system implements feedback through trace data collection during test execution. User-coded exits generate trace data that is analyzed to detect conflicts. This feedback loop allows the system to automatically identify conflicts in customized exits without requiring manual analysis, making conflict detection feasible even with highly customized user code.
Solution Approach 2:
The patent enables user-coded exits to self-document their behavior through automatic trace data generation. The exits themselves provide the information needed for conflict detection by recording their database accesses during test execution, eliminating the need for external manual analysis of custom exit code.
Data Source
AI summary
Various examples are directed to systems and methods for copying a source database client to a target database client and exit runtime system may execute a first plurality of exits in a database access trace mode. This may generate first exit trace data describing accesses by the first plurality of exits to at least one of the source database client or the target database client. The system may determine, using the first exit trace data, that a first table of the source database client is accessed by a first exit of the first plurality of exits and a second exit of the first plurality of exits. Based on the determining, the system may modify at least one of the first exit, the second exit, or first execution order data describing an order for executing the first plurality of exits.


