IP Library Granted Patent US 7,398,329
Granted Patent B2
US 7,398,329 · App. 11/407,587 · Granted Jul 8, 2008

Pipelined I/O execution

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,398,329
App. No.
11/407,587
Granted
Jul 8, 2008
Kind
B2
Abstract

A method for pipelining execution input/output (I/O) includes obtaining a first I/O operation, determining a first plurality of stages of a pipeline needed to execute the first I/O operation, and executing each of the first plurality of stages to complete the I/O operation, wherein the first plurality of stages is a subset of a plurality of stages associated with pipeline, and wherein each of the first plurality of stages of the pipeline is executed in sequence.

Claims (58)

1. A method for pipelining execution input/output (I/O), comprising:

obtaining a first I/O operation;

determining a first plurality of stages of a pipeline needed to execute the first I/O operation; and

executing each of the first plurality of stages to complete the I/O operation,

wherein the first plurality of stages is a subset of a plurality of stages associated with pipeline, and

wherein each of the first plurality of stages of the pipeline is executed in sequence.

2. The method of claim 1 , further comprising:

obtaining a second I/O operation;

determining a second plurality of stages of the pipeline needed to execute the second I/O operation; and

executing each of the second plurality of stages to complete the second I/O operation,

wherein the second plurality of stages is a subset of the plurality of stages associated with pipeline, and

wherein each of the second plurality of stages of the pipeline is executed in sequence and the second I/O operation is executed in parallel with the first I/O operation.

3. The method of claim 2 , further comprising:

a common stage that both the first I/O operation and second I/O operation utilize, wherein the common stage is one of the plurality of stages in the pipeline; and

executing the common stage in the first and second I/O operations,

wherein both I/O operations execute the common stage at the same time.

4. The method of claim 1 , wherein the I/O operation may be suspended at any stage in the pipeline without consuming an execution thread.

5. The method of claim 1 , wherein the first I/O operation is executed asynchronously from the caller requesting the first I/O operation.

6. The method of claim 1 , wherein the pipelining execution I/O is facilitated by the operation of a file system.

7. The method of claim 6 , wherein the at least one of the plurality of different stages comprise at least one from the group consisting of OPEN, WAIT_CHILDREN_READY, WRITE_COMPRESS, GET_GANG_HEADER, REWRITE_GANG_MEMBERS, FREE_GANG_MEMBERS, CLAIM_GANG_MEMBERS, DVA_ALLOCATE, DVA_FREE, DVA_CLAIM, CHECKSUM_GENERATE, STAGE_READY, DVA_TRANSLATE, VDEV_IO_SETUP, VDEV_IO_START, VDEV_IO_DONE, VDEV_IO_ASSESS, WAIT_CHILDREN_DONE, CHECKSUM_VERIFY, READ_GANG_MEMBERS, READ_DECOMPRESS, and DONE.

8. A system for data management pipelining execution of I/O operations, comprising:

a pipeline comprising a plurality of different stages, wherein the pipeline is configured to complete a plurality of I/O operations by executing the stages of the pipeline corresponding to the each of the plurality of I/O operations,

wherein the system is configured to:

obtain a first I/O operation of the plurality of I/O operations;

determine a first plurality of stages of the pipeline needed to execute the first I/O operation; and

execute each of the first plurality of stages to complete the I/O operation,

wherein the first plurality of stages is a subset of a plurality of stages associated with pipeline, and

wherein each of the first plurality of stages of the pipeline is executed in sequence.

9. The system of claim 8 , wherein the system is further configured to: obtain a second I/O operation of the plurality of I/O operations;

determine a second plurality of stages of the pipeline needed to execute the second I/O operation; and

execute each of the second plurality of stages to complete the second I/O operation,

wherein the second plurality of stages is a subset of the plurality of stages associated with pipeline, and

wherein each of the second plurality of stages of the pipeline is executed in sequence and the second I/O operation is executed in parallel with the first I/O operation.

10. The system of claim 9 , wherein the first plurality of stages and the second plurality of stages comprise a common stage that both the first I/O operation and second I/O operation use, wherein the first I/O operation and the second I/O operation execute the common stage at the same time.

11. The system of claim 8 , wherein the first I/O operation may be suspended at any stage in the first plurality of stage without consuming a thread.

12. The system of claim 8 , wherein the first I/O operation is executed asynchronously from the caller initiating the first I/O operation.

13. The system of claim 8 , wherein the system for data management pipelining execution of I/O operations is facilitated by the operation of a file system.

14. The system of claim 8 , wherein the at least one of the plurality of different stages comprise at least one from the group consisting of OPEN, WAIT_CHILDREN_READY, WRITE_COMPRESS, GET_GANG_HEADER, REWRITE_GANG_MEMBERS, FREE_GANG_MEMBERS, CLAIM_GANG_MEMBERS, DVA_ALLOCATE, DVA_FREE, DVA_CLAIM, CHECKSUM_GENERATE, STAGE_READY, DVA_TRANSLATE, VDEV_IO_SETUP, VDEV_IO_START, VDEV_IO_DONE, VDEV_IO_ASSESS, WAIT_CHILDREN_DONE, CHECKSUM_VERIFY, READ_GANG_MEMBERS, READ_DECOMPRESS, and DONE.

15. A computer usable medium having computer readable program code embodied therein for causing a computer system for executing a method for data management pipelining execution of input/output (I/O), comprising computer readable program code to:

obtain a first I/O operation;

determine a first plurality of stages of a pipeline needed to execute the first I/O operation; and

execute each of the first plurality of stages to complete the I/O operation,

wherein the first plurality of stages is a subset of a plurality of stages associated with pipeline, and

wherein each of the first plurality of stages of the pipeline is executed in sequence.

16. The computer usable medium of claim 15 , further comprising computer readable program code to:

obtain a second I/O operation;

determine a second plurality of stages of the pipeline needed to execute the second I/O operation; and

execute each of the second plurality of stages to complete the second I/O operation,

wherein the second plurality of stages is a subset of the plurality of stages associated with pipeline, and

wherein each of the second plurality of stages of the pipeline is executed in sequence and the second I/O operation is executed in parallel with the first I/O operation.

17. The computer usable medium of claim 16 , further comprising:

a common stage that both the first I/O operation and second I/O operation use,

wherein the common stage is one of the plurality of stages in the pipeline; and

executing the common stage in the first and second I/O operations,

wherein both I/O operations execute the common stage at the same time.

18. The computer usable medium of claim 15 , wherein the first I/O operation may be suspended at any stage of completion without consuming a thread.

19. The computer usable medium of claim 15 , wherein the first I/O operation is executed asynchronously from the caller initiating the first I/O command.

20. The computer usable medium of claim 15 , wherein the method for pipelining I/O execution is used to facilitate the operation of a file system.

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/0336 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2006
From: MOORE, WILLIAM H.; BONWICK, JEFFREY S.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 017803/0933 →