IP Library Granted Patent US 7,774,510
Granted Patent B2
US 7,774,510 · App. 12/131,523 · Granted Aug 10, 2010

Near zero overhead command timeout scheme

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,774,510
App. No.
12/131,523
Granted
Aug 10, 2010
Kind
B2
Abstract

A method for handling input/output (I/O) commands in a storage system includes establishing first and second counters for counting unfinished I/O commands, and establishing a reference which is initially set to the first counter. The reference is periodically switched between the first counter and the second counter, and the switching interval is less than the I/O timeout value. Upon placing an I/O command into an I/O command queue, a copy of the current reference is made into an I/O specific control block and the current referenced counter is incremented. Upon finishing of an I/O command, the counter referenced by the I/O specific control block is decremented and the I/O command is removed from the I/O command queue. When switching the reference, a problem is detected in the event that the counter being switched to is above a predetermined threshold. Upon detection of a problem, a more explicit I/O check is conducted.

Claims (31)

1. A method for handling input/output (I/O) commands in a storage system, the storage system including an I/O command queue, and the storage system receiving I/O commands, wherein an I/O command is placed in the queue when received and is removed from the queue when finished, and wherein an I/O timeout value is established and an I/O is considered to have a problem if the I/O does not finish within the I/O timeout value, the method comprising:

establishing a first counter for counting unfinished I/O commands;

establishing a second counter for counting unfinished I/O commands;

establishing a reference, and initially setting the reference to the first counter;

periodically switching the reference between the first counter and the second counter, the switching taking place such that a switching interval is less than the I/O timeout value;

wherein, upon placing the I/O command into the queue, a copy of the current reference is made into an I/O specific control block and the current referenced counter is incremented;

wherein, upon finishing of the I/O command, the counter referenced by the I/O specific control block is decremented;

wherein, when switching the reference, the problem is detected in the event that the counter being switched to is above a predetermined threshold; and upon detection of the problem, conducting a more explicit I/O check.

2. The method of claim 1 wherein the I/O timeout value is at least 30 seconds.

3. The method of claim 2 wherein the I/O timeout value is at least 60 seconds.

4. The method of claim 2 wherein the switching interval is at least 1 second.

5. The method of claim 4 wherein the switching interval is at least 5 seconds.

6. The method of claim 1 wherein the reference is switched between only the first counter and the second counter.

7. The method of claim 1 wherein, when switching the reference, the problem is detected in the event that the counter being switched to is non-zero.

8. The method of claim 1 wherein the more explicit I/O check includes checking at least the I/O commands in the queue wherein the I/O specific control block references the counter which is above the predetermined threshold.

9. The method of claim 1 wherein, when switching the reference, the problem is detected in the event that the counter being switched to is non-zero; and wherein the more explicit I/O check includes checking at least the I/O commands in the queue wherein the I/O specific control block references the counter which is non-zero.

10. A system comprising: a data storage system connected to client computers for receiving I/O commands and data, and connected to a plurality of storage devices for reading and writing data in accordance with received commands;

wherein the data storage system includes an I/O command queue, wherein an I/O command is placed in the queue when received and is removed from the queue when finished, and wherein an I/O timeout value is established and an I/O is considered to have a problem if the I/O does not finish within the I/O timeout value;

wherein the storage system establishes a first counter for counting unfinished I/O commands, a second counter for counting unfinished I/O commands, and a reference, the storage system initially setting the reference to the first counter;

wherein the storage system operates to periodically switch the reference between the first counter and the second counter, the switching taking place such that a switching interval is less than the I/O timeout value;

wherein, upon placing the I/O command into the queue, a copy of the current reference is made into an I/O specific control block and the current referenced counter is incremented;

wherein, upon finishing of the I/O command, the counter referenced by the I/O specific control block is decremented;

wherein, when switching the reference, the problem is detected in the event that the counter being switched to is above a predetermined threshold; and upon detection of the problem, conducting a more explicit I/O check.

11. The system of claim 10 wherein the I/O timeout value is at least 30 seconds.

12. The system of claim 11 wherein the I/O timeout value is at least 60 seconds.

13. The system of claim 11 wherein the switching interval is at least 1 second.

14. The system of claim 13 wherein the switching interval is at least 5 seconds.

15. The system of claim 10 wherein the reference is switched between only the first counter and the second counter.

16. The system of claim 10 wherein, when switching the reference, the problem is detected in the event that the counter being switched to is non-zero.

17. The system of claim 10 wherein the more explicit I/O check includes checking at least the I/O commands in the queue wherein the I/O specific control block references the counter which is above the predetermined threshold.

18. The system of claim 10 wherein, when switching the reference, the problem is detected in the event that the counter being switched to is non-zero; and wherein the more explicit I/O check includes checking at least the I/O commands in the queue wherein the I/O specific control block references the counter which is non-zero.

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 037306/0514 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2008
From: GUPTA, SUMIT
To: SUN MICROSYSTEMS, INC.
Reel/Frame 021028/0468 →