RDP Metadata Space Allocation for IO Thread Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The frequent creation of snapshots in data storage systems leads to significant resource burdens, particularly in memory allocation for replication data pointers (RDPs), causing contention among memory consumers due to the need for frequent allocation of memory space.

Innovation Solution

A system comprising shared memory and multi-core processors with uniquely associated IO threads, where each IO thread is allocated no more than one RDP page at a time, with RDP pages configured to accommodate metadata for targetless snapshots, and a method for allocating and recycling these pages to reduce latency and contention by using ranked lists of unallocated pages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If snapshots are created frequently with targetless snapshots using RDPs, then data protection capability is improved, but memory allocation contention increases

Engineering Contradiction:
Improvedata protection capabilityVSAvoidmemory allocation contention
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The shared memory space for RDP metadata is segmented into multiple RDP pages, each allocated to a specific IO thread. This segmentation isolates memory access patterns of different threads, preventing contention while maintaining frequent snapshot creation capability across multiple storage objects.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of thread-local memory allocation by assigning dedicated RDP pages to each IO thread. This transforms the traditional single-shared memory model into a multi-dimensional allocation scheme where each thread operates in its own memory subspace, eliminating contention while preserving data protection functionality.

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

2Productivity

If memory space is frequently allocated for RDPs in targetless snapshots, then snapshot creation speed is improved, but latency due to allocation contention increases

Engineering Contradiction:
Improvesnapshot creation speedVSAvoidallocation latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

RDP pages are pre-allocated and maintained in a pool structure before being needed. When an IO thread needs to create a snapshot, it can immediately obtain a pre-prepared page from the pool without undergoing allocation contention, thereby maintaining high snapshot creation speed while eliminating allocation latency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Each IO thread maintains its own dedicated RDP page and manages its own metadata allocations within that page. This self-service approach eliminates the need for threads to compete for shared memory resources, allowing each thread to operate independently and maintain high productivity without allocation delays.

Inventive Principle:
Principle #25Self-service

3Quantity of substance

If multiple IO threads share the same memory space for RDP metadata, then memory utilization is improved, but access contention increases

Engineering Contradiction:
Improvememory utilizationVSAvoidaccess contention
Core Design Contradiction:
Quantity of substanceVSEase of operation

Solution Approach 1:

The shared memory space is divided into separate RDP pages, with each page assigned to a specific IO thread. This segmentation allows multiple threads to simultaneously use memory without interfering with each other, maintaining high memory utilization across the system while eliminating access contention through spatial isolation.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12259793B2Allocating system RDP metadata space with IO performance priority
Publication Date: 2025.03.25 DELL PROD LP
  • US12259793B2 patent drawing
  • US12259793B2 patent drawing
  • US12259793B2 patent drawing

AI summary

Memory management processes allocate and recycle pages of replication data pointer (RDP) metadata space in shared memory. When the RDP page currently allocated to an IO thread becomes full, that RDP page is released, and a new RDP page is allocated to the IO thread. The released page eventually becomes fragmented and is added to a list of RDP pages that are ranked based on partial fullness. An IO thread that needs a new RDP page is allocated a mostly empty RDP page from the ranked list, if such a page is available. Otherwise, a new completely empty RDP page is allocated to the IO thread. Use of the ranked lists reduces latency associated with allocation of new RDP pages. Contention between IO threads for RDP metadata space is reduced because each IO thread has exclusive rights to the free RDP metadata space in its currently allocated page.