System-aware resource scheduling
First Claim
Patent Images
1. A method of managing input/output (I/O) requests for physical resources in computing systems, comprising:
- receiving from a file system of an operating system a first plurality of I/O requests at an I/O scheduler of the operating system for one or more storage systems, the first plurality of I/O requests from the file system each including a first identifier indicating that the I/O requests of the first plurality are part of a first dependent transaction;
receiving from the file system of the operating system a second plurality of I/O requests at the I/O scheduler;
determining that the I/O requests of the first plurality are part of the first dependent transaction using the first identifier and determining that the I/O requests of the second plurality are not part of a dependent transaction; and
based on the first identifier, providing by the I/O scheduler the first plurality of I/O requests to the one or more storage systems prior to providing the second plurality of I/O requests to the one or more storage systems based on the first identifier.
1 Assignment
0 Petitions
Accused Products
Abstract
Technology is provided to manage requests for physical resources in computing systems using system-aware scheduling techniques. Transactions having two or more dependent requests for a physical resource are identified by the computing system. Information identifying the requests as part of a dependent transaction is passed with the requests for the physical resource. In at least one mode of operation, a scheduler corresponding to the physical resource allocates submission of the requests to the physical resource using the dependent transaction information.
-
Citations
30 Claims
-
1. A method of managing input/output (I/O) requests for physical resources in computing systems, comprising:
-
receiving from a file system of an operating system a first plurality of I/O requests at an I/O scheduler of the operating system for one or more storage systems, the first plurality of I/O requests from the file system each including a first identifier indicating that the I/O requests of the first plurality are part of a first dependent transaction; receiving from the file system of the operating system a second plurality of I/O requests at the I/O scheduler; determining that the I/O requests of the first plurality are part of the first dependent transaction using the first identifier and determining that the I/O requests of the second plurality are not part of a dependent transaction; and based on the first identifier, providing by the I/O scheduler the first plurality of I/O requests to the one or more storage systems prior to providing the second plurality of I/O requests to the one or more storage systems based on the first identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of scheduling requests for resources in computing systems, comprising:
-
generating by a plurality of threads under control of a central processing unit (CPU) scheduler of an operating system a plurality of resource requests designating one or more physical resources, the plurality of resource requests including two or more resource requests that are part of a dependent transaction and at least one additional resource request; adding by a file system of the operating system a dependent transaction identifier to the two or more resource requests; and providing the plurality of resource requests to a resource scheduler of the operating system associated with the one or more physical resources. - View Dependent Claims (10, 11)
-
-
12. A method of scheduling requests for resources in computing systems, comprising:
-
receiving a plurality of resource requests including a first set of two or more resource requests having a first dependent transaction identifier, a second set of two or more resource requests having a second dependent transaction identifier, and at least one resource request not having a dependent transaction identifier, the plurality of resource requests designating one or more physical resources; queuing the plurality of resource requests; determining from the first dependent transaction identifier that the first set of two or more resource requests is part of a first dependent transaction, from the second dependent transaction identifier that the second set of two or more resource requests is part of a second dependent transaction, and that the at least one resource request is not part of a dependent transaction; calculating a first dependency weight measure for the first dependent transaction, the first dependency weight measure comprising a first ratio of a first expected increase in processor utilization resulting from completion of the first dependent transaction to a first cost associated with completing the first dependent transaction; calculating a second dependency weight measure for the second dependent transaction, the second dependency weight measure comprising a second ratio of a second expected increase in processor utilization resulting from completion of the second dependent transaction to a second cost associated with completing the second dependent transaction; providing the at least one resource request to the one or more physical resources after the first set of two or more resource requests and the second set of two or more resource requests based on determining that the at least one resource request is not part of a dependent transaction; providing the first set of two or more resource requests to the one or more physical resources prior to providing the second set of two or more resource requests to the one or more physical resources if the first dependency weight measure is greater than the second dependency weight measure; and providing the second set of two or more resource requests to the one or more physical resources prior to providing the first set of two or more resource requests to the one or more physical resources if the second dependency weight measure is greater than the first dependency weight measure. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. One or more processor readable non-transitory storage devices having processor readable code embodied on said one or more processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising:
-
receiving a plurality of I/O requests designating one or more physical resources, the plurality of I/O requests including a first set of I/O requests having a first dependent transaction identifier and a second set of I/O requests having a second dependent transaction identifier; queuing the plurality of I/O requests; calculating a first dependency weight measure for the first dependent transaction, the first dependency weight measure is a first ratio of a first expected increase in processor utilization resulting from completion of the first dependent transaction to a first cost associated with completing the first dependent transaction; calculating a second dependency weight measure for the second dependent transaction, the second dependency weight measure is a second ratio of a second expected increase in processor utilization resulting from completion of the second dependent transaction to a second cost associated with completing the second dependent transaction; providing a first set of two or more resource requests to the one or more physical resources prior to providing a second set of two or more resource requests to the one or more physical resources if the first dependency weight measure is greater than the second dependency weight measure; and providing the second set of two or more resource requests to the one or more physical resources prior to providing the first set of two or more resource requests to the one or more physical resources if the second dependency weight measure is greater than the first dependency weight measure. - View Dependent Claims (20)
-
-
21. A computing system, comprising:
-
a central processing unit; one or more physical resources in communication with the central processing unit; an operating system executable by the central processing unit, the operating system including a CPU scheduler, a file system and an input/output (I/O) scheduler for providing I/O requests to the one or more physical resources, the CPU scheduler controls execution of one or more application threads that provide the I/O requests using the file system; code for instructing the I/O scheduler to receive the I/O requests for the one or more physical resources from the file system and to determine whether each I/O request as received from the file system includes a dependent transaction identifier; and code for instructing the I/O scheduler to provide a set of two or more of the I/O requests having a common dependent transaction identifier to the one or more physical resources prior to providing ones of the I/O requests that do not include a dependent transaction identifier. - View Dependent Claims (22, 23)
-
-
24. A method of scheduling requests for resources in computing systems, comprising:
-
receiving a plurality of requests for one or more physical resources in a computing system; determining a measure of processor utilization in the computing system; determining whether the measure of processor utilization is within a threshold utilization; if the measure of processor utilization is within the threshold, providing the plurality of requests to the one or more physical resources in a first sequence; and if the measure of processor utilization is outside of the threshold; determining if individual requests of the plurality are associated with one or more dependent transactions, and; providing the plurality of requests to the one or more physical resources in a second sequence, the providing includes providing requests of the plurality that are associated with the one or more dependent transactions prior to providing requests of the plurality that are not associated with the one or more dependent transactions. - View Dependent Claims (25, 26, 27, 28, 29, 30)
-
Specification