Host-Specific Token Bucket for Storage QoS

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage systems lack an effective end-to-end priority classification mechanism for I/O requests, leading to inefficient resource allocation and potential delays in processing mission-critical applications, as they typically only support LUN-based token bucket algorithms that do not consider real-time host priority requirements.

Innovation Solution

Implementing a method that associates I/O requests with token buckets based on host I/O priority information, where tokens are added at different rates corresponding to priority levels, allowing requests to be sent down a block stack for processing only if sufficient tokens are available, and rejecting requests if not, thereby enabling priority-based queuing in both multi-core cache and RAID portions of the block stack.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If LUN-based token bucket algorithm is used for I/O request management, then resource allocation is simplified, but real-time host priority requirements cannot be met

Engineering Contradiction:
Improvepriority-based I/O handlingVSAvoidI/O request management mechanism
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the single LUN-based token bucket into multiple host-specific token buckets, where each host has its own token bucket that can be independently controlled. This segmentation allows the system to track and manage I/O requests from different hosts separately, enabling priority-based differentiation while maintaining the simplicity of the token bucket mechanism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a new dimension to the token bucket algorithm by introducing host identification as an additional parameter. Instead of a single LUN-based bucket, the system now maintains token buckets indexed by both LUN and host ID, creating a two-dimensional structure that enables priority-based I/O handling while preserving the original algorithm's efficiency.

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

2Reliability

If all I/O requests are processed equally without priority classification, then system simplicity is maintained, but mission-critical applications experience delays

Engineering Contradiction:
Improvemission-critical application processingVSAvoidpriority classification mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements preliminary action by classifying I/O requests into different priority levels before they enter the processing queue. The host priority information is extracted and used to select appropriate token buckets and queue depths in advance, ensuring that mission-critical applications receive preferential treatment before any processing occurs, rather than attempting to prioritize during processing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism in the form of priority queues with different queue depths that mediate between incoming I/O requests and the processing system. These queues act as buffers that can hold different amounts of requests based on priority, allowing the system to maintain simplicity in the core processing logic while still providing priority-based handling through the intermediary queue structure.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If token buckets are managed at LUN level only, then implementation is straightforward, but host-specific QoS requirements cannot be satisfied

Engineering Contradiction:
ImproveI/O processing efficiencyVSAvoidhost priority support
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the token bucket management from a single LUN-level structure into a hierarchical structure where each host has its own token bucket within each LUN. This segmentation enables the system to track token consumption and replenishment at the host level, allowing different hosts to have different QoS parameters and priority levels while maintaining efficient I/O processing through the token bucket mechanism.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10496333B2System and method for end to end QoS solution for data storage systems
Publication Date: 2019.12.03 EMC IP HLDG CO LLC
  • US10496333B2 patent drawing
  • US10496333B2 patent drawing
  • US10496333B2 patent drawing

AI summary

A method, computer program product, and computer system for receiving, by a computing device, an I/O request, wherein the I/O request may include host I/O priority information. It may be determined that the I/O request is associated with a token bucket of a plurality of token buckets based upon, at least in part, the host I/O priority information. If the token bucket of the plurality of token buckets has sufficient tokens for the I/O request, the I/O request may be sent down a block stack for processing, and if the token bucket of the plurality of token buckets has insufficient tokens for the I/O request, the I/O request may be rejected.