Non-blocking Page Fault Architecture for Distributed Database Concurrency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed databases, lock contention occurs when write operations block other operations, leading to reduced concurrency and throughput due to the need for ensuring data integrity, which affects the speed and consistency of data access.
Innovation Solution
Implementing a non-blocking page fault architecture that predicts page faults using a virtual memory model, allowing write operations to suspend and release locks, enabling concurrent execution of other operations while data is read from disk and written into active memory, thereby minimizing lock contention.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If write locks are used to ensure data integrity during write operations, then data consistency is improved, but concurrency and throughput are reduced due to blocking other operations
Solution Approach 1:
The system predicts page faults before they occur using a virtual memory model, allowing the database to pre-load data into active memory before write operations need it. This preliminary action eliminates the need for blocking locks during actual write operations, as the data is already available in memory when needed.
Solution Approach 2:
The patent introduces a page fault prediction mechanism as an intermediary layer between the write operation and the physical storage system. This mediator predicts which pages will be needed and prepares them in advance, allowing write operations to proceed without blocking other operations while maintaining data integrity.
2Reliability
If write operations block on page faults to ensure data integrity, then data consistency is improved, but data access speed is reduced due to waiting for disk I/O
Solution Approach 1:
The system performs preliminary actions by predicting which data pages will be needed for upcoming write operations and loading them into active memory in advance. This eliminates the need for write operations to wait for disk I/O, as the data is already available in fast memory when the write operation executes.
Solution Approach 2:
The patent implements a dynamic page fault prediction system that continuously monitors access patterns and adjusts predictions based on current system state. This dynamic approach allows the system to adapt to changing workloads and optimize data access speeds while maintaining consistency through selective pre-loading of pages.
3Reliability
If locks are held during data reading from disk to ensure data integrity, then data consistency is improved, but system throughput is reduced due to lock contention
Solution Approach 1:
The patent extracts the lock acquisition step from the data reading process by using page fault prediction. Instead of holding locks while reading data from disk, the system predicts which pages will be needed and prepares them in advance without requiring locks, separating the data preparation phase from the actual write operation phase.
Solution Approach 2:
The system maintains continuous useful action by allowing unrelated operations to execute concurrently while data is being prepared in the background through prediction. The predicted page loading occurs without blocking other operations, ensuring that the system continues to process requests continuously rather than stalling for lock availability.
Data Source
AI summary
The methods and systems can include a database management component configured to manage database instances, the database management component also configured to receive a first data request operation on the distributed database, an execution component configured to process the first data request operation including at least one write request on at least one database instance managed by the database management component, and a fault prediction component configured to detect a potential page fault responsive to a target data of the write request, wherein the execution component is further configured to suspend execution of the first data request operation, request access a physical storage to read the target data into active memory, and re-execute the first data request operation after a period of time for suspending the first data request operation.


