Distributed Memory Object Architecture for Low-Latency Data Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current distributed computing solutions fail to provide low-latency access to data objects that span memory and storage across multiple nodes, lacking support for both memory semantics and file storage semantics, which is essential for high-performance computing tasks exceeding DRAM capacity and requiring frequent data movement between memory and storage tiers.
Innovation Solution
The MemVerge DMO system creates a distributed memory object architecture that enables persistent, low-latency data access by forming a cluster of nodes with a node manager, cluster manager, and name service, allowing data to be partitioned into sharable memory spaces accessible via load/store or read/write operations, and supports conversion between in-memory and file-storage modes using RDMA and user-space implementation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If existing distributed storage solutions are used, then storage capacity and availability are improved, but access latency increases and memory-speed data access is not achieved
Solution Approach 1:
The system segments data into chunks that can be distributed across multiple nodes, allowing parallel access and improving availability while maintaining low latency through selective chunk retrieval. Each node maintains local copies of data chunks, enabling concurrent reads without sequential latency accumulation.
Solution Approach 2:
The patent introduces a shared memory object as an intermediary layer between applications and distributed storage. This shared memory object provides memory-like access semantics while underlying storage operates with storage semantics, mediating between speed requirements and availability needs.
2Speed
If memory capacity is increased to handle larger datasets, then data access speed is improved, but system complexity and cost increase
Solution Approach 1:
The system transitions from single-node memory to multi-node distributed memory space, adding the dimension of spatial distribution. This allows virtually unlimited capacity by utilizing network-connected nodes while maintaining memory-speed access through RDMA and shared memory object semantics.
Solution Approach 2:
The shared memory object serves multiple functions: it provides memory-like fast access, enables distributed capacity expansion, supports both volatile and persistent storage modes, and offers unified access semantics across heterogeneous storage tiers, reducing system complexity through consolidation.
3Quantity of substance
If data is stored across multiple nodes to exceed single node capacity, then storage capacity is improved, but data access latency increases
Solution Approach 1:
The system performs preliminary actions by pre-positioning data chunks across multiple nodes and maintaining them in shared memory objects. This allows data to be readily accessible without sequential retrieval delays, as the data is already distributed and ready for immediate access by multiple nodes simultaneously.
Solution Approach 2:
The patent ensures continuous useful action by enabling simultaneous read operations across multiple nodes through RDMA, eliminating sequential access bottlenecks. Multiple nodes can continuously read from the same data chunks in parallel without interruption or contention delays.
4Speed
If RDMA is used to reduce communication latency, then data transfer speed is improved, but system complexity increases
Solution Approach 1:
The shared memory object implements self-service by automatically managing RDMA connections, memory mapping, and data retrieval operations. The system handles RDMA complexity internally through automated page fault handling and memory management, exposing simple memory access semantics to applications while masking the underlying RDMA infrastructure complexity.
Data Source
AI summary
Disclosed herein is an apparatus and method for a distributed memory object system. In one embodiment, a method includes forming a system cluster comprising a plurality of nodes, wherein each node includes a memory, a processor and a network interface to send and receive messages and data, electing a cluster manager to mediates cluster membership, node identification assignment, and a name service group, creating a node manager to initiate services for each of the plurality of nodes, wherein the node manager is configured to notify the cluster manager of its existence and node health, and creating a plurality of sharable memory spaces, wherein each space is a distributed memory object having an object owner node, and partitioning address space within each sharable memory space into chunks, wherein data may be placed in one or more memory regions mapped to the distributed memory object by either of a store call or a write call, and data stored in one or more memory regions mapped to the direct memory object may be accessed by a load call or a read call.


