Bundling client write requests in a server
First Claim
1. In a computerized data processing system including a client system, a server system in communication with the client system, the server system further including an intermediate server and a remote server having a data store, the intermediate server having main memory adapted to store a plurality of pending client write requests in a queue, and logic coupled to the remote server for managing access to the data store, a method for communicating client write requests to write data to the data store comprising the machine-executed steps of:
- responsive to receiving a current client write request, referencing a predetermined data characteristic criterion defining a relationship between data specified by the current write request and data specified by a client write request received before the current write request to determine if the data characteristic criterion is met;
waiting an amount of time for additional client write requests to be received and placed in the queue, wherein the amount of time is determined according to whether the predetermined data characteristic criterion is met;
determining if any additional client write requests received during the waiting step are contiguous to the current write request;
bundling together an amount of client write requests that have been received in the queue with the current write request, wherein the amount bundled is determined according to whether a predetermined capacity of client write requests that are contiguous to the current write request have been placed in the queue;
sending the bundled client write requests to be committed to the data store; and
sending a separate reply to the client for each write request included in the bundled write request.
1 Assignment
0 Petitions
Accused Products
Abstract
Logic for receiving client write requests, bundling them, and sending a reply back to the client(s) once the requests are committed to storage. The logic is included in an intermediate server which includes a write request module having a write bundling module included and a write reply module. A separate reply is sent for each of the individual client write requests. Out of order requests are handled by checking for a contiguous write having a lower file location (offset) than a current write request and placing that lower ordered offset request first in the bundle.
95 Citations
34 Claims
-
1. In a computerized data processing system including a client system, a server system in communication with the client system, the server system further including an intermediate server and a remote server having a data store, the intermediate server having main memory adapted to store a plurality of pending client write requests in a queue, and logic coupled to the remote server for managing access to the data store, a method for communicating client write requests to write data to the data store comprising the machine-executed steps of:
-
responsive to receiving a current client write request, referencing a predetermined data characteristic criterion defining a relationship between data specified by the current write request and data specified by a client write request received before the current write request to determine if the data characteristic criterion is met; waiting an amount of time for additional client write requests to be received and placed in the queue, wherein the amount of time is determined according to whether the predetermined data characteristic criterion is met; determining if any additional client write requests received during the waiting step are contiguous to the current write request; bundling together an amount of client write requests that have been received in the queue with the current write request, wherein the amount bundled is determined according to whether a predetermined capacity of client write requests that are contiguous to the current write request have been placed in the queue; sending the bundled client write requests to be committed to the data store; and sending a separate reply to the client for each write request included in the bundled write request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A server system in communication with a client system for communicating client write requests to write data to a data store on a server, the system comprising:
-
an intermediate server having a processor and main memory coupled to the processor and the main memory being adapted to store a plurality of client write requests in a queue; a remote server having a data store; the intermediate server further including logic in communication with the remote server for managing access to the data store; and the logic including machine-executed means coupled to the processor for communicating client write requests to write data to the data store by; being responsive to receiving a current client write request by referencing a predetermined data characteristic criterion defining a relationship between data specified by the current write request and data specified by a client write request received before the current write request to determine if the data characteristic criterion is met; waiting an amount of time for additional client write requests to be received and placed in the queue, wherein the amount of time is determined according to whether the predetermined data characteristic criterion is met; determining if any additional client write requests received during the waiting step are contiguous to the current write request; bundling together an amount of client write requests that have been received in the queue with the current write request, wherein the amount bundled is determined according to whether a predetermined capacity of client write requests that are contiguous to the current write request have been placed in the queue; sending the bundled client write requests to be committed to the data store; and sending a separate reply to the client for each write request included in the bundled write request. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A computer program product for communicating client write requests to write data to a data store on a remote server in a server system, the server system including an intermediate server having a processor and main memory coupled to the processor, the main memory being adapted to store a plurality of client write requests in a queue, the computer program product comprising:
-
a recording medium; means, recorded on the recording medium, for being responsive to receiving a current client write request by referencing a predetermined data characteristic criterion defining a relationship between data specified by the current write request and data specified by a client write request received before the current write request to determine if the data characteristic criterion is met; means, recorded on the recording medium, for directing the processor to wait an amount of time for additional client write requests to be received and placed in the queue, wherein the amount of time is determined according to whether the predetermined data characteristic criterion is met; means recorded on the recording medium, for directing the processor to determine if any additional client write requests received during the waiting step are contiguous to the current write request; means recorded on the recording medium, for directing the processor to bundle together an amount of client write requests that have been received in the queue with the current write request, wherein the amount bundled is determined according to whether a predetermined capacity of client write requests that are contiguous to the current write request have been placed in the queue; means, recorded on the recording medium, for directing the processor to send the bundled client write requests to be committed to the data store; and memos recorded on the recording medium, for directing the processor to send a separate reply to the client for each write request included in the bundled write request. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. An apparatus for communicating client write requests to write data to a data store on a remote server, the apparatus comprising:
-
a processor; main memory coupled to the processor, wherein the main memory is adapted to store client write requests in a queue; logic loaded into the main memory for managing access to the data store; and
the logic including;a write request module that is adapted to be responsive to a request from the client to write data on the data store, by; referencing a predetermined data characteristic criterion defining a relationship between data specified by the current write request and data specified by a client write request received before the current write request to determine if the data characteristic criterion is met; waiting an amount of time for additional client write requests to be received and placed in the queue, wherein the amount of time is determined according to whether the predetermined data characteristic criterion is met; determining if any additional client write requests received during the waiting step satisfy the predetermined data criterion; bundling together an amount of client write requests that have been received in the queue with the current write request, wherein the amount bundled is determined according to whether a predetermined capacity of client write requests that are contiguous to the current write request have been placed the queue; and sending the bundled client write requests to be committed to the data store; and a write reply module that is adapted to be responsive to sending the bundled client write requests to be committed to the data store by sending a separate reply to the client for each write request included in the bundled write request. - View Dependent Claims (34)
-
Specification