Write-Behind Covering Cache for Database I/O Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Database systems face performance issues and increased costs due to scaling demands, leading to memory and I/O capacity exhaustion, especially with large numbers of transactions and data replication, which existing technologies struggle to adequately support.
Innovation Solution
Implementing a non-volatile data cache with write-behind optimization, using a resilient SSD cache for aggregate writes of contiguous data pages, and decoupling database data cache and storage writes, checkpoints, and recovery processes to reduce fragmentation and storage costs, while maintaining performance through optimistic concurrency control and background processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If database systems scale to support large numbers of transactions and data replication, then database capacity and availability improve, but memory and I/O capabilities are exhausted
Solution Approach 1:
The patent segments the database storage system into multiple data files distributed across different storage devices. Each data file can be independently managed and accessed, allowing the system to scale horizontally by adding more storage devices without proportionally increasing memory and I/O resources at each individual device.
Solution Approach 2:
The patent introduces a new dimension of storage organization by implementing aggregate writes that operate on groups of data pages rather than individual pages. This dimensional change in the write operation granularity reduces the total number of I/O operations required, thereby reducing the I/O capability burden while maintaining database scaling capacity.
2Productivity
If aggregate writes of contiguous data pages are used, then I/O operations are reduced, but data file fragmentation increases
Solution Approach 1:
The patent implements dynamic management of data files with separate control of data pages and free pages. The system dynamically tracks and manages fragmentation through metadata that records the physical location and status of each page, allowing it to adapt to fragmentation patterns while maintaining the benefits of aggregate writes.
Solution Approach 2:
The patent changes the parameters of write operations from individual page writes to aggregate writes of multiple contiguous pages. This parameter change in write granularity improves I/O efficiency by reducing the number of operations, while the system compensates for resulting fragmentation through its page management mechanisms.
3Reliability
If write-behind operations are performed synchronously, then data consistency is maintained, but database performance deteriorates
Solution Approach 1:
The patent implements write-behind operations where data is preliminarily written to the data cache before being written to the underlying data file. This preliminary action allows the database to acknowledge writes immediately to maintain performance, while the actual write to storage occurs asynchronously in the background, preserving both performance and data consistency through the cache layer.
Solution Approach 2:
The patent introduces a data cache as an intermediary layer between the database system and the underlying storage. This intermediary buffer allows write operations to be decoupled, enabling the database to maintain high performance by writing to the fast cache while ensuring data consistency through eventual persistence to the underlying storage medium.
4Reliability
If storage writes are decoupled from data cache, then storage resilience is improved, but complexity of managing checkpoints and recovery increases
Solution Approach 1:
The patent extracts the storage write operation from the data cache management process, allowing them to operate independently. Data can be written to the cache without immediately writing to storage, and storage writes can proceed independently based on their own checkpoint requirements. This separation improves storage resilience by allowing independent failure domains while the system manages the complexity through coordinated checkpointing mechanisms.
Data Source
AI summary
Data base performance is improved using write-behind optimization of covering cache. Non-volatile memory data cache includes a full copy of stored data file(s). Data cache and storage writes, checkpoints, and recovery may be decoupled (e.g., with separate writes, checkpoints and recoveries). A covering data cache supports improved performance by supporting database operation during storage delays or outages and/or by supporting reduced I/O operations using aggregate writes of contiguous data pages (e.g., clean and dirty pages) to stored data file(s). Aggregate writes reduce data file fragmentation and reduce the cost of snapshots. Performing write-behind operations in a background process with optimistic concurrency control may support improved database performance, for example, by not interfering with write operations to data cache. Data cache may store (e.g., in metadata) data cache checkpoint information and storage checkpoint information. A stored data file may store storage checkpoint information (e.g., in a file header).


