Write Cache Replication Across Replica Sets for Host Failure Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cloud storage environments face challenges in ensuring reliable and efficient storage I/O operations, particularly in virtual machines (VMs) and containers, due to issues such as network instability and the potential loss of cached writes during host failures, which can impact data reliability and availability.
Innovation Solution
A host cache service utilizing PMem and NVMe technologies replicates cached writes across hosts, employing a replication model with separate data and metadata rings to ensure strong consistency and non-blocking write committing, and dynamically switches between write caching and pass-through modes to handle failures and optimize performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If write caching is enabled to improve storage I/O performance, then write speed is improved, but data reliability deteriorates due to potential loss of cached writes during host failures
Solution Approach 1:
The patent implements replication of cached write data from a primary host to secondary hosts. When a write operation is cached, it is copied to replica ring buffers on secondary hosts, ensuring that if the primary host fails, the data can be recovered from the replicas, thus maintaining data reliability while preserving write performance benefits
Solution Approach 2:
The system prepares for potential host failures by pre-replicating cached data to secondary hosts before failures occur. The replica ring buffers are pre-configured on secondary hosts, and data is proactively copied there, cushioning against the harmful effect of host failures and ensuring data availability without impacting write performance
2Reliability
If data is replicated to secondary ring buffers to improve data reliability, then data availability is improved, but network bandwidth consumption increases
Solution Approach 1:
The patent implements partial replication where only the necessary portion of data is replicated to secondary hosts. The system replicates data to secondary ring buffers until a threshold is reached or replication succeeds, avoiding excessive network traffic while ensuring sufficient redundancy for data availability
Solution Approach 2:
The system performs preliminary replication of cached writes to secondary hosts as part of the normal write path. By integrating replication into the write caching flow, the system efficiently utilizes network bandwidth during off-peak times and avoids additional network overhead during failure recovery scenarios
3Reliability
If replication is implemented across multiple hosts to improve fault tolerance, then system robustness is improved, but system complexity increases
Solution Approach 1:
The patent segments the replication system into distinct components: primary ring buffer on the primary host, secondary ring buffers on secondary hosts, and a management service. This segmentation allows each component to be independently managed and simplified, reducing overall system complexity while maintaining fault tolerance through distributed architecture
Solution Approach 2:
The replication system implements self-service mechanisms where the primary host automatically manages replication to secondary hosts without requiring complex external orchestration. The system autonomously handles failure detection, data replication, and recovery, simplifying management while ensuring robust fault tolerance
Data Source
AI summary
Caching write input/output (I/O) operations in a replica-based storage system. A write I/O operation is received from a consumer, and a corresponding replica list is identified. A first replica set is selected from the replica list for caching the I/O operation, and a first log corresponding to the I/O operation is added to a primary ring buffer of the first replica set. When the first log cannot be replicated to a secondary ring buffer of the first replica set, a second replica set is selected from the replica list for caching the I/O operation. A second log corresponding to the I/O operation is added to a primary ring buffer of the second replica set. Once the second log has been replicated to a secondary ring buffer of the second replica set, the I/O operation is acknowledged to the consumer, and the second log is de-staged to a backing store.


