Address generation and cluster extension in distributed systems using tree method
First Claim
1. A computer-implemented method, comprising:
- establishing a cluster of leaf nodes and a cluster of back-end servers, the cluster of back-end servers organized into a data structure of at least one leaf node, each leaf node in the cluster of leaf nodes assigned a unique leaf node identifier, each element of the leaf node identifier identifying a branch of the data structure traversed to reach the leaf node, and each back-end server assigned to a particular leaf node and mirroring other back-end servers assigned to the same particular leaf node;
storing new data objects on each back-end server assigned to the particular leaf node, the particular leaf node providing for each new data object a universal identifier including;
(i) an object identifier that is unique on the particular leaf node; and
(ii) a server identifier including the leaf node identifier of the particular leaf node to which the assigned back-end servers storing the new data objects are assigned; and
splitting, by operation of a computer, the particular leaf node into at least two new leaf nodes to replace the particular leaf node, wherein splitting the particular leaf node includes reassigning the cluster of back-end servers, originally organized into the particular leaf node, to the at least two new leaf nodes such that each new leaf node is assigned at least two back-end servers of the cluster of back-end servers, and wherein a first back-end server of the back-end servers assigned to each new leaf node mirrors other back-end servers assigned to the same particular new leaf node but does not mirror the back-end servers reassigned to other new leaf nodes replacing the particular leaf node.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus, including computer program products, for managing a cluster of servers organized into nodes. A method of one aspect includes establishing a cluster; establishing a set of ultimate identifiers for nodes resulting from splitting in the cluster; and storing every new data object on a node that has a node identifier that identifies a subset of the set of ultimate identifiers, and providing for the object a universal identifier that combines (i) an object identifier that is unique on the node and (ii) a server identifier that is one of the ultimate identifiers in the subset. A method of another aspect includes generating for a new data object a universal identifier that has a node identifier part that uniquely identifies a node, a reserve part generated at least in part as a pseudo-random value, and an object identifier part that uniquely identifies the object in the node.
-
Citations
24 Claims
-
1. A computer-implemented method, comprising:
-
establishing a cluster of leaf nodes and a cluster of back-end servers, the cluster of back-end servers organized into a data structure of at least one leaf node, each leaf node in the cluster of leaf nodes assigned a unique leaf node identifier, each element of the leaf node identifier identifying a branch of the data structure traversed to reach the leaf node, and each back-end server assigned to a particular leaf node and mirroring other back-end servers assigned to the same particular leaf node; storing new data objects on each back-end server assigned to the particular leaf node, the particular leaf node providing for each new data object a universal identifier including; (i) an object identifier that is unique on the particular leaf node; and (ii) a server identifier including the leaf node identifier of the particular leaf node to which the assigned back-end servers storing the new data objects are assigned; and splitting, by operation of a computer, the particular leaf node into at least two new leaf nodes to replace the particular leaf node, wherein splitting the particular leaf node includes reassigning the cluster of back-end servers, originally organized into the particular leaf node, to the at least two new leaf nodes such that each new leaf node is assigned at least two back-end servers of the cluster of back-end servers, and wherein a first back-end server of the back-end servers assigned to each new leaf node mirrors other back-end servers assigned to the same particular new leaf node but does not mirror the back-end servers reassigned to other new leaf nodes replacing the particular leaf node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-accessible, non-transitory, storage medium encoded with computer-readable instructions configured to cause one or more data processing apparatus to:
-
establish a cluster of leaf nodes and a cluster of back-end servers, the cluster of back-end servers organized into a data structure of at least one leaf node, each leaf node in the cluster of leaf nodes assigned a unique leaf node identifier, each element of the leaf node identifier identifying a branch of the data structure traversed to reach the leaf node, and each back-end server assigned to a particular leaf node and mirroring other back-end servers assigned to the same particular leaf node; store new data objects on each back-end server assigned to the particular leaf node, the particular leaf node providing for each new data object a universal identifier including; (i) an object identifier that is unique on the particular leaf node; and (ii) a server identifier including the leaf node identifier of the particular leaf node to which the assigned back-end servers storing the new data objects are assigned; and split, by operation of a computer, the particular leaf node into at least two new leaf nodes to replace the particular leaf node, wherein splitting the particular leaf node includes reassigning the cluster of back-end servers, originally organized into the particular leaf node, to the at least two new leaf nodes such that each new leaf node is assigned at least two back-end servers of the cluster of back-end servers, and wherein a first back-end server of the back-end servers assigned to each new leaf node mirrors other back-end servers assigned to the same particular new leaf node but does not mirror the back-end servers reassigned to other new leaf nodes replacing the particular leaf node. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A system, comprising:
at least one computer configured to; establish a cluster of leaf nodes and a cluster of back-end servers, the cluster of back-end servers organized into a data structure of at least one leaf node, each leaf node in the cluster of leaf nodes assigned a unique leaf node identifier, each element of the leaf node identifier identifying a branch of the data structure traversed to reach the leaf node, and each back-end server assigned to a particular leaf node and mirroring other back-end servers assigned to the same particular leaf node; store new data objects on each back-end server assigned to the particular leaf node, the particular leaf node providing for each new data object a universal identifier including; (i) an object identifier that is unique on the particular leaf node; and (ii) a server identifier including the leaf node identifier of the particular leaf node to which the assigned back-end servers storing the new data objects are assigned; and split, by operation of a computer, the particular leaf node into at least two new leaf nodes to replace the particular leaf node, wherein splitting the particular leaf node includes reassigning the cluster of back-end servers, originally organized into the particular leaf node, to the at least two new leaf nodes such that each new leaf node is assigned at least two back-end servers of the cluster of back-end servers, and wherein a first back-end server of the back-end servers assigned to each new leaf node mirrors other back-end servers assigned to the same particular new leaf node but does not mirror the back-end servers reassigned to other new leaf nodes replacing the particular leaf node. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
Specification