IP Library Granted Patent US 7,478,179
Granted Patent B2
US 7,478,179 · App. 11/433,345 · Granted Jan 13, 2009

Input/output priority inheritance wherein first I/O request is executed based on higher priority

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 7,478,179
App. No.
11/433,345
Granted
Jan 13, 2009
Kind
B2
Abstract

A method for executing input/output (I/O) operations based on priority involves receiving a first I/O request for a unit of data, receiving a second I/O request for the same unit of data, determining a priority of the first I/O request and a priority of the second I/O request, and executing the first I/O request based on priority, where the first I/O request is executed based on the higher of the priority of the first I/O request and the priority of the second I/O request.

Claims (42)

1. A method for executing input/output (I/O) operations based on priority, comprising:

receiving a first I/O request for a unit of data;

receiving a second I/O request for the same unit of data;

determining a priority of the first I/O request and a priority of the second I/O request; and

executing the first I/O request based on priority,

wherein the first I/O request is executed based on the higher of the priority of the first I/O request and the priority of the second I/O request,

wherein the first I/O inquest is placed in an I/O queue based on the priority of the first I/O request,

wherein the I/O queue comprises a plurality of buckets,

wherein the plurality of buckets comprises a “now” bucket and a “later” bucket, and

wherein the I/O request moves from the “later” bucket to the “now” bucket after a pre-defined amount of time has elapsed.

2. The method of claim 1 , further comprising:

increasing the priority of the first I/O request to the priority of the parent of the first I/O request, if the priority of the parent of the first I/O request is higher than the priority of the first I/O request and is waiting for the first I/O request to complete execution.

3. The method of claim 1 , wherein the first I/O request and the second I/O request obtain the unit of data when the first I/O request is executed.

4. The method of claim 3 , wherein the priority of the first request is decreased when the unit of data is obtained.

5. The method of claim 1 , wherein one of the plurality of buckets corresponds to a priority.

6. The method of claim 1 , wherein the first I/O request is issued when the request is a highest priority I/O request in the “now” bucket.

7. The method of claim 1 , wherein the I/O queue is associated with a file system.

8. A system for storing data, comprising:

a storage pool configured to store data;

an Input/Output (I/O) queue configured to store an I/O request for data; and

a file system configured to:

receive a first I/O request for a unit of data;

receive a second I/O request for the same unit of data;

determine a priority of the first I/O request and a priority of the second I/O request; and

execute the first I/O request based on priority,

wherein the first I/O request is executed based on the higher of the priority of the first I/O request and the priority of the second I/O request,

wherein the first I/O request is placed in an I/O queue based on the priority of the first I/O request,

wherein the I/O queue comprises a plurality of buckets,

wherein the plurality of buckets comprises a “now” bucket and a “later” bucket, and

wherein the I/O request moves from the “later” bucket to the “now” bucket after a pre-defined amount of time has elapsed.

9. The system of claim 8 , the file system further configured to:

increase the priority of the first I/O request to a priority of a parent of the first I/O request, if the priority of the parent of the first I/O request is higher than the priority of the first I/O request and the parent of the first I/O request is waiting for the first I/O request to complete execution.

10. The system of claim 9 , wherein the first I/O request is moved up in the I/O queue when the parent is waiting on the first I/O request to complete.

11. The system of claim 9 , wherein the file system is further configured to update the I/O queue after the first I/O request has been issued to the storage pool.

12. The system of claim 11 , wherein updating the I/O queue comprises removing the first I/O request from the I/O queue.

13. A method for executing input/output (I/O) operations based on priority, comprising:

receiving a first I/O request, associated with an initial priority of the first I/O request, for a first unit of data and a second unit of data;

receiving a second I/O request, associated with a priority of the second I/O request that is higher than the priority of the first I/O request, for the first unit of data and a third unit of data;

changing the priority of the first I/O request to the priority of the second I/O request to retrieve the first unit of data; and

changing the priority of the first I/O request back to the initial priority of the first I/O request to retrieve the second unit of data.

14. The method of claim 13 , wherein the first I/O request and the second I/O request obtain the first unit of data when the first I/O request is executed.

15. The method of claim 13 , wherein the second I/O request retrieves the third unit of data based on the priority of the second I/O request.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037303/0926 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2006
From: MOORE, WILLIAM H.; BONWICK, JEFFREY S.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 017896/0426 →