Parallel Constraint Checking in In-Memory Databases
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In-memory databases face performance issues due to the lack of inter-query parallelization in constraint checking, which hampers execution speed since CPU power is abundant but disk I/O is absent, leading to significant upfront processing time for constraint checks.
Innovation Solution
Implementing parallelized constraint checking for database operations, where constraint checks are performed subsequent to operation execution, with invalid operations being invalidated, and utilizing multi-version concurrency control to manage row identifiers and perform checks only on existing rows, allowing for parallel execution of operations and constraint checks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If constraint checking is performed sequentially before operation execution, then data validity is ensured, but execution time increases significantly
Solution Approach 1:
The patent performs constraint checks after operation execution rather than before, allowing operations to proceed first and then validating them. This reverses the traditional sequence where constraint checks would block operations until validation completes, thereby reducing execution time while maintaining data validity through post-execution verification
Solution Approach 2:
The system dynamically adjusts constraint checking based on operation types and table configurations. For example, it selectively applies constraint checks to specific operation types (insert, update, delete) and allows parallel execution where safe, optimizing the balance between reliability and execution time based on real-time database state
2Productivity
If constraint checking is parallelized, then execution speed improves, but complexity of concurrency control increases
Solution Approach 1:
The patent divides constraint checking into separate parallel tasks for different operations and tables. Each constraint check can execute independently on different CPU cores, with results aggregated afterward. This segmentation enables parallelization while managing complexity through modular task design
Solution Approach 2:
The system introduces an intermediary layer that coordinates parallel constraint checks, managing concurrency control without requiring complex inter-locking. This intermediary handles the coordination of parallel tasks and consolidation of results, simplifying the overall concurrency management architecture
3Reliability
If all constraint checks are performed, then data integrity is maintained, but processing overhead increases
Solution Approach 1:
The patent performs constraint checks selectively based on operation types and table configurations rather than uniformly applying checks to all operations. This partial action approach maintains data integrity for critical operations while reducing processing overhead for operations where full constraint checking is less critical or can be optimized
Solution Approach 2:
The system changes parameters such as constraint check thresholds and validation depths based on operation characteristics and database state. This allows adaptive processing overhead that maintains data integrity when needed while reducing energy consumption during operations where full validation is less critical
Data Source
AI summary
A plurality of operations are executed on tables of a database with at least a portion of the operations being executed in parallel. A constraint check is performed for each operation subsequent to its execution to determine whether data stored in the database affected by the operation is valid, during this constraint checking additional operations and/or constraint checks on the same table are allowed to run in parallel. Based on this constraint checking, operations for which the constraint check determines that the data is not valid are invalidated. Related apparatus, systems, techniques and articles are also described.


