LRU Buffer Segmentation for Parallel IO Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage virtualization technologies fail to fully utilize the parallel processing potential of multicore platforms, leading to bottlenecks and contention in executing IO requests, as they typically process IO operations serially despite having multiple cores available.

Innovation Solution

The implementation of an LRU buffer management system that configures a doubly linked list of segments, allowing parallel access by multiple CPUs, and includes a head and tail portion for efficient allocation and freeing of buffers, enabling parallel execution of IO requests and bypassing traditional OS IO scheduling for faster processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional sequential IO processing is used, then system simplicity is maintained, but parallel processing potential of multicore platforms is not realized

Engineering Contradiction:
Improveparallel processing potentialVSAvoidbuffer management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The LRU buffer is segmented into multiple doubly-linked lists, each associated with a specific CPU core. This segmentation allows each core to independently manage its own buffer list without contention, enabling parallel processing while maintaining LRU eviction semantics across the entire buffer pool.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to buffer management by organizing buffers not just in a single LRU sequence, but in a multi-dimensional structure where buffers are distributed across multiple CPU-specific lists. This allows parallel access from multiple cores simultaneously without interfering with each other.

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

2Productivity

If a single LRU buffer list is used, then buffer management is simple, but contention occurs when multiple CPUs access it simultaneously

Engineering Contradiction:
ImproveCPU resource utilizationVSAvoidbuffer access contention
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The buffer management structure is segmented into multiple independent doubly-linked lists, one for each CPU core. This eliminates contention by providing each core with its own dedicated access path to the buffer pool, while still maintaining global LRU eviction semantics through periodic consolidation or coordinated management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces intermediary structures (multiple CPU-specific buffer lists) that mediate between the multiple CPUs and the shared buffer pool. These intermediaries allow parallel access while maintaining the overall LRU buffer management semantics, acting as a buffer between the competing access patterns.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If OS IO scheduling is used, then request processing follows traditional sequencing, but latency increases due to serial execution

Engineering Contradiction:
ImproveIO request processing speedVSAvoidrequest latency
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent extracts the buffer management functionality from the traditional OS IO scheduling path, creating a dedicated parallel buffer management system that operates independently of the serial OS scheduling layer. This allows IO requests to be serviced in parallel without being constrained by traditional OS scheduling sequences.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Buffers are pre-allocated and organized in CPU-specific lists before IO requests arrive. This preliminary organization allows immediate parallel access when requests come in, eliminating the need for serial allocation and reducing latency.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10740028B1Methods and apparatus for LRU buffer management in performing parallel IO operations
Publication Date: 2020.08.11 DATACORE SOFTWARE CORP
  • US10740028B1 patent drawing
  • US10740028B1 patent drawing
  • US10740028B1 patent drawing

AI summary

An LRU buffer configuration for performing parallel IO operations is disclosed. In one example, the LRU buffer configuration is a doubly linked list of segments. Each segment is also a doubly linked list of buffers. The LRU buffer configuration includes a head portion and a tail portion, each including several slots (pointers to segments) respectively accessible in parallel by a number of CPUs in a multicore platform. Thus, for example, a free buffer may be obtained for a calling application on a given CPU by selecting a head slot corresponding to the given CPU, identifying the segment pointed to by the selected head slot, locking that segment, and removing the buffer from the list of buffers in that segment. Buffers may similarly be returned according to slots and corresponding segments and buffers at the tail portion.