Systems and methods for accessing and updating distributed data
First Claim
1. A method of modifying nodes stored on distributed indexed tree, the method comprising:
- receiving a target node, wherein the target node and a copy of the target node are stored among a plurality of devices;
accessing a parent node of the target node;
determining that the copy of the target node is stored on a failed device of the plurality of devices;
modifying the target node;
creating a new copy of the target node;
storing the new copy of the target node on at least one of the plurality of devices that is not a failed device; and
recursively updating the parent node.
14 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed that provide an indexing data structure. In one embodiment, the indexing data structure is mirrored index tree where the copies of the nodes of the tree are stored across devices in a distributed system. In one embodiment, nodes that are stored on an offline device are restored, and an offline device that comes back online is merged into the distributed system and given access to the current indexing data structure. In one embodiment, the indexing data structure is traversed to locate and restore nodes that are stored on offline devices of the distributed system.
243 Citations
20 Claims
-
1. A method of modifying nodes stored on distributed indexed tree, the method comprising:
-
receiving a target node, wherein the target node and a copy of the target node are stored among a plurality of devices;
accessing a parent node of the target node;
determining that the copy of the target node is stored on a failed device of the plurality of devices;
modifying the target node;
creating a new copy of the target node;
storing the new copy of the target node on at least one of the plurality of devices that is not a failed device; and
recursively updating the parent node. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of restoring mirrored nodes of a distributed indexed tree, the method comprising:
-
receiving a parent node;
for each child of the parent node, determining that at least one copy of the child is located on a failed drive;
retrieving a copy of the child from a non-failed drive;
creating a new copy of the child;
storing the new copy of the child on a non-failed drive;
updating the parent and copies of the parent to reference the new copy of the child; and
recursively restoring the child. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A method of merging a first device into a plurality of devices, the method comprising:
-
providing a first device configured to store a version value;
providing a plurality of devices, each of the plurality of devices configured to reference at least two copies of a mirrored index data structure and to store a version value receiving the first version value;
querying the plurality of devices for their corresponding version values;
determining a highest version value from the version values;
determining whether the first version value is lower than the highest version value;
if the first version value is lower than the highest version value, updating the version value of the first device to the highest version value; and
updating the first device to reference the at least two copies of the mirrored index data structure. - View Dependent Claims (13, 14, 15)
-
-
16. A distributed system comprising:
-
a plurality of storage units;
a balanced index tree configured to be organized by index values comprising a root node, a copy of the root node, a plurality of nodes, and a copy of the plurality of nodes;
a storage module configured to store the root node, the copy of the root node, the plurality of nodes, and the copy of the plurality of nodes stored among the plurality of storage units; and
index tree data stored on each of the plurality of storage units referencing the root node and the copy of the root node. - View Dependent Claims (17, 18, 19, 20)
-
Specification