Systems and methods for maintaining distributed data
First Claim
Patent Images
1. A computer-implemented method of accessing a data unit stored at a leaf node of a distributed index tree, the method comprising:
- using a reference from a superblock to access an available copy of a root node, copies of the root node stored on different devices among a plurality of storage devices, each copy of the root node comprising a first reference to a first copy of a branch of the distributed index tree and a second reference to a second copy of the branch, wherein the branch leads to one or more copies of a parent node;
accessing, by a computer processor, an available copy of the parent node, copies of the parent node stored on different devices among the plurality of storage devices, each copy of the parent node comprising a first electronic reference to a first copy of a leaf node stored on a first storage device, a second electronic reference to a second copy of the leaf node stored on a second storage device, and a third electronic reference to a third copy of the leaf node stored on a third storage device, the first storage device different from the second storage device;
determining, by a computer processor, that the first storage device is unavailable;
based on the determination that the first storage device is unavailable, choosing to access the second copy of the child node instead of the third copy of the child node based on a technique including at least one of a round robin technique based on the last storage device used, selecting a most recently used storage device, and choosing based on a preference of local storage devices over remote storage devices; and
processing, by a computer processor, the second electronic reference to access the second copy of the leaf node stored on the second storage device.
12 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.
441 Citations
20 Claims
-
1. A computer-implemented method of accessing a data unit stored at a leaf node of a distributed index tree, the method comprising:
-
using a reference from a superblock to access an available copy of a root node, copies of the root node stored on different devices among a plurality of storage devices, each copy of the root node comprising a first reference to a first copy of a branch of the distributed index tree and a second reference to a second copy of the branch, wherein the branch leads to one or more copies of a parent node; accessing, by a computer processor, an available copy of the parent node, copies of the parent node stored on different devices among the plurality of storage devices, each copy of the parent node comprising a first electronic reference to a first copy of a leaf node stored on a first storage device, a second electronic reference to a second copy of the leaf node stored on a second storage device, and a third electronic reference to a third copy of the leaf node stored on a third storage device, the first storage device different from the second storage device; determining, by a computer processor, that the first storage device is unavailable; based on the determination that the first storage device is unavailable, choosing to access the second copy of the child node instead of the third copy of the child node based on a technique including at least one of a round robin technique based on the last storage device used, selecting a most recently used storage device, and choosing based on a preference of local storage devices over remote storage devices; and processing, by a computer processor, the second electronic reference to access the second copy of the leaf node stored on the second storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for accessing a data unit stored in a distributed index tree comprising:
-
one or more computer processors; at least one computer memory accessible by at least one of the one or more computer processors; and a computing component comprising an executable software module executed by the one or more computer processors, wherein the computing component is operable to; use a reference from a superblock to access an available copy of a root node, copies of the root node stored on different devices among a plurality of storage devices, each copy of the root node comprising a first reference to a first copy of a branch of the distributed index tree and a second reference to a second copy of the branch, wherein the branch leads to one or more copies of a parent node; access an available copy of the parent node, copies of the parent node stored on different devices among the plurality of storage devices, each copy of the parent node comprising a first electronic reference to a first copy of a leaf node stored on a first storage device, a second electronic reference to a second copy of the leaf node stored on a second storage device, and a third electronic reference to a third copy of the leaf node stored on a third storage device, the first storage device different from the second storage device; determine that the first storage device is unavailable; based on the determination that the first storage device is unavailable, choose to access the second copy of the child node instead of the third copy of the child node based on a technique including at least one of a round robin technique based on the last storage device used, selecting a most recently used storage device, and choosing based on a preference of local storage devices over remote storage devices; and process the second electronic reference to access the second copy of the leaf node stored on the second storage device. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification