Client-Side Global Persistent Cache for Distributed Storage Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional distributed storage systems face challenges in meeting performance-driven needs due to long latency and Quality of Service (QoS) issues, primarily because I/O requests traverse multiple layers and devices, affecting data consistency and robustness.

Innovation Solution

Implementing a client-side global persistent cache that writes data to both local and paired mirror caches, reducing the path for I/O operations and using a global data structure for metadata management to synchronize and manage data states, allowing for direct memory access and efficient cache utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is stored in persistent storage with data recovery protection before notifying the host, then data consistency and robustness are improved, but latency increases

Engineering Contradiction:
Improvedata consistency and robustnessVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by writing data to the persistent cache first, then asynchronously replicating to storage servers in the background. The host receives confirmation immediately after the cache write, while the system continues to replicate data to storage servers without blocking the host, thus maintaining data consistency while reducing latency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The storage system is segmented into two independent components: a persistent cache layer for immediate data acceptance and confirmation, and storage servers for background data replication. This segmentation allows the host to proceed without waiting for full replication, reducing latency while maintaining data robustness through the cache's persistent storage capabilities.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If I/O requests traverse multiple layers including client servers, switches, network, and storage servers, then distributed storage functionality is achieved, but latency increases

Engineering Contradiction:
Improvedistributed storage functionalityVSAvoidlatency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The persistent cache extracts the critical data storage function from the traditional storage server path. By placing persistent cache on the host system, the patent removes the need for I/O requests to traverse network switches and storage servers for immediate data acceptance, significantly reducing latency while maintaining distributed storage functionality through background replication.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If data is written to paired mirror caches using direct memory access, then high availability and synchronization speed are improved, but device complexity increases

Engineering Contradiction:
Improvehigh availabilityVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent replaces complex mechanical control systems with direct memory access (DMA) for data replication to paired mirror caches. DMA enables automatic, high-speed data transfer between memory regions without CPU intervention, achieving high availability and synchronization speed while minimizing the complexity of control logic and processing overhead.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10884926B2Method and system for distributed storage using client-side global persistent cache
Publication Date: 2021.01.05 CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PTE LTD
  • US10884926B2 patent drawing
  • US10884926B2 patent drawing
  • US10884926B2 patent drawing

AI summary

One embodiment of the present invention provides a system for facilitating a distributed storage system. The system receives, by a first client-serving machine, a first request to write data. The system writes the data to a first persistent cache associated with the first client-serving machine, wherein a persistent cache includes non-volatile memory. The system records, in an entry in a global data structure, a status for the data prior to completing a write operation for the data in a storage server, wherein the status indicates that the data has been stored in the first persistent cache but has not yet been stored in the storage server.