Method and system for input/output (IO) scheduling in a storage system

US10216660B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10216660-B1
Application numberUS-201715649580-A
CountryUS
Kind codeB1
Filing dateJul 13, 2017
Priority dateJul 13, 2017
Publication dateFeb 26, 2019
Grant dateFeb 26, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

According to some embodiment, a backup storage system receives a plurality of input/output (IO) requests at the storage system. The IO requests include random IO requests and sequential IO requests. The storage system determines whether there is a pending random IO request from the plurality of IO requests. In response to determining that there is a pending random IO request, the storage system determines whether a total latency of the sequential IO requests exceeds a predicted latency of the pending random IO request. The storage system services the pending random IO request in response to determining that the total latency of the sequential IO requests exceeds the predicted latency of the pending random IO request.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method for input/output (IO) scheduling for a storage system, the method comprising: receiving a plurality of input/output (IO) requests at the storage system, the IO requests including random IO requests and sequential IO requests; determining whether there is a pending random IO request from the plurality of IO requests; in response to determining that there is a pending random IO request, determining whether a total latency of the sequential IO requests exceeds a predicted latency of the pending random IO request; and servicing the pending random IO request in response to determining that the total latency of the sequential IO requests exceeds the predicted latency of the pending random IO request. 2. The method of claim 1 , further comprising for each of the IO requests, determining whether the IO request is a sequential IO request or a random IO request; storing the IO request in an entry of a first data structure in response to determining that the IO request is a random IO request; and storing the IO request in an entry of a second data structure in response to determining that the IO request is a sequential IO request. 3. The method of claim 1 , further comprising servicing the random IO requests and the sequential IO request(s) at an equal rate in response to determining that the total latency of the sequential IO requests does not exceed the predicted latency of the pending random IO request. 4. The method of claim 2 , wherein the pending random IO request is stored in a head entry of the first data structure. 5. The method of claim 1 , further comprising computing the total latency of the sequential IO requests based on seek time of one or more storage devices in the storage system. 6. The method of claim 1 , further comprising associating a predicted latency with each of the random IO requests. 7. The method of claim 1 , wherein the predicted latency of the pending random IO request is extracted from the pending random IO request. 8. A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations for, the operations comprising: receiving a plurality of input/output (IO) requests at the storage system, the IO requests including random IO requests and sequential IO requests; determining whether there is a pending random IO request from the plurality of IO requests; in response to determining that there is a pending random IO request, determining whether a total latency of the sequential IO requests exceeds a predicted latency of the pending random IO request; and servicing the pending random IO request in response to determining that the total latency of the sequential IO requests exceeds the predicted latency of the pending random IO request. 9. The non-transitory machine-readable medium of claim 8 , wherein the operations further comprise: for each of the IO requests, determining whether the IO request is a sequential IO request or a random IO request; storing the IO request in an entry of a first data structure in response to determining that the IO request is a random IO request; and storing the IO request in an entry of a second data structure in response to determining that the IO request is a sequential IO request. 10. The non-transitory machine-readable medium of claim 8 , wherein the operations further comprise servicing the random IO requests and the sequential IO request(s) at an equal rate in response to determining that the total latency of the sequential IO requests does not exceed the predicted latency of the pending random IO request. 11. The non-transitory machine-readable medium of claim 9 , wherein the pending random IO request is stored in a head entry of the first data structure. 12. The non-transitory machine-readable medium of claim 8 , wherein the operations further comprise computing the total latency of the sequential IO requests based on seek time of one or more storage devices in the storage system. 13. The non-transitory machine-readable medium of claim 8 , wherein the operations further comprise associating a predicted latency with each of the random IO requests. 14. The non-transitory machine-readable medium of claim 8 , wherein the predicted latency of the pending random IO request is extracted from the pending random IO request. 15. A data processing system, comprising: a processor; and a memory coupled to the processor to store instructions, which when executed by the processor, cause the processor to perform operations, the operations comprising: receiving a plurality of input/output (IO) requests at the storage system, the IO requests including random IO requests and sequential IO requests; determining whether there is a pending random IO request from the plurality of IO requests; in response to determining that there is a pending random IO request, determining whether a total latency of the sequential IO requests exceeds a predicted latency of the pending random IO request; and servicing the pending random IO request in response to determining that the total latency of the sequential IO requests exceeds the predicted latency of the pending random IO request. 16. The data processing system of claim 15 , wherein the operations further comprise: for each of the IO requests, determining whether the IO request is a sequential IO request or a random IO request; storing the IO request in an entry of a first data structure in response to determining that the IO request is a random IO request; and storing the IO request in an entry of a second data structure in response to determining that the IO request is a sequential IO request. 17. The data processing system of claim 15 , wherein the operations further comprise servicing the random IO requests and the sequential IO request(s) at an equal rate in response to determining that the total latency of the sequential IO requests does not exceed the predicted latency of the pending random IO request. 18. The data processing system of claim 16 , wherein the pending random IO request is stored in a head entry of the first data structure. 19. The data processing system of claim 15 , wherein the operations further comprise computing the total latency of the sequential IO requests based on seek time of one or more storage devices in the storage system. 20. The data processing system of claim 15 , wherein the operations further comprise associating a predicted latency with each of the random IO requests.

Assignees

Inventors

Classifications

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • G06F13/20Primary

    for access to input/output bus · CPC title

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

  • G06F3/061Primary

    Improving I/O performance · CPC title

  • Plurality of storage devices · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10216660B1 cover?
According to some embodiment, a backup storage system receives a plurality of input/output (IO) requests at the storage system. The IO requests include random IO requests and sequential IO requests. The storage system determines whether there is a pending random IO request from the plurality of IO requests. In response to determining that there is a pending random IO request, the storage system…
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F13/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 26 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).