DISTRIBUTED FILE SYSTEM USING CONSENSUS NODES
First Claim
1. A cluster of nodes comprising computing devices configured to implement a distributed file system, comprising:
- a plurality of data nodes, each configured to store data blocks of client files;
at least two namenodes, each coupled to the plurality of data nodes and each configured to store a state of a namespace of the cluster and each being configured to respond to a request from a client while at least one other of the namenodes is responding to another request from another client;
a coordination engine coupled to each of the namenodes, the coordination engine being configured to receive proposals from the namenodes to change the state of the namespace and to generate, in response, an ordered set of agreements that specifies an order in which the namenodes are to change the state of the namespace, wherein the namenodes are configured to delay making changes to the state of the namespace until the ordered set of agreements is received from the coordination engine.
3 Assignments
0 Petitions
Accused Products
Abstract
A cluster of nodes in a distributed file system may include; at least two namenodes, each coupled to a plurality of data nodes and each configured to store a state of a namespace of the cluster and each being configured to respond to a request from a client while other(s) of the namenodes are responding to other requests from other clients; and a coordination engine coupled to each of the namenodes. The coordination engine may be configured to receive proposals from the namenodes to change the state of the namespace by replicating, deleting and/or adding data blocks stored in the data nodes and to generate, in response, an ordered set of agreements that specifies an order in which the namenodes are to change the state of the namespace. The namenodes are configured to delay making changes thereto until after the ordered set of agreements is received from the coordination engine.
-
Citations
49 Claims
-
1. A cluster of nodes comprising computing devices configured to implement a distributed file system, comprising:
-
a plurality of data nodes, each configured to store data blocks of client files; at least two namenodes, each coupled to the plurality of data nodes and each configured to store a state of a namespace of the cluster and each being configured to respond to a request from a client while at least one other of the namenodes is responding to another request from another client; a coordination engine coupled to each of the namenodes, the coordination engine being configured to receive proposals from the namenodes to change the state of the namespace and to generate, in response, an ordered set of agreements that specifies an order in which the namenodes are to change the state of the namespace, wherein the namenodes are configured to delay making changes to the state of the namespace until the ordered set of agreements is received from the coordination engine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 46, 48, 49)
-
-
23-45. -45. (canceled)
-
47. A computing device configured as a part of a distributed file system, comprising:
-
a first namenode coupled to a plurality of data nodes, each of which is configured to store data blocks of client files, the first namenode being configured to store a state of a namespace of a cluster of computing nodes, the first namenode being configured to be coupled to a second namenode that is coupled to the plurality of data nodes and that is configured to store the state of the namespace, the first namenode being further configured to respond to a request from a client while the second namenode is responding to another request from another client; and a first coordination engine coupled to the first namenode, the coordination engine being configured to receive proposals from the first namenode to change the state of the namespace and to generate, in response, an ordered set of agreements that specifies an order in which the first and the second namenodes are to change the state of the namespace.
-
Specification