GEOGRAPHICALLY-DISTRIBUTED FILE SYSTEM USING COORDINATED NAMESPACE REPLICATION OVER A WIDE AREA NETWORK
First Claim
1. A computer-implemented method of maintaining a state of a namespace of a distributed file system in a local area network (LAN), the method comprising:
- storing the state of the namespace of the distributed file system in respective persistent storage coupled to each of a plurality of server node computing devices coupled to the LAN;
receiving, in at least some of the plurality of server node computing devices, at least one request to change the state of the namespace from at least some of a plurality of data node computing devices coupled to the LAN;
generating, by each of the plurality of server node computing nodes having received the at least one request to change the state of the namespace and for each of the at least one received request, a corresponding proposal to make the change to the state of the namespace;
sending the generated proposals to a coordination engine process that is coupled to the LAN and to each of the plurality of server node computing devices;
receiving, by the plurality of server node computing devices and for at least some of the generated proposals, an ordered set of agreements sent from the coordination engine process, the ordered set of agreements specifying an order in which the plurality server node computing devices are to update the state of the namespace stored in the respective persistent storages coupled thereto; and
updating, by the plurality of server node computing devices, the state of the namespace of the distributed file system stored in the respective persistent storages, in an order specified by the ordered set of agreements received from the coordination engine process.
1 Assignment
0 Petitions
Accused Products
Abstract
A cluster of nodes implements a single distributed file system comprises at least first and second data centers and a coordination engine process. The first data center may comprise first DataNodes configured to store data blocks of client files, and first NameNodes configured to update a state of a namespace of the cluster. The second data center, geographically remote from and coupled to the first data center by a wide area network, may comprise second DataNodes configured to store data blocks of client files, and second NameNodes configured to update the state of the namespace. The first and second NameNodes are configured to update the state of the namespace responsive to data blocks being written to the DataNodes. The coordination engine process spans the first and second NameNodes and coordinates updates to the namespace stored such that the state thereof is maintained consistent across the first and second data centers.
54 Citations
20 Claims
-
1. A computer-implemented method of maintaining a state of a namespace of a distributed file system in a local area network (LAN), the method comprising:
-
storing the state of the namespace of the distributed file system in respective persistent storage coupled to each of a plurality of server node computing devices coupled to the LAN; receiving, in at least some of the plurality of server node computing devices, at least one request to change the state of the namespace from at least some of a plurality of data node computing devices coupled to the LAN; generating, by each of the plurality of server node computing nodes having received the at least one request to change the state of the namespace and for each of the at least one received request, a corresponding proposal to make the change to the state of the namespace; sending the generated proposals to a coordination engine process that is coupled to the LAN and to each of the plurality of server node computing devices; receiving, by the plurality of server node computing devices and for at least some of the generated proposals, an ordered set of agreements sent from the coordination engine process, the ordered set of agreements specifying an order in which the plurality server node computing devices are to update the state of the namespace stored in the respective persistent storages coupled thereto; and updating, by the plurality of server node computing devices, the state of the namespace of the distributed file system stored in the respective persistent storages, in an order specified by the ordered set of agreements received from the coordination engine process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system of maintaining a state of a namespace of a distributed file system in a local area network (LAN), the system comprising:
-
a plurality of server node computing devices coupled to the LAN; a respective persistent storage coupled to each of the plurality of server node computing devices, each respective persistent storage being configured to store the state of the namespace of the distributed file system; a plurality of data node computing devices coupled to the LAN, each being configured to request changes to the state of the namespace from one of the plurality of server node computing devices; wherein each of the plurality of server node computing devices are configured to, upon receiving requests to change the state of the namespace from one of the plurality of data node computing devices; generate, for each received request, a corresponding proposal to make the requested change to the state of the namespace; and send the generated proposals to a coordination engine process that is coupled to the LAN and to each of the plurality of server node computing devices; receive, from the coordination engine process, an ordered set of agreements that specifies an order in which the plurality server node computing devices are to update the state of the namespace stored in the respective persistent storages coupled thereto; and update, by the plurality of server node computing devices, the state of the namespace of the distributed file system stored in the respective persistent storages, in an order specified by the ordered set of agreements received from the coordination engine process. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification