CPU Core Affinity LBA Slicing for Storage Cluster Lock Contention
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Adaptability or versatility
If resources are shared among CPU cores, then resource utilization is improved, but synchronization overhead increases
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
3Productivity
If LBA address space is divided into slices with CPU core affinity, then lock contention is reduced, but address space management complexity increases
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
Data Source
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.


