Systems and methods for accessing and updating distributed data
First Claim
1. A computer-implemented method of maintaining protection levels for nodes of a distributed mirrored indexed tree while modifying data stored in the nodes, the method comprising:
- receiving a request to modify a target node of a mirrored index data structure organized in a hierarchy and stored among a plurality of storage devices, the mirrored index data structure comprising;
a root node;
at least one copy of the root node, wherein the root node and the copy of the root node are stored on different storage devices;
a plurality of nodes beneath the root node in the hierarchy, each of the nodes referencing one or more index nodes or indexed data, the plurality of nodes including the target node; and
at least one copy of each node of the plurality of nodes stored on one of the plurality of storage devices, wherein each node of the plurality of nodes and its respective copy are stored on different storage devices;
accessing, by a computer processor, a first reference to the target node and a second reference to a copy of the target node, the first reference and the second reference stored on a parent node of the target node, wherein the parent node is the root node or one of the plurality of nodes and is above the target node in the hierarchy, wherein the target node is stored on a first storage device of a plurality of storage devices, the copy of the target node is stored on a second storage device of the plurality of storage devices, the second storage device different from the first storage device;
determining, by a computer processor, whether the second storage device storing the copy of the target node is unavailable;
accessing, by a computer processor, the target node;
modifying, by a computer processor, the target node based on the request;
if the second storage device is unavailable, storing, by a computer processor, a copy of the modified target node on a third storage device of the plurality of storage devices, wherein the third storage device is available and is different from the first storage device and the second storage device, and updating, by a computer processor, the second reference; and
if the second storage device is available, updating, by a computer processor, the copy of the target 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.
-
Citations
23 Claims
-
1. A computer-implemented method of maintaining protection levels for nodes of a distributed mirrored indexed tree while modifying data stored in the nodes, the method comprising:
-
receiving a request to modify a target node of a mirrored index data structure organized in a hierarchy and stored among a plurality of storage devices, the mirrored index data structure comprising; a root node; at least one copy of the root node, wherein the root node and the copy of the root node are stored on different storage devices; a plurality of nodes beneath the root node in the hierarchy, each of the nodes referencing one or more index nodes or indexed data, the plurality of nodes including the target node; and at least one copy of each node of the plurality of nodes stored on one of the plurality of storage devices, wherein each node of the plurality of nodes and its respective copy are stored on different storage devices; accessing, by a computer processor, a first reference to the target node and a second reference to a copy of the target node, the first reference and the second reference stored on a parent node of the target node, wherein the parent node is the root node or one of the plurality of nodes and is above the target node in the hierarchy, wherein the target node is stored on a first storage device of a plurality of storage devices, the copy of the target node is stored on a second storage device of the plurality of storage devices, the second storage device different from the first storage device; determining, by a computer processor, whether the second storage device storing the copy of the target node is unavailable; accessing, by a computer processor, the target node; modifying, by a computer processor, the target node based on the request; if the second storage device is unavailable, storing, by a computer processor, a copy of the modified target node on a third storage device of the plurality of storage devices, wherein the third storage device is available and is different from the first storage device and the second storage device, and updating, by a computer processor, the second reference; and if the second storage device is available, updating, by a computer processor, the copy of the target node. - View Dependent Claims (2, 3, 4, 5, 6, 15, 16, 17, 18, 19)
-
-
7. A computer-implemented method of restoring mirrored nodes of a distributed indexed tree, the method comprising:
-
accessing, by a computer processor, a first reference to a child node of a mirrored index data structure organized in a hierarchy and stored among a plurality of drives, the mirrored index data structure comprising; a root node; at least one copy of the root node, wherein the root node and the copy of the root node are stored on different drives; a plurality of nodes beneath the root node in the hierarchy, each of the plurality of nodes referencing one or more index nodes or indexed data, the plurality of nodes including the child node; and at least one copy of each node of the plurality of nodes stored on one of the plurality of drives, wherein each node of the plurality of nodes and its respective copy are stored on different drives; accessing, by a computer processor, a second reference to a copy of the child node, the child node stored on a first drive of a plurality of drives and the copy of the child node stored on a different second drive of the plurality of drives, the first reference and the second reference stored in a parent node of the child node, wherein the parent node is the root node or one of the plurality of nodes and is above the child node in the hierarchy; determining, by a computer processor, whether the second drive on which the copy of the child node is stored is unavailable; and if the second drive is unavailable, storing, by a computer processor, a new copy of the child node on an available third drive of the plurality of drives, the third drive different than the first drive and the second drive, and updating, by a computer processor, the second reference. - View Dependent Claims (8, 9, 10, 20)
-
-
11. A distributed system comprising:
-
a plurality of storage units; a balanced, mirrored index tree stored among the plurality of storage units, the balanced, mirrored index tree organized in a hierarchy and comprising; a root node stored on one of the plurality of storage units; a copy of the root node stored on one of the plurality of storage units, wherein the root node and the copy of the root node are stored on different storage units; a plurality of nodes beneath the root node in the hierarchy, each of the nodes stored on one of the plurality of storage units; and a copy of each node of the plurality of nodes stored on one of the plurality of storage units, wherein each node of the plurality of nodes and its respective copy are stored on different storage units; wherein each of the plurality of storage units comprises one or more memory devices, at least one executable software module stored on the one or more memory devices, a processor configured to execute the at least one executable software module, a first index tree reference referencing the root node and a second index tree reference referencing the copy of the root node, the first index tree reference and the second index tree reference stored on the one or more memory devices of each of the plurality of storage units, and wherein the at least one executable software module comprises a modify module configured to; identify a target node of the plurality of nodes to be modified; determine that a copy of the target node is stored on an unavailable storage unit; modify the target node; store a copy of the modified target node on one of the plurality of storage units that is available and that is different from the storage unit that stores the target node; and update a parent node of the target node to reference the copy of the modified target node instead of the copy of the target node, wherein the parent node is the root node or one of the plurality of nodes and is above the target node in the hierarchy. - View Dependent Claims (12, 13, 14, 21, 22, 23)
-
Specification