Method and apparatus for decomposing I/O tasks in a RAID system
First Claim
1. A method for processing data access requests at a storage system, comprising:
- representing components of a storage operating system of the storage system as a set of objects, the storage operating system executed by a processor of the storage system;
receiving a data access request at the storage system directed to the set of objects;
decomposing the data access request to generate a parent I/O task and a child I/O task;
assigning the parent I/O task to a first object in the set of objects;
assigning the child I/O task to a second object in the set of objects;
scheduling the child I/O task for execution independently from execution of the parent I/O task; and
executing the child I/O task assigned to the second object.
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
22 Claims
-
1. A method for processing data access requests at a storage system, comprising:
-
representing components of a storage operating system of the storage system as a set of objects, the storage operating system executed by a processor of the storage system; receiving a data access request at the storage system directed to the set of objects; decomposing the data access request to generate a parent I/O task and a child I/O task; assigning the parent I/O task to a first object in the set of objects; assigning the child I/O task to a second object in the set of objects; scheduling the child I/O task for execution independently from execution of the parent I/O task; and executing the child I/O task assigned to the second object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system to process data access requests at a storage system, comprising:
-
a processor of the storage system configured to execute a storage operating system, the storage operating system configured to represent components of the storage operating system as a set of objects; the storage operating system further configured to receive a data access request directed to the set of objects; the storage operating system further configured to decompose the data access request to generate a parent I/O task and a child I/O task; the storage operating system further configured to assign the parent I/O task to a first object in the set of objects; the storage operating system further configured to assign the child I/O task to a second object in the set of objects; the storage operating system further configured to schedule the child I/O task for execution independently from execution of the parent I/O task; and the storage operating system further configured to execute the child I/O task assigned to the second object. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A non-transitory computer-readable storage medium containing executable program instructions for execution by a processor, the computer-readable storage medium comprising:
-
program instructions that represent components of a storage operating system of the storage system as a set of objects, the storage operating system executed by a processor of the storage system; program instructions that receive a data access request at the storage system directed to the set of objects; program instructions that decompose the data access request to generate a parent I/O task and a child I/O task; program instructions that assign the parent I/O task to a first object in the set of objects; program instructions that assign the child I/O task to a second object in the set of objects; program instructions that schedule the child I/O task for execution independently from execution of the parent I/O task; and program instructions that execute the child I/O task assigned to the second object.
-
-
22. A system configured to process data access requests at a storage system, comprising:
-
means for representing components of a storage operating system of the storage system as a set of objects, the storage operating system executed by a processor of the storage system; means for receiving a data access request at the storage system directed to the set of objects; means for decomposing the data access request to generate a parent I/O task and a child I/O task; means for assigning the parent I/O task to a first object in the set of objects; means for assigning the child I/O task to a second object in the set of objects; means for scheduling the child I/O task for execution independently from execution of the parent I/O task; and means for executing the child I/O task assigned to the second object.
-
Specification