Adaptive KV-SSD Buffer Management for Mixed Object IO Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Key-value solid state drives (KV-SSDs) face reduced IO performance when handling a mixture of large and small object IOs due to uniform processing, leading to higher latency for small object IOs and lower throughput for large object IOs.

Innovation Solution

A method that adaptively manages object IOs by dispatching them to log and flush buffers, concatenating small object IOs into groups, and transferring them to the target storage device based on timeout windows, maximum object counts, or threshold sizes, with the option to process high-priority data directly, utilizing a field-programmable gate array and linked lists to optimize throughput and latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

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 with higher latency for small object IOs and lower throughput for large object IOs

Engineering Contradiction:
Improveprocessing simplicityVSAvoidIO performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments the processing path by introducing separate handling mechanisms for small and large object IOs. Small object IOs are routed through a log buffer that batches and groups them, while large object IOs proceed directly to the target storage device, creating distinct processing streams that optimize for their respective characteristics

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The log buffer acts as an intermediary component between the incoming IO requests and the target storage device. It receives small object IOs, batches them into object groups, and then transfers them to the target storage device, mediating the interaction to improve performance for both small and large IOs

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If KV-SSD processing favors large object IOs, then throughput for large object IOs improves, but latency for small object IOs increases

Engineering Contradiction:
Improvethroughput for large object IOsVSAvoidlatency for small object IOs
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The processing path is segmented into two separate routes: one for small object IOs that goes through the log buffer for batching, and one for large object IOs that proceeds directly to the target storage device. This segmentation allows each type to receive optimized handling, preventing large IO processing from blocking small IO completion

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The log buffer serves as an intermediary that specifically handles small object IOs by batching them into object groups before transferring to the target storage device. This intermediary mechanism ensures small object IOs are processed efficiently without being blocked by large object IO operations

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If KV-SSD processing favors small object IOs, then latency for small object IOs improves, but throughput for large object IOs decreases

Engineering Contradiction:
Improvelatency for small object IOsVSAvoidthroughput for large object IOs
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The system segments IO processing into dedicated paths: small object IOs are batched in the log buffer to minimize latency, while large object IOs bypass the buffer and go directly to the target storage device to maximize throughput. This segmentation prevents small IO processing from bottlenecking large IO performance

Inventive Principle:
Principle #1Segmentation

4Productivity

If small object IOs are batched and grouped into object groups, then throughput for small object IOs improves, but complexity of the processing system increases

Engineering Contradiction:
Improvethroughput for small object IOsVSAvoidprocessing system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The log buffer is introduced as a simple intermediary component that performs batching and grouping of small object IOs. This single intermediate structure enables improved throughput for small object IOs without requiring complex processing logic throughout the entire system

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The batching and grouping functionality is extracted into a separate log buffer component, isolating the complexity from the main processing path. This extraction allows the target storage device to receive pre-batched object groups without requiring it to implement complex batching logic

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP3859511B1Grouping key value object ios to improve IO performance for key-value storage devices
Publication Date: 2024.04.17 SAMSUNG ELECTRONICS CO LTD
  • EP3859511B1 patent drawingFigure 1
  • EP3859511B1 patent drawingFigure 2
  • EP3859511B1 patent drawingFigure 3

AI summary

Provided is a method of completing object IOs, the method including receiving a first set of object IOs for a target storage device, dispatching the first set of object IOs to a first buffer of a first zone, the first buffer being configured to function as a first log buffer, concatenating the first set of object IOs to form a first object group in the first buffer, logging the first object group to a log device, modifying a function of the first buffer from the first log buffer to a first flush buffer, and transferring the first object group to the target storage device.