Multipathing Driver Kernel Memory Optimization
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Device complexity
If uniformly sized data buckets are used, then device complexity is reduced, but information about metric magnitudes is lost or distorted
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.
Data Source
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.


