Browse Prior Art Database

A predicted scheduling method of tuning IO request QoS levels dynamically Disclosure Number: IPCOM000248954D
Publication Date: 2017-Jan-24
Document File: 5 page(s) / 82K

Publishing Venue

The Prior Art Database


This article describes a method to improve the efficiency of serving IO services of different QoS levels. It describes a method to predict IO request attributes, dynamically determine the numbers of different QoS levels and ratio of different IO queues' priority.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 49% of the total text.


A predicted scheduling method of tuning IO request QoS levels dynamically

Main Idea

The IO(Input/Output) Scheduling mechanism acts as a buffer between all of the device clients and the device controller which at its bottom has the actual read/write to the physical device. The assumption behind IO scheduling is that devices are a major bottle-neck in the process of serving read & write requests. Since the device cannot serve all of the requests as soon as they come, some of these requests have to be delayed. The role of IO scheduling is deciding the order of request execution, or, which request should be served as soon as possible and which request should be delayed. This process of decides the order of request execution can have great impact on overall system performance. Logical IO Scheduler in in user space define the logical IO sequence according to different user processes to balance the logical resources' usage. Device IO Scheduler in kernel space should converts IO requests into IO instruction to related device. e.g. disk IO scheduler can convert IO requests into SCSI IO instruction to HDD(Hard Disk Drive). see Pic-1


Pic-1 IO Hierarchical Diagram There're many disk IO scheduling methods: e.g. SSTF(Shortest Seek Time First), SCAN(Scan algorithm is also called elevator algorithm in disk scheduling algorithm to determine the motion of the disk's arm and head in servicing read and write requests), N-Step-SCAN(The algorithm segments the request queue into subqueues of length N based on elevator algorithm), etc. Out of existing methods, the most service guaranteed method is N-Step-SCAN. So Logical IO Scheduler can use N-Step-SCAN to tradeoff all IO requests. But since N should be pre-determined. The value of N should be set properly according to requests' priority. Note that one of the prerequisites for the assumption to be correct is to tune the queues in such way that the incoming queue depth is bigger than the device (lower level driver ) queue depth. The incoming queue depth in this solution is the sum of all client queues(from different QoS Levels) that belong to the device. Typical IO schedulers use properties such as IO logical address, IO size & IO direction (read/write) and use some kind of elevator algorithm e.g. N-Step-SCAN to order IOs in a way is assumed to be optimal when the underlying hardware is a rotational disk.

Pic-2 IO queue statistics analyzer

In this solution, there's a statistics analyzer (See. Pic-2) in Logical IO Scheduler to do the statistics of the clients queues according to previous SCAN cycles. According to statistics result, Logical IO Scheduler will decide the suitable QoS(Quality of Service) level number and tune the number of QoS level dynamically.

Pic-3 Queues of differet levels e.g. N=5, here assumpt each queue has same weight


e.g. There're 5 levels' queues. L1 stands for most critical IO, while L5 stands for least critical IO. Logical IO scheduler will round robin to scan all the queues (See. Pic-3)...