Method and apparatus for decomposing I/O tasks in a RAID system
First Claim
1. A method for decomposing a data access request from a storage operating system of a storage system into a plurality of lower-level I/O tasks, comprising:
- representing a logical combination and configuration of one or more physical storage components of the storage operating system as a hierarchical set of objects;
generating a parent I/O task from a first object in the hierarchical set of objects in response to the data access request from the storage operating system;
generating a child I/O task from a second object in the hierarchical set of objects to implement at least a portion of the parent I/O task;
suspending the parent I/O task until the child I/O task is completed;
executing the child I/O task in response to a first event indicating a resource of the storage system required by the child I/O task is available, such that scheduling of the child I/O task is not conditional on execution of the parent I/O task; and
resuming the parent I/O task in response to a second event indicating to the parent I/O task the completion of the child I/O task.
0 Assignments
0 Petitions
Accused Products
Abstract
A data access request to a file system is decomposed into a plurality of lower-level I/O tasks. A logical combination of physical storage components is represented as a hierarchical set of objects. A parent I/O task is generated from a first object in response to the data access request. A child I/O task is generated from a second object to implement a portion of the parent I/O task. The parent I/O task is suspended until the child I/O task completes. The child I/O task is executed in response to an occurrence of an event that a resource required by the child I/O task is available. The parent I/O task is resumed upon an event indicating completion of the child I/O task. Scheduling of any child I/O task is not conditional on execution of the parent I/O task, and a state diagram regulates the child I/O tasks.
-
Citations
32 Claims
-
1. A method for decomposing a data access request from a storage operating system of a storage system into a plurality of lower-level I/O tasks, comprising:
-
representing a logical combination and configuration of one or more physical storage components of the storage operating system as a hierarchical set of objects; generating a parent I/O task from a first object in the hierarchical set of objects in response to the data access request from the storage operating system; generating a child I/O task from a second object in the hierarchical set of objects to implement at least a portion of the parent I/O task; suspending the parent I/O task until the child I/O task is completed; executing the child I/O task in response to a first event indicating a resource of the storage system required by the child I/O task is available, such that scheduling of the child I/O task is not conditional on execution of the parent I/O task; and resuming the parent I/O task in response to a second event indicating to the parent I/O task the completion of the child I/O task. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. An apparatus, comprising:
-
a network adapter configured to receive a data access request; a processor configured to represent a logical combination of one or more physical storage components of a storage operating system as a hierarchical set of objects; the processor further configured to generate a parent I/O task from a first object in the hierarchical set of objects in response to the data access request; the processor further configured to generate a child I/O task from a second object in the hierarchical set of objects to implement at least a portion of the parent I/O task; the processor further configured to suspend the parent I/O task until the child I/O task is completed; the processor further configured to execute the child I/O task in response to a first event indicating a resource required by the child I/O task is available, such that scheduling of the child I/O task is not conditional on execution of the parent I/O task; and the processor further configured to resume the parent I/O task in response to a second event indicating to the parent I/O task the completion of the child I/O task. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A computer-readable storage media, comprising:
-
the computer-readable storage media comprising instructions for execution by a processor of a storage system for a method of decomposing a data access request from a storage operating system of the storage system into a plurality of lower-level I/O tasks, the computer-readable storage media further comprising instructions for, representing a logical combination and configuration of one or more physical storage components of the storage operating system as a hierarchical set of objects; generating a parent I/O task from a first object in the hierarchical set of objects in response to the data access request from the storage operating system; generating a child I/O task from a second object in the hierarchical set of objects to implement at least a portion of the parent I/O task; suspending the parent I/O task until the child I/O task is completed; executing the child I/O task in response to a first event indicating a resource of the storage system required by the child I/O task is available, such that scheduling of the child I/O task is not conditional on execution of the parent I/O task; and
resuming the parent I/O task in response to a second event indicating to the parent I/O task the completion of the child I/O task.
-
Specification