Persistent Key-Value Cache Journaling for Low-Latency Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing distributed storage solutions suffer from high latency and suboptimal performance due to data distribution across multiple storage devices, and traditional caching methods using non-volatile random-access memory (NVRAM) are inefficient as data is moved between intermediate and final storage locations, leading to increased write amplification and network hops.
Innovation Solution
Implementing a persistent key-value store as a primary cache backed by fast storage media like NVRAM, where data is stored as key-value pairs and managed using a two-phase commit process to ensure correctness, with crash recovery through parallel rebuilding of chains based on operation order.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data is distributed across multiple storage devices, then storage capacity and reliability are improved, but access latency and performance deteriorate
Solution Approach 1:
The system segments data into hot data (frequently accessed) and cold data (infrequently accessed), storing hot data in fast NVRAM and cold data in distributed storage devices. This segmentation allows the system to maintain high reliability through distribution while providing fast access for frequently needed data.
Solution Approach 2:
The patent introduces a persistent key-value store as an intermediary layer between the distributed storage system and the compute nodes. This intermediary cache in NVRAM mediates access requests, providing fast access to frequently used data while maintaining the distributed storage architecture for reliability and capacity.
2Speed
If traditional caching methods using NVRAM are used, then access speed is improved, but write amplification increases due to data movement between intermediate and final storage
Solution Approach 1:
The system performs preliminary actions by pre-writing data to the persistent key-value store in NVRAM with metadata including final storage location information. This preliminary action eliminates the need for subsequent data movement, as the data is already positioned for its final destination, reducing write amplification.
Solution Approach 2:
The patent extracts the data movement step from the traditional caching workflow. Instead of moving data from NVRAM cache to distributed storage, the system directly writes to the persistent key-value store which maintains data in NVRAM with references to final storage locations, eliminating redundant data movement operations.
3Reliability
If a persistent key-value store with two-phase commit process is implemented, then data consistency is improved, but system complexity increases
Solution Approach 1:
The two-phase commit process is segmented into distinct phases: Phase 1 writes data to the persistent key-value store and Phase 2 updates the distributed storage. This segmentation provides clear checkpoints for consistency while organizing the complexity into manageable, well-defined stages that can be independently implemented and monitored.
4Productivity
If crash recovery through parallel rebuilding of chains is implemented, then recovery efficiency is improved, but risk of errors during parallel operations increases
Solution Approach 1:
The system implements feedback mechanisms during parallel chain rebuilding, where each parallel operation reports its status and any errors are detected and handled. This feedback allows the system to monitor multiple parallel recovery operations simultaneously, ensuring reliability while maintaining high recovery efficiency through parallelization.
Data Source
AI summary
Techniques are provided for implementing a persistent key-value store for caching client data, journaling, and/or crash recovery. The persistent key-value store may be hosted as a primary cache that provides read and write access to key-value record pairs stored within the persistent key-value store. The key-value record pairs are stored within multiple chains in the persistent key-value store. Journaling is provided for the persistent key-value store such that incoming key-value record pairs are stored within active chains, and data within frozen chains is written in a distributed manner across distributed storage of a distributed cluster of nodes. If there is a failure within the distributed cluster of nodes, then the persistent key-value store may be reconstructed and used for crash recovery.


