Multipathing Driver Kernel Memory Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multipathing drivers in host computing systems are limited by scarce kernel memory, leading to low precision metric storage that impairs performance and loses valuable information about I/O metrics.

Innovation Solution

Assigning metric values to data buckets in kernel memory, where each bucket covers a range of values and is configured as a counter, allowing high precision without consuming excessive memory, and discarding the raw values to free up memory for other uses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If metric values are stored with high precision within the multipathing driver, then measurement precision is improved, but kernel memory consumption increases

Engineering Contradiction:
Improvemetric precisionVSAvoidkernel memory consumption
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent segments the continuous range of metric values into discrete buckets with different precision levels. Each bucket represents a range of values and stores a count rather than individual high-precision values. This segmentation allows the system to maintain adequate measurement precision for path selection while dramatically reducing the memory required to store metric data.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter of metric storage from storing individual high-precision numeric values to storing bucket counts with associated range boundaries. This parameter change transforms the data structure from a memory-intensive format to a compact format that uses significantly less kernel memory while preserving the essential information needed for I/O path selection.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If metric values are moved to external files, then kernel memory consumption is reduced, but I/O performance deteriorates due to overhead

Engineering Contradiction:
Improvekernel memory consumptionVSAvoidI/O performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent extracts only the essential information needed for path selection (bucket counts and range boundaries) and retains it in kernel memory, while discarding the raw high-precision metric values. This extraction approach keeps the critical data structures in fast kernel memory rather than moving them to external files, thereby maintaining I/O performance while achieving memory reduction.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent uses disposable bucket count structures that are inexpensive in terms of memory usage. These bucket counts are updated frequently but require minimal storage space, allowing the system to maintain current metric information in kernel memory without the performance penalty of external file access.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Device complexity

If uniformly sized data buckets are used, then device complexity is reduced, but information about metric magnitudes is lost or distorted

Engineering Contradiction:
Improvebucket structure complexityVSAvoidmetric magnitude information
Core Design Contradiction:
Device complexityVSLoss of information

Solution Approach 1:

The patent applies local quality by using non-uniform bucket sizes that are tailored to the specific metric being measured. For example, latency buckets use smaller ranges for low values and larger ranges for high values, while I/O size buckets use larger ranges for small transfers and smaller ranges for large transfers. This local adaptation preserves metric magnitude information while maintaining manageable complexity through metric-specific optimization.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9778853B1Acquisition and kernel memory storage of I/O metrics
Publication Date: 2017.10.03 EMC IP HLDG CO LLC
  • US9778853B1 patent drawing
  • US9778853B1 patent drawing
  • US9778853B1 patent drawing

AI summary

An improved technique for storing I/O metrics includes assigning metric values to data buckets held in kernel memory. Each data bucket covers a particular range of values of a respective metric and is configured as a counter, whose count is incremented each time the multipathing driver obtains or computes a metric value that falls within the range of the data bucket. Bucket counts can be read by an external program to obtain aggregate information about I/O metrics over time. The aggregate information can be fed back to the multipathing driver to enable improved selections of paths for conveying data to and from a storage array.