Separate read and write servers in a distributed file system
First Claim
1. A method for providing a plurality of client applications access to data in a distributed file system including a plurality of storage elements coupled to a plurality of read servers and a write server, comprising:
- distinguishing between read requests and write requests from the client applications;
transmitting read requests from the client applications to the plurality of read servers;
transmitting write requests from the client applications to the write server, each write request including a replacement data element to replace a current data element at a current storage location on one of the storage elements;
reading file data by the read servers and returning the file data to the client applications in response to read requests; and
in response to each write request, writing the replacement data element to a new location in one of the storage elements while leaving the current data element accessible for read requests processed by the read servers;
locking a file meta-data element that references the current storage location;
updating the file meta-data element to reference the new location having the replacement data element; and
unlocking the file meta-data element after updating.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method for providing a plurality of client applications access to data in a distributed file system. In various embodiments, read requests are separated from write requests and the read requests are processed by dedicated read servers. A plurality of read servers are coupled to the client applications and each read server reads file data from the distributed file system and returns the file data to the client applications. A write server writes data to the distributed file system. Various embodiments are described for separating read requests from write requests and transmitting read requests to the read servers write requests to the write server.
17 Citations
23 Claims
-
1. A method for providing a plurality of client applications access to data in a distributed file system including a plurality of storage elements coupled to a plurality of read servers and a write server, comprising:
-
distinguishing between read requests and write requests from the client applications;
transmitting read requests from the client applications to the plurality of read servers;
transmitting write requests from the client applications to the write server, each write request including a replacement data element to replace a current data element at a current storage location on one of the storage elements;
reading file data by the read servers and returning the file data to the client applications in response to read requests; and
in response to each write request, writing the replacement data element to a new location in one of the storage elements while leaving the current data element accessible for read requests processed by the read servers;
locking a file meta-data element that references the current storage location;
updating the file meta-data element to reference the new location having the replacement data element; and
unlocking the file meta-data element after updating. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system for providing a plurality of client applications access to data in a distributed file system including a plurality of storage elements, comprising:
-
a plurality of read servers coupled to the client applications and to the distributed file system, each read server configured to read file data from the distributed file system and return the file data to the client applications in response to read requests from the client applications;
a write server coupled to the client applications and to the distributed file system, the write server configured to write data to the distributed file system in response to write requests from the client applications, each write request including a replacement data element to replace a current data element at a current storage location on one of the storage elements;
means for distinguishing between read requests and write requests and transmitting read requests from the client applications to the plurality of read servers and transmitting write requests from the client applications to the write server; and
a data consistency control module hosted on the write server, the control module configured and arranged to write the replacement data element to a new location in one of the storage elements while leaving the current data element accessible to read requests processed by the read servers, lock a file meta-data element that references the current storage location while updating the file meta-data element to reference the new location having the replacement data element, and unlock the file meta-data element after updating. - View Dependent Claims (7, 8)
-
-
9. A system for providing a plurality of client applications access to data in a distributed file system including a plurality of storage elements, comprising:
-
a plurality of read servers coupled to the client applications and to the distributed file system, each read server configured to read file data from the distributed file system and return the file data to the client applications in response to read requests from the client applications and configured to transmit write requests to a write server;
the write server coupled to the client applications and to the distributed file system, the write server configured to write data to the distributed file system in response to write requests from the client applications, each write request including a replacement data element to replace a current data element at a current storage location on one of the storage elements;
a load balancer coupled to the client applications and to the plurality of read servers, the load balancer configured and arranged to selectively transmit read requests and write requests from the client applications to the plurality of read servers as a function of respective levels of processing loads of the read servers, wherein each of the read servers is further configured and arranged to distinguish between read requests and write requests and transmit write requests to the write server; and
a data consistency control module hosted on the write server, the control module configured and arranged to write the replacement data element to a new location in one of the storage elements while leaving the current data element accessible to read requests processed by the read servers, lock a file meta-data element that references the current storage location while updating the file meta-data element to reference the new location having the replacement data element, and unlock the file meta-data element after updating. - View Dependent Claims (10)
-
-
11. A system for providing a plurality of client applications access to data in a distributed file system including a plurality of storage elements, comprising:
-
a plurality of read servers coupled to the client applications and to the distributed file system, each read server configured to read file data from the distributed file system and return the file data to the client applications in response to read requests from the client applications and configured to transmit write requests to a write server;
the write server coupled to the client applications and to the distributed file system, the write server configured to write data to the distributed file system in response to write requests from the client applications, each write request including a replacement data element to replace a current data element at a current storage location on one of the storage elements;
a load balancer coupled to the client applications, to the plurality of read servers, and to the write server, the load balancer configured and arranged to distinguish between read requests and write requests and selectively transmit read requests from the client applications to the plurality of read servers as a function of respective levels of processing loads of the read servers and configured and arranged to transmit write requests to the write server; and
a data consistency control module hosted on the write server, the control module configured and arranged to write the replacement data element to a new location in one of the storage elements while leaving the current data element accessible to read requests processed by the read servers, lock a file meta-data element that references the current storage location while updating the file meta-data element to reference the new location having the replacement data element, and unlock the file meta-data element after updating. - View Dependent Claims (12)
-
-
13. A system for providing a plurality of client applications access to data in a distributed file system including a plurality of storage elements, comprising:
-
a plurality of read servers coupled to the client applications and to the distributed file system, each read server configured to read file data from the distributed file system and return the file data to the client applications in response to read requests from the client applications and configured to transmit write requests to a write server;
the write server coupled to the client applications and to the distributed file system, the write server configured to write data to the distributed file system in response to write requests from the client applications, each write request including a replacement data element to replace a current data element at a current storage location on one of the storage elements;
a plurality of load balancers, each load balancer coupled to a respective one of the client applications, to the plurality of read servers, and to the write server, each load balancer configured and arranged to distinguish between read requests and write requests and selectively transmit read requests from a coupled client application to the plurality of read servers as a function of respective levels of processing loads of the read servers and configured and arranged to transmit write requests to the write server; and
a data consistency control module hosted on the write server, the control module configured and arranged to write the replacement data element to a new location in one of the storage elements while leaving the current data element accessible to read requests processed by the read servers, lock a file meta-data element that references the current storage location while updating the file meta-data element to reference the new location having the replacement data element, and unlock the file meta-data element after updating. - View Dependent Claims (14)
-
-
15. A system for providing a plurality of client applications access to data in a distributed file system including a plurality of storage elements, comprising:
-
a plurality of read servers coupled to the client applications and to the distributed file system, each read server configured to read file data from the distributed file system and return the file data to the client applications in response to read requests from the client applications and configured to transmit write requests to a write server;
a write server coupled to the client applications and to the distributed file system, the write server configured to write data to the distributed file system in response to write requests from the client applications, each write request including a replacement data element to replace a current data element at a current storage location on one of the storage elements;
a plurality of load balancers, each load balancer coupled to the plurality of read servers, each load balancer configured and arranged to selectively transmit read requests and write requests from client applications to the plurality of read servers as a function of respective levels of processing loads of the read servers, wherein each of the read servers is further configured and arranged to distinguish between read requests and write requests and transmit write requests to the write server; and
a data consistency control module hosted on the write server, the control module configured and arranged to write the replacement data element to a new location in one of the storage elements while leaving the current data element accessible to read requests processed by the read servers, lock a file meta-data element that references the current storage location while updating the file meta-data element to reference the new location having the replacement data element, and unlock the file meta-data element after updating. - View Dependent Claims (16)
-
-
17. A method for providing a plurality of client applications access to data in a distributed file system, comprising:
-
identifying read requests and write requests from the client applications;
selecting in response to each read request, one of a plurality of read servers;
sending each read request to the selected one of the read servers;
sending each write request to a write server, each write request including a first data value to replace a current data value at a first storage location on one of a plurality of storage elements coupled to the read servers and to the write server;
reading from a storage element coupled to a read server, in response to a read request received at the read server, file data and returning the file data to a requesting client application; and
in response to each write request received at the write server, writing the first data value to a second location in one of the storage elements while leaving the current data value accessible for read requests processed by the read servers, wherein the first location is different from the second location;
locking a file meta-data element that references the first storage location;
updating, while the file meta-data element is locked, the file meta-data element to reference the second location; and
unlocking the file meta-data element after updating. - View Dependent Claims (18, 19, 20, 21)
-
-
22. An apparatus for providing a plurality of client applications access to data in a distributed file system, comprising:
-
means for identifying read requests and write requests from the client applications;
means for selecting in response to each read request, one of a plurality of read servers;
means for sending each read request to the selected one of the read servers;
means for sending each write request to a write server, each write request including a first data value to replace a current data value at a first storage location on one of a plurality of storage elements coupled to the read servers and to the write server;
means for reading from a storage element coupled to a read server, in response to a read request received at the read server, file data and returning the file data to a requesting client application; and
means, responsive to each write request received at the write server, for writing the first data value to a second location in one of the storage elements while leaving the current data value accessible for read requests processed by the read servers, wherein the first location is different from the second location, for locking a file meta-data element that references the first storage location, for updating, while the file meta-data element is locked, the file meta-data element to reference the second location, and for unlocking the file meta-data element after updating. - View Dependent Claims (23)
-
Specification