Shared Memory Allocation Manager for Disaggregated Data Centers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data centre architectures face inefficiencies in managing memory allocation, leading to excessive resource usage, network congestion, and latency due to unnecessary data duplication and slow storage access in distributed computing systems.

Innovation Solution

A memory allocation manager that determines and allocates shared memory blocks based on the internal relationships between instances, reducing data duplication and enabling direct access from shared RAM, thereby optimizing memory usage and network transactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is copied to local memory for each instance in distributed computing, then each instance can access data independently, but memory usage and network bandwidth are excessively consumed

Engineering Contradiction:
Improvedata access speedVSAvoidmemory usage
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent merges memory resources by implementing a shared memory pool that is accessible by multiple instances simultaneously, eliminating the need for each instance to have its own separate copy of the same data in local memory

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared memory pool serves multiple instances universally, allowing the same memory space to be used by different instances for their respective data processing tasks, thereby reducing overall memory consumption

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

2Adaptability or versatility

If data is flushed from producer instance cache to shared storage and then fetched by consumer instances, then data can be shared between instances, but I/O operations and network bandwidth are consumed

Engineering Contradiction:
Improvedata sharing capabilityVSAvoidI/O and network bandwidth consumption
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The patent extracts the intermediate storage step by allowing producer instances to allocate memory directly in the shared memory pool, eliminating the need to flush data to persistent shared storage and then fetch it back for consumer instances

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The shared memory pool acts as an intermediary between producer and consumer instances, enabling direct memory allocation and access without involving the slower shared storage tier and reducing network I/O operations

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If multiple levels of memory transactions and storage node retrieval are used, then data can be accessed from distributed storage, but latency increases

Engineering Contradiction:
Improvedata retrieval capabilityVSAvoiddata access latency
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent segments memory access into direct shared memory transactions, separating the fast path for frequently accessed data from the slower storage tier, thereby reducing latency for common operations

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-allocating memory blocks in the shared memory pool before data production, enabling immediate data placement and direct access by consumer instances without subsequent retrieval delays

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3602309B1A memory allocation manager and method performed thereby for managing memory allocation
Publication Date: 2023.08.09 TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
  • EP3602309B1 patent drawingFigure 1a
  • EP3602309B1 patent drawingFigure 1b
  • EP3602309B1 patent drawingFigure 2a~2b

AI summary

A memory allocation manager and a method performed thereby for managing memory allocation, within a data centre, to an application are provided. The data centre comprises at least a Central Processing Unit, CPU, pool and at least one memory pool. The method comprises receiving (210) information associated with a plurality of instances associated with an application to be initiated, wherein individual instances are associated with individual memory requirements, the information further comprising information about an internal relationship between the instances; and determining (230) for a plurality of instances, a minimum number of memory blocks and associated sizes required based on the received information, by identifying parts of memory blocks and associated sizes that may be shared by two or more instances based on their individual memory requirements and/or the internal relationship between the instances. The method also comprises allocating (240) a number of memory blocks to the instances of the application based on the determined minimum number of memory blocks.