Redis Host Memory Access Using CXL Hot-Warm Data Caching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Redis systems face challenges in efficiently expanding memory capacity without incurring high latency or maintenance costs, particularly when dealing with random data access patterns and varying data sizes, and existing scaling methods like SSDs and clusters result in inefficiencies and increased operational costs.

Innovation Solution

Implementing a two-level cache architecture using a CXL device as an extension of host memory, where hot data is stored in DRAM and warm data is evicted to a CXL device, allowing dynamic allocation of memory resources and reducing latency through byte-addressable access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If SSD or persistent memory is used to extend memory capacity, then memory capacity is expanded, but data access latency increases exponentially

Engineering Contradiction:
Improvememory capacityVSAvoiddata access latency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent segments memory into host memory (DRAM) and extended memory (CXL device) portions, with the host memory holding frequently accessed data and the CXL device holding less frequently accessed data, allowing the system to maintain high-speed access for hot data while expanding total capacity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a memory management mechanism that acts as an intermediary between the host memory and CXL device, managing data placement and eviction policies to ensure that data access latency is minimized by keeping frequently accessed data in the fast host memory

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If Redis instances are scaled out by adding more nodes, then memory capacity is expanded, but operation and maintenance costs increase

Engineering Contradiction:
Improvememory capacityVSAvoidoperation and maintenance cost
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent merges multiple Redis instances' memory needs into a single shared CXL memory pool, allowing multiple Redis instances to share the extended memory resources while maintaining their own host memory allocations, thereby reducing the overall complexity and maintenance burden compared to managing separate memory resources for each instance

Inventive Principle:
Principle #5Merging (Combining)

3Quantity of substance

If memory capacity is expanded by adding physical memory to server, then memory capacity is increased, but service is disrupted due to server shutdown requirement

Engineering Contradiction:
Improvememory capacityVSAvoidservice continuity
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent implements a dynamic memory expansion approach where the CXL device can be hot-plugged and dynamically allocated to Redis instances without requiring server shutdown, allowing memory capacity to be increased while maintaining service continuity through online resource allocation

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP4517538B1Method and device for accessing data in host memory
Publication Date: 2025.08.13 SAMSUNG ELECTRONICS CO LTD
  • EP4517538B1 patent drawingFigure 1
  • EP4517538B1 patent drawingFigure 2
  • EP4517538B1 patent drawingFigure 3

AI summary

A method and device for accessing data in a host memory are provided. The method includes: in response to writing first data corresponding to a first Remote Dictionary Server (Redis) instance of a plurality of Redis instances into the host memory, determining whether a remaining host memory capacity for the first Redis instance is sufficient to store the first data, wherein the remaining host memory capacity is based on a difference between maximum capacity of the host memory that is capable of being used by the first Redis and capacity of the host memory that has been used by the first Redis instance; and in response to determining that that the remaining host memory capacity is not sufficient to store the first data, evicting second data of the first Redis instance from the host memory to a Computing Express Link (CXL) device and storing the first data in the host memory.