CPU Core Affinity LBA Slicing for Storage Cluster Lock Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern storage clusters based on multiple CPU core hardware architecture face performance degradation due to frequent synchronization and locking actions required for consistent operations on common resources, leading to lock contention and reduced cluster performance.

Innovation Solution

The method involves partitioning resources between CPU cores by dividing a logical block address (LBA) space into slices with affinity to specific CPU cores, allowing IO flow processing to be handled by the associated CPU cores without the need for synchronization, thereby minimizing lock contention and optimizing memory access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple CPU cores are used for parallel processing, then processing throughput is improved, but lock contention increases due to frequent synchronization actions on common resources

Engineering Contradiction:
Improveprocessing throughputVSAvoidlock contention time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The LBA address space is segmented into multiple slices, with each slice assigned to a specific CPU core. This segmentation allows each core to independently process IO flows within its assigned slice without requiring synchronization with other cores, thereby eliminating lock contention while maintaining parallel processing capability

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each CPU core is assigned a specific LBA slice with exclusive access rights, creating local quality differentiation where each core has optimized access to its designated address space portion. This local ownership eliminates the need for global synchronization mechanisms and reduces inter-core interference

Inventive Principle:
Principle #3Local quality

2Adaptability or versatility

If resources are shared among CPU cores, then resource utilization is improved, but synchronization overhead increases

Engineering Contradiction:
Improveresource utilizationVSAvoidsynchronization complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The shared LBA address space is divided into discrete slices that are distributed among CPU cores. Each slice is independently managed by its owning core, allowing high resource utilization through parallel processing while eliminating the need for complex synchronization protocols between cores

Inventive Principle:
Principle #1Segmentation

3Productivity

If LBA address space is divided into slices with CPU core affinity, then lock contention is reduced, but address space management complexity increases

Engineering Contradiction:
Improvecluster performanceVSAvoidaddress space management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system changes the parameter of LBA address assignment by incorporating slice identification bits into the LBA structure. This parameter change enables automatic determination of owning CPU core based on address bits, simplifying the management of address space slices while maintaining performance benefits

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11385941B2System and method for address space slicing with strong CPU core affinity
Publication Date: 2022.07.12 EMC IP HLDG CO LLC
  • US11385941B2 patent drawing
  • US11385941B2 patent drawing
  • US11385941B2 patent drawing

AI summary

A method, computer program product, and computer system for partitioning, by a computing device, resources between a plurality of central processing unit (CPU) cores. A logical block address (LBA) space of a user may be divided into a slice with an affinity to a CPU core of the plurality of CPU cores. IO flow processing may be processed by the CPU core of the plurality of CPU cores associated with the LBA space divided into the slice.