Claims Analysis
Total Claims: 12
Claim 1
Independent Claim
229 words
In a distributed computing network containing a plurality of interconnected nodes, each node comprising a processor and data storage means, a plurality of data files or non-volatile storage distributed among said nodes including a tree structure of key-index data, said tree structure of key-index data including a ROOT of the tree structure for a top level of the tree, a method for balancing, among nodes, said tree structure, comprising processor executed steps of: a. providing said ROOT in a file in a non-volatile storage, said ROOT including first and second lists, each being a list of keys describing a distribution of key-index data indentifiers are distributed, copies of said ROOT; c. determining if a first node contains an excess of said key-index data indentifiers in comparison to a second node; d. upon a determination of said excess, moving said excess key-index data indentifiers to non-volatile storage on said second node to achieve an approximately balanced distribution thereof; and e. updating said second lists in files containing copies of said ROOT in said first and second nodes by noting each move of a key index data identifier, whereby upon a malfunction of either said first or second node before said approximate balance is achieved, a difference in entries exists between said first and second lists in a ROOT file in a non-failed first or second node that enables system recovery.
Claim 2
Dependent Claim
229 words
In a distributed computing network containing a plurality of interconnected nodes, each node comprising a processor and data storage means, a plurality of data files or non-volatile storage distributed among said nodes including a tree structure of key-index data, said tree structure of key-index data including a ROOT of the tree structure for a top level of the tree, a method for balancing, among nodes, said tree structure, comprising processor executed steps of: a. providing said ROOT in a file in a non-volatile storage, said ROOT including first and second lists, each being a list of keys describing a distribution of key-index data indentifiers are distributed, copies of said ROOT; c. determining if a first node contains an excess of said key-index data indentifiers in comparison to a second node; d. upon a determination of said excess, moving said excess key-index data indentifiers to non-volatile storage on said second node to achieve an approximately balanced distribution thereof; and e. updating said second lists in files containing copies of said ROOT in said first and second nodes by noting each move of a key index data identifier, whereby upon a malfunction of either said first or second node before said approximate balance is achieved, a difference in entries exists between said first and second lists in a ROOT file in a non-failed first or second node that enables system recovery.
Claim 3
Dependent Claim
63 words
The method as defined in claim 1 wherein said ROOT contains an indication of key-index data identifier boundary values in each said node, wherein step c further comprises the step of: c1. establishing a new boundary value for said first node in said second list of said ROOT to enable a determination of key-index data identifiers to be moved from said first node.
Claim 4
Dependent Claim
62 words
The method as defined in claim 2 wherein step (e) includes further the steps of: e1. in said first node, establishing a pointed to indicate a next key-index data identifier to be moved; and e2. establishing a pointed in said second node, indicating a key-index data identifier boundary after moving a key-index data identifier into said second node from said first node.
Claim 5
Dependent Claim
66 words
The method as defined in claim 3 further including the steps of: e3. deleting a key-index data identifier in said first node when said first node receives from said second node an acknowledgement of receipt of said key-index data identifier; and e4. moving said pointer in said first node to a next key-index data identifier to be moved, until said pointer reaches said new boundary value.
Claim 6
Dependent Claim
53 words
The method as defined in claim 4 comprising the further step of: f. in the event of a malfunction in a node, determining if a rebalancing was in process between nodes by comparing, in each said node, the first and second lists of said ROOT data structure to determine identify or non-identity thereof.
Claim 7
Dependent Claim
46 words
The method as defined in claim 5 comprising the further step of: g. upon a determination in any said node of non-identity in said first and second lists, performing steps e1-e4, starting with a non-identical key-index data identifier in said second list found in step f.
Claim 8
Dependent Claim
42 words
The method as defined in claim 6, further comprising the steps of: h. terminating said step g in a said node when said pointer indicates a key-index data identifier whose value is less than a said boundary value established in step c1.
Claim 9
Dependent Claim
53 words
The method as defined in claim 1 wherein said moving step (d) includes the further step of: d1. retaining in said first node a copy of each key-index data identifier moved to said second node until acknowledgement of receipt and storage of a moved key-index data identifier in said second node is received.
Claim 10
Dependent Claim
56 words
The method as defined in claim 8 comprising the further step of: f. upon all said excess key-index data identifiers having been moved to said second node, writing an updated copy of said second list in place of said first list in said ROOT data structure in non-volatile storage for said tree of key-index data identifiers.
Claim 11
Dependent Claim
23 words
The method of claim 9, further comprising the step of: g. propagating to all nodes said updated copy of said ROOT data structure.
Claim 12
Dependent Claim
70 words
The method as defined in claim 1, further comprising the steps of: f. responding to a key-index data identifier movement command transmitted to said first node from a node not involved in said balancing, by determining if the portion of said tree data structure in which said command is sought has been moved to said second node and, if so, redirecting said key-index data identifier command to said second node.