Storage Scheduler Cross-Charging for Independent IOPS and MBPS Limits
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Network storage systems face challenges in rate limiting and resource allocation due to independent operation of read and write flow scheduler queues, which lack knowledge of IOs served by other queues, leading to inefficient resource utilization and difficulty in cross-charging costs across multiple processing cores.
Innovation Solution
Implementing a shared currency system that allows each flow scheduler to account for and cross-charge costs incurred by other schedulers, enabling fair resource allocation and rate limiting across all schedulers accessing a common storage system portion.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If independent flow scheduler queues are used for read and write operations, then each queue can operate autonomously, but rate limiting and resource allocation become inefficient due to lack of knowledge about IOs served by other queues
Solution Approach 1:
The patent merges independent flow scheduler queues into a unified scheduling framework where multiple queues (read, write, background) are coordinated through a common cost accumulation mechanism. Each queue scheduler contributes to and draws from a shared cost pool, enabling global rate limiting while maintaining individual queue autonomy. This resolves the contradiction by combining independent operations with centralized resource management.
Solution Approach 2:
The patent implements feedback loops where each flow scheduler continuously monitors the accumulated cost from all queues and adjusts its scheduling decisions accordingly. When the total cost exceeds thresholds, feedback signals prevent further IO admissions across all queues. This feedback mechanism enables efficient rate limiting while preserving queue independence, as each queue responds to global conditions without direct interference in others' operations.
2Adaptability or versatility
If multiple flow schedulers access the same storage portion independently, then each scheduler can manage its own queue, but cross-charging costs across multiple processing cores becomes difficult
Solution Approach 1:
The patent introduces an intermediary cost accumulation mechanism that mediates between independent flow schedulers on multiple cores. Each scheduler reports its IO costs to a shared cost pool, and the intermediary mechanism aggregates these costs globally. This intermediary layer enables cross-charging across cores without requiring direct complex interactions between schedulers, maintaining scheduler independence while simplifying cost accounting.
Solution Approach 2:
The patent creates a universal cost accounting framework that serves multiple flow schedulers simultaneously. The same cost accumulation and threshold evaluation mechanism is universally applied across all queues and cores, providing a consistent method for cross-charging. This universal approach reduces complexity by using a single cost management system rather than separate accounting mechanisms for each scheduler.
3Productivity
If rate limiting is applied to the entire flow across all schedulers, then resource allocation can be controlled, but it is challenging because queues act independently and no single queue has knowledge of IOs served by other queues
Solution Approach 1:
The patent adds a new dimension to rate limiting by introducing a global cost accumulation space that transcends individual queue boundaries. Instead of limiting each queue separately (one-dimensional approach), the system accumulates costs across all queues in a shared dimensional space and applies rate limiting thresholds at this higher level. This dimensional change enables holistic resource control while maintaining queue independence, as the additional cost dimension provides the missing visibility without requiring complex inter-queue communication.
Data Source
AI summary
Methods for scheduling operations in a scheduler hierarchy of a storage system. One method includes scheduling a first IO having a first cost at a first flow scheduler of a first flow configured to schedule IOs accessing a volume as executed on a first core processor. A global cost is updated with the first cost, wherein the global cost is shared by a plurality of flows of a plurality of core processors. An intervening cost is determined of at least one IO possibly scheduled before the first set of IOs by one or more flow schedulers of one or more flows configured to schedule IOs accessing the volume as executed on the plurality of core processors. A current cost is updated based on the first cost and the intervening cost. IOs and MBPS limits are set independently for the volume, each controlling scheduling through a corresponding accumulating current cost.


