Data channel utilization management in multi-user system
AssigneeMicrosoft Corporation
InventorsHuei Chung Wang, Amjad Hussain
Life of this patent
Estimating the term…
Abstract
The management of data storage channel utilization in a computing system that has multiple users. The system receives file-level requests from requesters and then creates a history for each requester. Upon evaluating the history of each requester, the system determines whether to delay the file-level requests from entering the file system stack based on the result of the evaluation. The system delays one or more of the file-level requests if the history of the corresponding requester meets one or more criteria. If the history of the corresponding requester does not meet the criteria, the system allows the file-level requests to be passed to the file system stack without being delayed.
Claims18
In a multi-user computing system in which a plurality of users are accessing a data storage channel, a method for managing channel utilization for each of the plurality of users, the method comprising:
- an act of receiving a first file-level I/O request;
- an act of evaluating an I/O history of a first requester corresponding to the first file-level I/O request, the I/O history of the first requester including one or more previous requests by the first requester;
- an act of determining that the first file-level I/O request should be delayed from entering a file system stack based on a result of the act of evaluating the I/O history of the first requester;
- an act of causing the first file-level I/O request to be delayed by a component by queuing the first file-level I/O request for later processing by the file system stack, including:
- calculating a priority for the first requester, the priority being based at least in part on the I/O history of the first requester;
- and
- placing the first file-level I/O request in a queue and assigning the first file-level I/O request a priority within the queue based on the priority of the first requester;
- after the delay, an act of allowing the first file-level I/O request to be passed to the file system stack;
- an act of receiving a second file-level I/O request;
- an act of evaluating an I/O history of a second requester corresponding to the second file-level I/O request, the I/O history of the second requester including one or more previous requests by the second requester;
- an act of determining that the second file-level I/O request should not be delayed from entering the file system stack based on a result of the act of evaluating the I/O history of the second requester;
- and
- an act of allowing the second file-level I/O request to be passed to the file system stack without being delayed by the component, by bypassing the queue.
A computer program product comprising one or more computer-storage hardware device having thereon computer-executable instructions that, when executed by one or more processors of a computing system, cause the computing system to perform a method for managing channel utilization for each of a plurality of users in a multi-user network system in which the plurality of users are accessing a data storage channel, the method comprising:
- an act of receiving a first file-level I/O request;
- an act of evaluating an I/O history of a first requester corresponding to the first file-level I/O request, the I/O history of the first requester including one or more previous requests by the first requester;
- an act of determining that the first file-level I/O request should be delayed from entering a file system stack based on a result of the act of evaluating the I/O history of the first requester;
- an act of causing the first file-level I/O request to be delayed by a component, by queuing the first file-level I/O request for later processing by the file system stack, including:
- calculating a priority for the first requester, the priority being based at least in part on the I/O history of the first requester;
- and
- placing the first file-level I/O request in a queue and assigning the first file-level I/O request a priority within the queue based on the priority of the first requester;
- after the delay, an act of allowing the first file-level I/O request to be passed to the file system stack;
- an act of receiving a second file-level I/O request;
- an act of evaluating an I/O history of a second requester corresponding to the second file-level I/O request, the I/O history of the second requester including one or more previous requests by the second requester;
- an act of determining that the second file-level I/O request should not be delayed from entering the file system stack based on a result of the act of evaluating the I/O history of the second requester;
- and
- an act of allowing the second file-level I/O request to be passed to the file system stack without being delayed by the component, by bypassing the queue.
A computing system comprising:
- at least one processor;
- and
- one or more storage media having stored thereon computer-executable instructions which, when executed by the at least one processor, implement a method managing channel utilization for each of a plurality of requesters in a multi-user network system in which the plurality of requesters are accessing a data storage channel, the method comprising:
- an act of receiving a first file-level I/O request;
- an act of evaluating an I/O history of a first requester corresponding to the first file-level I/O request, the I/O history of the first requester including one or more previous requests by the first requester;
- an act of determining that the first file-level I/O request should be delayed from entering a file system stack based on a result of the act of evaluating the I/O history of the first requester;
- an act of causing the first file-level I/O request to be delayed by a component by queuing the first file-level I/O request for later processing by the file system stack, including:
- calculating a priority for the first requester, the priority being based at least in part on the I/O history of the first requester;
- and
- placing the first file-level I/O request in a queue and assigning the first file-level I/O request a priority within the queue based on the priority of the first requester;
- after the delay, an act of allowing the first file-level I/O request to be passed to the file system stack;
- an act of receiving a second file-level I/O request;
- an act of evaluating an I/O history of a second requester corresponding to the second file-level I/O request, the I/O history of the second requester including one or more previous requests by the second requester;
- an act of determining that the second file-level I/O request should not be delayed from entering the file system stack based on a result of the act of evaluating the I/O history of the second requester;
- and
- an act of allowing the second file-level I/O request to be passed to the file system stack without being delayed by the component, by bypassing the queue.
Dependencies are inferred from the claim text.