IP Library Granted Patent US 10,013,283
Granted Patent B1
US 10,013,283 · App. 15/236,902 · Granted Jul 3, 2018

Methods and apparatus for data request scheduling in performing parallel IO operations

Inventors: Nicholas C. Connolly (Purley, GB); Robert Bassett (Pensacola, FL); Ziya Aral (Pompano Beach, FL); Roni J. Putra (Pompano Beach, FL)
Assignee: DataCore Software Corporation
G06F9/4881G06F3/0619G06F3/0665G06F3/0689G06F12/0888G06F2212/6046
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,013,283
App. No.
15/236,902
Granted
Jul 3, 2018
Kind
B1
Abstract

Methods and apparatus for data request scheduling in performing parallel IO operations are disclosed. In one example, IO requests directed to an operating system having an IO scheduling component are processed. There, an IO request directed from an application to the operating system is intercepted. A determination is made whether the IO request is subject to immediate processing using available parallel processing resources. When it is determined that the IO request is subject to immediate processing using the available parallel processing resources, the IO scheduling component of the operating system is bypassed. The IO request is directly and immediately processed and passed back to the application using the available parallel processing resources.

Claims (54)

1. A method for handling Input/Output (I/O) requests directed to an operating system having an IO scheduling component, the method comprising:

intercepting an IO request directed from an application to the operating system;

determining whether the IO request is subject to immediate processing using available parallel processing resources; and

bypassing the IO scheduling component of the operating system when it is determined that the IO request is subject to immediate processing using the available parallel processing resources,

wherein said determining whether the IO request is subject to immediate processing comprises

querying a disk block cache status, and

determining that the IO request is subject to immediate processing where the disk block cache status query indicates availability to immediately process the IO request.

2. The method of claim 1 , wherein the availability to immediately process the IO request comprises a cache hit status where the IO request is a read request.

3. The method of claim 1 , wherein the availability to immediately process the IO request comprises an indication of write buffer availability where the IO request is a write request.

4. The method of claim 1 , wherein said determining whether the IO request is subject to immediate processing further comprises an adaptive determination of the available parallel processing resources.

5. The method of claim 1 , further comprising:

identifying a quality of service promised to the application originating the IO request; and

determining that the IO request is subject to immediate processing depending upon the quality of service promised to the application.

6. The method of claim 1 , further comprising:

determining historical demand information corresponding to IO request processing and application task processing; and

determining that the IO request is subject to immediate processing depending upon the historical demand information.

7. The method of claim 6 , further comprising:

determining instantaneous demand information; and

adjusting criteria for determining that the IO request is subject to immediate processing based upon the instantaneous demand information.

8. The method of claim 1 , further comprising:

determining that the IO request is subject to immediate processing depending upon at least one of a threshold number of processors for IO request processing, a quality of service promised to the application originating the IO request, or a demand level corresponding to IO request processing.

9. A method for handling Input/Output (I/O) requests directed to an operating system having an IO scheduling component, the method comprising:

intercepting an IO request directed from an application to the operating system;

determining whether the IO request is subject to immediate processing using available parallel processing resources;

bypassing the IO scheduling component of the operating system when it is determined that the IO request is subject to immediate processing using the available parallel processing resources;

determining a threshold number of processors for IO request processing; and

determining that the IO request is subject to immediate processing where a currently used number of processors for IO processing is below the threshold number.

10. A non-transitory computer readable medium storing program code for handling Input/Output (I/O) requests directed to an operating system having an IO scheduling component, the program code being executable by a processor to perform operations comprising:

intercepting an IO request directed from an application to the operating system;

determining whether the IO request is subject to immediate processing using available parallel processing resources; and

bypassing the IO scheduling component of the operating system when it is determined that the IO request is subject to immediate processing using the available parallel processing resources,

wherein determining whether the IO request is subject to immediate processing comprises

querying a disk block cache status, and

determining that the IO request is subject to immediate processing where the disk block cache status query indicates availability to immediately process the IO request.

11. The computer readable medium of claim 10 , wherein the availability to immediately process the IO request comprises a cache hit status where the IO request is a read request.

12. The computer readable medium of claim 10 , wherein the availability to immediately process the IO request comprises an indication of write buffer availability where the IO request is a write request.

13. The computer readable medium of claim 10 , wherein said determining whether the IO request is subject to immediate processing further comprises an adaptive determination of the available parallel processing resources.

14. The computer readable medium of claim 10 , wherein the operations further comprise:

identifying a quality of service promised to the application originating the IO request; and

determining that the IO request is subject to immediate processing depending upon the quality of service promised to the application.

15. The computer readable medium of claim 10 , wherein the operations further comprise:

determining historical demand information corresponding to IO request processing and application task processing; and

determining that the IO request is subject to immediate processing depending upon the historical demand information.

16. The computer readable medium of claim 15 , wherein the operations further comprise:

determining instantaneous demand information; and

adjusting criteria for determining that the IO request is subject to immediate processing based upon the instantaneous demand information.

17. The computer readable medium of claim 10 , wherein the operations further comprise:

determining that the IO request is subject to immediate processing depending upon at least one of a threshold number of processors for IO request processing, a quality of service promised to the application originating the IO request, or a demand level corresponding to IO request processing.

18. A non-transitory computer readable medium storing program code for handling Input/Output (I/O) requests directed to an operating system having an IO scheduling component, the program code being executable by a processor to perform operations comprising:

intercepting an IO request directed from an application to the operating system;

determining whether the IO request is subject to immediate processing using available parallel processing resources;

bypassing the IO scheduling component of the operating system when it is determined that the IO request is subject to immediate processing using the available parallel processing resources;

determining a threshold number of processors for IO request processing; and

determining that the IO request is subject to immediate processing where a currently used number of processors for IO processing is below the threshold number.

Assignments (4)
SECURITY INTEREST Recorded May 29, 2024
From: DATACORE SOFTWARE CORPORATION
To: VISTARA TECHNOLOGY GROWTH FUND V MASTER, LP
Reel/Frame 067563/0884 →
SECURITY INTEREST Recorded Oct 28, 2021
From: DATACORE SOFTWARE CORPORATION
To: STIFEL BANK
Reel/Frame 057969/0086 →
SECURITY INTEREST Recorded Oct 11, 2019
From: DATACORE SOFTWARE CORPORATION
To: SILICON VALLEY BANK
Reel/Frame 050690/0817 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2016
From: CONNOLLY, NICHOLAS C.; BASSETT, ROBERT; ARAL, ZIYA; PUTRA, RONI J.
To: DATACORE SOFTWARE CORPORATION
Reel/Frame 039780/0892 →
Cited By (2)
US 12,619,569 US 12,625,733