KV-SSD Object Grouping Schema for Mixed IO Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Key-value solid state drives (KV-SSDs) face challenges in optimizing input/output (IO) performance when handling a mix of large and small object IOs, often favoring one over the other, resulting in higher latency for small object IOs or lower throughput for large object IOs.
Innovation Solution
The implementation of an object grouping schema within a NVMeoF architecture, where small object IOs are concatenated into groups and treated as single large IOs, allowing them to follow a separate path for processing, optimizing latency and throughput by adjusting threshold sizes and timeout windows.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If KV-SSD processing addresses both large object IOs and small object IOs in the same manner, then processing simplicity is maintained, but IO performance deteriorates due to inability to optimize for different IO sizes
Solution Approach 1:
The patent segments IO processing into separate paths based on object size. Small object IOs are concatenated into groups and processed through a dedicated path with separate parameters (threshold sizes, timeout windows), while large object IOs follow a different path. This segmentation allows each path to be optimized for its specific IO size category, resolving the contradiction between processing simplicity and IO performance.
2Productivity
If KV-SSD processing favors large object IOs, then large object throughput is improved, but small object IO latency increases
Solution Approach 1:
The patent creates separate processing paths for small and large object IOs. The small object path concatenates multiple small IOs into groups and processes them with optimized parameters (smaller threshold sizes, appropriate timeout windows), while the large object path handles big IOs independently. This segmentation prevents large IO processing from blocking small IO completion, simultaneously improving both large object throughput and small object latency.
Solution Approach 2:
The patent implements dynamic parameter adjustment for the object grouping schema. Threshold sizes and timeout windows are configurable and can be adapted based on workload conditions. This dynamic adjustment allows the system to optimize performance for different IO size distributions, preventing the system from being biased toward either small or large objects under varying conditions.
3Loss of time
If KV-SSD processing favors small object IOs, then small object IO latency is reduced, but large object IO throughput decreases
Solution Approach 1:
The patent segments the processing pipeline into distinct paths for small and large objects. The small object path uses parameter optimization (smaller threshold sizes, tailored timeout windows) to minimize latency, while the large object path maintains separate processing logic that preserves throughput. This segmentation ensures that optimization for small objects does not compromise large object performance.
Solution Approach 2:
The patent employs dynamic parameter adjustment where threshold sizes and timeout windows can be configured based on workload characteristics. This allows the system to adapt to different IO size distributions and maintain optimal performance for both small and large objects, preventing bias toward either category under varying operational conditions.
Data Source
Figure 1
Figure 2A
Figure 2B
AI summary
Provided is a method including receiving object input/outputs for a target device (106), grouping the object input/outputs using a first plurality of input parameters, associating a tracking parameter with the first plurality of input parameters and a performance parameter corresponding to the first plurality of input parameters, storing a first data entry including the tracking parameter, the first plurality of input parameters, and the performance parameter in a database (206), extracting a plurality of data entries from the database (206), the plurality of data entries including the first data entry, training (226) a training model using one or more of the plurality of data entries, cross-validating the training model to determine a degree of error reduction of the training model, performing a model check (228) to compare the training model to an inferencing model, and updating (230) the inferencing model based on the model check (228).