Systems and methods for maintaining distributed data
First Claim
Patent Images
1. An indexing system, comprising:
- a plurality of storage devices configured to communicate with each other;
a set of database records each record with a distinct index; and
a balanced index tree structure comprising;
a first and second copy of a set of leaf nodes stored among the plurality of storage devices configured to store the set of database records based on the indexes; and
a first and second copy of a set of parent nodes of the leaf nodes stored among the plurality of storage devices and configured to store references to the first and second copy of the set of leaf nodes;
a first and second copy of a set of grandparent nodes of the leaf nodes stored among the plurality of storage devices, configured to store references to the first and second copy of the parent nodes;
a first and second copy of a root node configured to store references to the first and second copy of the grandparent nodes;
the set of parent nodes, set of grandparent nodes, and the root node configured to index the first and second copy of the set of leaf nodes based on the indexes in the form of a balanced tree.
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.
196 Citations
20 Claims
-
1. An indexing system, comprising:
-
a plurality of storage devices configured to communicate with each other;
a set of database records each record with a distinct index; and
a balanced index tree structure comprising;
a first and second copy of a set of leaf nodes stored among the plurality of storage devices configured to store the set of database records based on the indexes; and
a first and second copy of a set of parent nodes of the leaf nodes stored among the plurality of storage devices and configured to store references to the first and second copy of the set of leaf nodes;
a first and second copy of a set of grandparent nodes of the leaf nodes stored among the plurality of storage devices, configured to store references to the first and second copy of the parent nodes;
a first and second copy of a root node configured to store references to the first and second copy of the grandparent nodes;
the set of parent nodes, set of grandparent nodes, and the root node configured to index the first and second copy of the set of leaf nodes based on the indexes in the form of a balanced tree.
-
-
2. An indexing system, comprising:
-
a plurality of storage devices configured to communicate with each other;
a set of data units wherein the set of data units includes an index value for each data unit; and
an index data structure comprising;
a first and second copy of a set of first nodes stored among the plurality of storage devices; and
a first and second copy of a set of second nodes stored among the plurality of storage devices;
the first and second copy of the set of second nodes configured to store the set of data units based on the index values of each data unit; and
the first and second copy of the set of first nodes configured to index the first and second copy of the set of second nodes based on the index values of the data units stored in the second nodes. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for indexing data in an index tree, comprising:
-
providing an index tree with inner nodes, leaf nodes, redundant copies of the inner nodes, and redundant copies of the leaf nodes;
receiving a first data with a first index;
traversing the index tree to select one of the leaf nodes on which to store first data based at least on the first index;
storing the first data on the selected leaf node;
storing the first data on the redundant copy of the selected leaf node; and
traversing the inner nodes and redundant copies of the inner nodes that are parents of the selected leaf node to update metadata related to the inner nodes and the redundant copies of the inner nodes to reflect the stored first data. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification