Cluster-Level Cache and Memory Abstraction for Persistent Storage
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If applications directly manage block-level data access on persistent storage drives, then data persistence is ensured, but resource utilization efficiency decreases
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.
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.
3Productivity
If cluster-level cache and memory infrastructure is introduced, then application efficiency improves and persistent storage operations are reduced, but system complexity increases
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.
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
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.
Data Source
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.


