Distributed Memory Object Architecture for Low-Latency Data Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveavailabilityVSAvoidaccess latency
Core Design Contradiction:
ReliabilityVSSpeed

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If memory capacity is increased to handle larger datasets, then data access speed is improved, but system complexity and cost increase

Engineering Contradiction:
Improvedata access speedVSAvoidsystem complexity
Core Design Contradiction:
SpeedVSDevice complexity

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

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.

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

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

Engineering Contradiction:
Improvestorage capacityVSAvoidaccess time
Core Design Contradiction:
Quantity of substanceVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #20Continuity of useful action

4Speed

If RDMA is used to reduce communication latency, then data transfer speed is improved, but system complexity increases

Engineering Contradiction:
Improvedata transfer speedVSAvoidsystem complexity
Core Design Contradiction:
SpeedVSDevice complexity

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.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11061609B2Distributed memory object method and system enabling memory-speed data access in a distributed environment
Publication Date: 2021.07.13 MEMVERGE INC
  • US11061609B2 patent drawing
  • US11061609B2 patent drawing
  • US11061609B2 patent drawing

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.