Cluster-Level Cache and Memory Abstraction for Persistent Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cloud computing environments require applications to manage block-level data access on persistent storage drives, which complicates resource utilization and hinders optimization, as applications need to coordinate with underlying hardware and infrastructure software for efficient resource allocation.

Innovation Solution

A system and method that provide a cluster-level cache and memory infrastructure, allowing applications to operate in a byte-addressable virtual memory space without direct interaction with persistent storage, using a hierarchy of caches and memories across compute and storage nodes, with a master node managing memory allocation and replication for high availability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If applications directly manage block-level data access on persistent storage drives, then data persistence is ensured, but application complexity increases and resource utilization efficiency decreases

Engineering Contradiction:
Improvedata persistenceVSAvoidapplication complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a cluster-level cache and memory infrastructure that acts as an intermediary layer between applications and persistent storage drives. This abstraction layer manages block-level data access operations, allowing applications to interact with a simplified interface while the intermediary handles the complexity of persistent storage management, thus reducing application complexity while maintaining data persistence.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the storage hierarchy into multiple layers: persistent storage drives, cluster memory, and cluster cache. By dividing the storage system into distinct segments with different characteristics, the patent allows applications to interact with higher-level abstractions while lower-level persistent storage operations are managed separately by the infrastructure, reducing application complexity.

Inventive Principle:
Principle #1Segmentation

2Reliability

If applications directly manage block-level data access on persistent storage drives, then data persistence is ensured, but resource utilization efficiency decreases

Engineering Contradiction:
Improvedata persistenceVSAvoidresource utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges multiple persistent storage drives across different compute nodes into a unified cluster-level memory and cache space. This consolidation allows for more efficient resource utilization by pooling storage resources at the cluster level, enabling better load balancing and resource allocation while maintaining data persistence through the underlying persistent storage infrastructure.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The cluster-level cache and memory infrastructure serves multiple functions simultaneously: it provides data persistence, enables efficient resource allocation, facilitates load balancing, and offers a simplified interface for applications. This multi-functionality improves resource utilization efficiency while maintaining data persistence without requiring applications to directly manage block-level access.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If cluster-level cache and memory infrastructure is introduced, then application efficiency improves and persistent storage operations are reduced, but system complexity increases

Engineering Contradiction:
Improveapplication efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The cluster-level cache and memory infrastructure acts as an intermediary that absorbs system complexity, allowing applications to interact with a simplified interface. The intermediary layer handles complex operations such as data allocation, caching strategies, and persistence management, thereby improving application efficiency while containing system complexity within the infrastructure layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If compute nodes use their own persistent storage drives for cluster cache, then resource utilization improves, but data consistency across nodes becomes more challenging

Engineering Contradiction:
Improveresource utilizationVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The patent implements a master node that coordinates data allocation across compute nodes and maintains mappings between virtual addresses and physical storage locations. This centralized coordination provides feedback mechanisms that ensure data consistency across distributed persistent storage drives while allowing each node to utilize its local resources, thus maintaining both resource utilization and data consistency.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10747673B2System and method for facilitating cluster-level cache and memory space
Publication Date: 2020.08.18 CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PTE LTD
  • US10747673B2 patent drawing
  • US10747673B2 patent drawing
  • US10747673B2 patent drawing

AI summary

Embodiments described herein provide a system for facilitating cluster-level cache and memory in a cluster. During operation, the system presents a cluster cache and a cluster memory to a first application running on a first compute node in the cluster. The system maintains a first mapping between a first virtual address of the cluster cache and a first physical address of a first persistent storage of the first compute node. The system maintains a second mapping between a second virtual address of the cluster memory and a second physical address of a second persistent storage of a first storage node of the cluster. Upon receiving a first memory allocation request for cache memory from the first application, the system allocates a first memory location corresponding to the first physical address. The first application can be configured to access the first memory location based on the first virtual address.