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 plurality of I/O requests directed to at least a part of a logical unit of storage; and
a plurality of nodes arranged in a tree data structure, the nodes each being associated with non-overlapping address ranges relative to each other in the logical unit of storage, such that the tree data structure facilitates sequential processing of I/O requests directed to the same units of storage based on an order in which I/O requests directed to the same units of storage were received.
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
20 Claims
-
1. A system for processing I/O requests, the system comprising:
-
a plurality of I/O requests directed to at least a part of a logical unit of storage; and
a plurality of nodes arranged in a tree data structure, the nodes each being associated with non-overlapping address ranges relative to each other in the logical unit of storage, such that the tree data structure facilitates sequential processing of I/O requests directed to the same units of storage based on an order in which I/O requests directed to the same units of storage were received. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of processing I/O requests, the method comprising:
-
receiving a plurality of I/O requests directed to particular address ranges of 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 including non-overlapping address ranges associated with the at least partly overlapping address ranges of the I/O requests;
organizing the nodes into a tree data structure; and
processing the I/O requests based on the tree data structure. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. 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 including non-overlapping address ranges associated with the logical unit of storage;
organizing the nodes into a tree data structure; and
based on the tree data structure, processing at least a first operation associated with a first one of the I/O requests in accordance with the first I/O request'"'"'s receipt time and processing at least another operation associated with a different one of the I/O requests irrespective of the different I/O request'"'"'s receipt time.
-
-
18. 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 including non-overlapping address ranges associated with the logical unit of storage and pointers to I/O requests associated with the non-overlapping address ranges; and
processing the I/O requests based on the binary tree data structure. - View Dependent Claims (19, 20)
-
Specification