Processing storage-related I/O requests using binary tree data structures
First Claim
1. A system for processing I/O requests, the system comprising:
- a logical unit of storage to receive a plurality of I/O requests directed to at least a part of the logical unit of storage; and
a plurality of nodes arranged in a tree data structure, each node in the plurality of nodes being associated with a non-overlapping address range in the logical unit of storage, such that the tree data structure facilitates sequential processing of one or more of the plurality of I/O requests directed to the logical unit of storage based on an order in which the one or more I/O requests directed to the logical unit of storage were received, the plurality of I/O requests processed through the plurality of nodes forwarded to the associated non-overlapping address ranges in the logical unit of storage, wherein at least some of the nodes include pointers to operation sequences associated with corresponding I/O requests.
8 Assignments
0 Petitions
Accused Products
Abstract
The disclosed technology can be used to develop systems and perform methods that receive and process I/O requests directed to at least a part of a logical unit of storage. The I/O requests can be associated with different times corresponding to when such I/O requests were received. Nodes that include non-overlapping address ranges associated with the logical unit of storage can be formed in response to receiving the I/O requests and such nodes can be subsequently organized into a tree data structure. The tree data structure can serve as a basis for determining address overlap, for example to enable processing a first operation associated with a first one of the I/O requests in accordance with the first I/O request'"'"'s receipt time, while one or more other operations associated with a different I/O request may be processed irrespective of that different I/O request'"'"'s receipt time. This can be useful in a system in system operations are improved by easy access to information about whether pending I/O requests are directed to overlapping units of storage.
-
Citations
17 Claims
-
1. A system for processing I/O requests, the system comprising:
-
a logical unit of storage to receive a plurality of I/O requests directed to at least a part of the logical unit of storage; and a plurality of nodes arranged in a tree data structure, each node in the plurality of nodes being associated with a non-overlapping address range in the logical unit of storage, such that the tree data structure facilitates sequential processing of one or more of the plurality of I/O requests directed to the logical unit of storage based on an order in which the one or more I/O requests directed to the logical unit of storage were received, the plurality of I/O requests processed through the plurality of nodes forwarded to the associated non-overlapping address ranges in the logical unit of storage, wherein at least some of the nodes include pointers to operation sequences associated with corresponding I/O requests. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of processing I/O requests, the method comprising:
-
receiving a plurality of I/O requests directed to particular address ranges in a logical unit of storage, the address ranges of at least some of the I/O requests at least partly overlapping; forming a plurality of nodes associated with the received I/O requests, at least some of the nodes associated with non-overlapping address ranges in the logical unit of storage, wherein at least some of the nodes include pointers to operation sequences associated with corresponding I/O requests; organizing the nodes into a tree data structure; processing the received I/O requests based on the tree data structure; and forwarding the received I/O requests to the associated address ranges in the logical unit of storage after processing. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method of processing I/O requests, the method comprising:
-
receiving a plurality of I/O requests directed to at least a part of a logical unit of storage, the I/O requests being associated with times at which such requests were received, wherein each of the receipt times of the I/O requests differ; forming a plurality of nodes associated with the received I/O requests, at least some of the nodes associated with non-overlapping address ranges in the logical unit of storage, wherein at least some of the nodes include pointers to operation sequences associated with corresponding I/O requests; organizing the nodes into a tree data structure; based on the tree data structure, processing at least a first operation associated with a first one of the received I/O requests in accordance with the first received I/O request'"'"'s receipt time and processing at least another operation associated with a different one of the received I/O requests irrespective of the different received I/O request'"'"'s receipt time; and forwarding the received I/O requests to the associated address ranges in the logical unit of storage after processing.
-
-
16. A method of processing I/O requests, the method comprising:
-
receiving a plurality of I/O requests directed to at least a part of a logical unit of storage; forming a plurality of nodes associated with the received I/O requests; organizing the nodes into a binary tree data structure, at least some of the nodes associated with non-overlapping address ranges in the logical unit of storage and pointers to received I/O requests associated with the non-overlapping address ranges wherein at least some of the nodes further include pointers to operations within operation sequences associated with at least some of the received I/O requests; processing the received I/O requests based on the binary tree data structure; and forwarding the received I/O requests to the associated address ranges in the logical unit of storage after processing. - View Dependent Claims (17)
-
Specification