System and method of pipeline data access to remote data
First Claim
Patent Images
1. In a computer network, a method comprising:
- at a client-side redirector, receiving a write or read request directed to a file on a remote network server, the write or read request directed to communicating an amount of file data that exceeds a maximum buffer size allowed for communicating file data in a request to the remote server;
logically separating the write or read request into a plurality of file section requests that each do not exceed the maximum buffer size;
sending each of the file section requests to the remote network server, at least one file section request being sent without awaiting a status response resulting from a previously sent file section request;
tracking status information for the file section requests; and
if the status information from the file section requests indicates success, returning a success indication in response to the write or read request.
2 Assignments
0 Petitions
Accused Products
Abstract
A pipeline I/O mechanism in a network redirector that breaks up large files into sections, and sends write (or read) requests for each section in a pipeline fashion to a network file server, without waiting for a response for a previously-sent section. The pipeline I/O mechanism tracks the returned status of each section for which a request was made, so that success or failure of the request is determined as a whole. The pipeline I/O system and method dramatically increase the performance of network remote I/O operations, particularly with file write operations directed to a file on a network file server.
58 Citations
17 Claims
-
1. In a computer network, a method comprising:
-
at a client-side redirector, receiving a write or read request directed to a file on a remote network server, the write or read request directed to communicating an amount of file data that exceeds a maximum buffer size allowed for communicating file data in a request to the remote server;
logically separating the write or read request into a plurality of file section requests that each do not exceed the maximum buffer size;
sending each of the file section requests to the remote network server, at least one file section request being sent without awaiting a status response resulting from a previously sent file section request;
tracking status information for the file section requests; and
if the status information from the file section requests indicates success, returning a success indication in response to the write or read request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-readable medium having computer-executable instructions for
receiving, at a client-side redirector, a write or read request directed to a file on a remote network server, the write or read request directed to communicating an amount of file data that exceeds a maximum buffer size allowed for communicating file data in a request to the remote server; -
logically separating the write or read request into a plurality of file section requests that each do not exceed the maximum buffer size;
sending each of the file section requests to the remote network server, at least one file section request being sent without awaiting a status response resulting from a previously sent file section request;
tracking status information for the file section requests; and
if the status information from the file section requests indicates success, returning a success indication in response to the write or read request.
-
-
10. In a computer network having a file server, a client-side system, comprising:
-
an application program that issues an I/O request corresponding to a file on a file server, the I/O request corresponding to an amount of file data that exceeds an allowed amount that can be exchanged with the file server in a single request; and
a network redirector having an associated pipeline I/O mechanism, configured to;
1) receive information corresponding to the I/O request;
2) send a plurality of sectioned I/O requests to the network server to satisfy the I/O request received at the application, at least one of the requests sent without awaiting status information from the server for a previously sent request, and each sectioned I/O request corresponding to file data that does not exceed the allowed amount;
3) track status information for each of the sectioned I/O requests; and
4) determine a status to return to the application program based on the tracked status information. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. In a computer network, a method comprising:
-
at a client-side redirector, receiving a write request to write file data to a file on a remote network server, the write request indicating an amount of data to be written that exceeds a maximum size allowed per request by the remote server;
logically separating the write request into a plurality of partial write requests that each do not exceed the maximum buffer size;
allocating a data structure containing an entry for each file section request;
sending each of the file section requests to the remote network server, at least one request being sent without awaiting a status response that results from a previously sent request;
evaluating responses from the file system, and for each successful response that corresponds to a partial write request, updating the array at a location therein that corresponds to that file section request; and
returning a success indication when the array indicates that each of the partial write requests was successful.
-
Specification