Aggregation and re-ordering of input/output requests for better performance in remote file systems
First Claim
Patent Images
1. A method, executed on a processor, for handling file portion requests, comprising:
- receiving, at a computing device, a group of file portion requests from another computing device, the file portion requests from the group of file portion requests individually corresponding to respective portions of a file, wherein;
individual sizes of the portions of the file requested via the group of file portion requests are less than or equal to a size supported by a transport protocol used for transmitting those file portions,the file portions requested via the group of file portion requests correspond to file portions of a contiguous set of at least a threshold quantity of portions of the file,a collective size of the portions of the file requested via the group of file portion requests is greater than the size supported by the transport protocol, andthe file portion requests include sequence numbers associated with a placement of the corresponding file portions within the contiguous set of at least the threshold quantity of portions of the file;
determining that the computing device has received the group of file portion requests corresponding to a contiguous set of at least a threshold quantity, wherein at least some of the file portion requests of the group were received by the computing device out of a sequential order in which those file portion requests were transmitted from the other computing device;
in response to the determination, generating an aggregated request for the contiguous set of portions of the file, the aggregated request being generated based, at least in part, on the sequence numbers of the received file portion requests;
transmitting the aggregated request to a file system accessible from the computing device;
receiving, from the file system, the contiguous set of portions of the file requested by the aggregated request; and
transmitting, from the computing device, the received contiguous set of portions of the file to the other computing device.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for managing remote file system requests between client and server redirectors where a set of data request packets may be aggregated and/or ordered at a server based on hint information from a client.
16 Citations
20 Claims
-
1. A method, executed on a processor, for handling file portion requests, comprising:
-
receiving, at a computing device, a group of file portion requests from another computing device, the file portion requests from the group of file portion requests individually corresponding to respective portions of a file, wherein; individual sizes of the portions of the file requested via the group of file portion requests are less than or equal to a size supported by a transport protocol used for transmitting those file portions, the file portions requested via the group of file portion requests correspond to file portions of a contiguous set of at least a threshold quantity of portions of the file, a collective size of the portions of the file requested via the group of file portion requests is greater than the size supported by the transport protocol, and the file portion requests include sequence numbers associated with a placement of the corresponding file portions within the contiguous set of at least the threshold quantity of portions of the file; determining that the computing device has received the group of file portion requests corresponding to a contiguous set of at least a threshold quantity, wherein at least some of the file portion requests of the group were received by the computing device out of a sequential order in which those file portion requests were transmitted from the other computing device; in response to the determination, generating an aggregated request for the contiguous set of portions of the file, the aggregated request being generated based, at least in part, on the sequence numbers of the received file portion requests; transmitting the aggregated request to a file system accessible from the computing device; receiving, from the file system, the contiguous set of portions of the file requested by the aggregated request; and transmitting, from the computing device, the received contiguous set of portions of the file to the other computing device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-storage device having stored therein computer-executable instructions for causing a computing device to perform operations comprising:
-
receiving plurality of file portion requests from a remote computing device, wherein; each file portion request of the plurality of file portion requests is associated with a different portion of a file, individual sizes of the portions of the file requested via the group of file portion requests are less than or equal to a size supported by a transport protocol used for transmitting those file portions, the file portions requested via the group of file portion requests correspond to file portions of a contiguous set of the file, a collective size of the portions of the file requested via the group of file portion requests is greater than the size supported by the transport protocol, and the file portion requests include sequence numbers associated with a placement of the corresponding file portions within the contiguous set of at least the threshold quantity of portions of the file; aggregating multiple file portion requests into an aggregated request for the different portions requested by each of the multiple file portion requests based, at least in part, on the sequence numbers of each of the multiple file portion requests, at least some of the multiple file portion requests are received by the computing device out of a sequence order in which those file portion requests were transmitted from the remote computing device; transmitting the aggregated request to a file system; receiving an aggregated response to the aggregated request from the file system; and transmitting a plurality of file portion responses to the remote computing device, wherein each file portion response of the plurality of file portion responses is based on a portion of the aggregated response associated with a corresponding file portion request of the multiple file portion requests. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A computing device, comprising:
a memory and a processor that are respectively configured to store and execute instructions, including instructions for performing operations to respond to file portion requests from another computing device, the operations including; receiving a group of file portion requests from the other computing device, the file portion requests from the group of file portion requests individually corresponding to respective portions of a file, wherein; individual sizes of the portions of the file requested via the group of file portion requests are less than or equal to a size supported by a transport protocol used for transmitting those file portions, the file portions requested via the group of file portion requests correspond to file portions of a contiguous set of at least a threshold quantity of portions of the file, a collective size of the portions of the file requested via the group of file portion requests is greater than the size supported by the transport protocol, and the file portion requests include sequence numbers associated with a placement of the corresponding file portions within the contiguous set of at least the threshold quantity of portions of the file; determining that the computing device has received the group of file portion requests, wherein at least some of the file portion requests of the group were received by the computing device out of a sequential order in which those file portion requests were transmitted from the other computing device; in response to the determination, generating an aggregated request for the contiguous set of portions of the file, the aggregated request being generated based, at least in part, on the sequence numbers of the received file portion requests;
transmitting the aggregated request to a file system accessible from the computing device;receiving, from the file system, the contiguous set of portions of the file requested by the aggregated request; and transmitting, from the computing device, the received contiguous set of portions of the file to the other computing device. - View Dependent Claims (17, 18, 19, 20)
Specification