Claims Analysis
Total Claims: 18
Claim 1
Independent Claim
90 words
A method in a computer system for storing a unit of data on a storage device, the method comprising the steps of: storing a first node entry having a first associated node identifier on the storage device as part of a tree data structure that indexes a group of data, the first node entry comprising a field for storing key values, a field for storing identifying information for subnodes, and a first data area for storing units of data; and storing the unit of data in the first data area.
Claim 2
Dependent Claim
50 words
The method recited in claim 1, further comprising the steps of: storing a second node entry on the storage device as part of the tree data structure; and storing identifying information for the second node entry in the field for storing identifying information for subnodes in the first node entry.
Claim 3
Dependent Claim
60 words
The method recited in claim 2 wherein the step of storing the second node entry on the storage device as part of the tree data structure further comprises the step of storing the second node entry, comprising only data and having no key values and no identifying information for subnodes, on the storage device as part of the tree structure.
Claim 4
Dependent Claim
68 words
The method recited in claim 2 wherein the step of storing the second node entry on the storage device as part of the tree data structure further comprises the step of storing the second node entry, comprising a field storing key values, a field storing identifying information for subnodes and a data area for storing units of data, on the storage device as part of the tree structure.
Claim 5
Dependent Claim
68 words
The method recited in claim 2, further comprising the step of storing a subtree of data in the tree structure on the storage device and said step of storing the second node entry further comprising the step of storing a pointer node as the second node entry in the storage device as part of the tree structure, said pointer node holding a pointer to the subtree of data.
Claim 6
Dependent Claim
111 words
The method of claim 1, further comprising the steps of: storing a parent node entry for the first node entry in the tree data structure, the parent node entry having a second node identifier associated with it and comprising a field for storing key values, a field for storing identifying information for subnodes, and a data area for storing units of data, the unit of data having a key value; storing the key value of the unit of data in the field for storing key values in the parent node entry; and storing the first node identifier in the field for storing identifying information for subnodes in the parent node entry.
Claim 7
Independent Claim
235 words
A method in a computer system for storing a unit of data on a storage device, the method comprising the steps of: providing a first node entry having a first associated node identifier on the storage device as part of a tree data structure that indexes a group of data, the first node entry comprising a field for storing key values and a field for storage identifying information for subnodes, and a first data area for storing units of data; receiving a request to store the unit of data on the storage device; determining whether the unit of data can be stored in the first data area; when it is determined that the unit of data cannot be stored in the first data area, creating a new node entry on the storage device, the new node entry having a new node identifier and comprising a new key value table, a new subnode table, and a new data area, storing the unit of data in the new data area, creating a pointer node entry on the storage device, the pointer node entry having a pointer node identifier, storing the new node identifier in the pointer node entry, and storing the pointer node identifier in the first subnode table; and when it is determined that the unit of data can be stored in the first data area, storing the unit of data in the first data area.
Claim 8
Independent Claim
243 words
A method in a computer system for storing a selected unit of data having an associated key value and a size on a storage device, the method comprising the steps of: storing a plurality of node entry groups on the storage device, each node entry group comprising one or more node entries and having an amount of available space, each node entry having a unique node identifier and comprising a key value table, a subnode table, and a data area for storing units of data; based upon the key value of the unit of data, determining in which of the plurality of node entry groups the selected unit of data should be stored; based upon the size of the unit of data and the amount of available space in the determined node entry group, determining whether the selected unit of data can be stored in the determined node entry group; when the amount of available space in the determined node entry group is smaller than the size of the unit of data, creating a new node entry group on the storage device, the new node entry group containing a new node entry having a new node identifier and comprising a new key value table, a new subnode table, and a new data area; storing the unit of data in the new data area; and storing the new node identifier of the new node entry in the subnode table of the determined node entry.
Claim 9
Dependent Claim
48 words
The method of claim 8 wherein the step of determining in which one of the node entries the selected unit of data should be stored includes the step of comparing the key value of the selected unit of data to the key values stored in each node entry.
Claim 10
Dependent Claim
70 words
The method of claim 8 wherein the determined node entry is contained within a fixed-size page having an amount of available space, wherein the selected unit of data has a size, and wherein the step of determining whether the selected unit of data can be stored in the determined node entry includes comparing the size of the selected unit of data to the amount of available space in the page.
Claim 11
Independent Claim
356 words
A method in a computer system for storing a selected data unit on a storage device, the storage device logically divided into a plurality of fixed-size blocks, each block comprising a block header, an array of tags, and a plurality of node entries, each node entry comprising a key value table, a subnode table, and a data table, the method comprising the steps of: assigning a key value to the selected data unit; based upon the assigned key value, determining in which node entry the selected data unit should be stored; determining whether the selected data unit can be stored in the block which contains the determined node entry; when the selected data unit can be stored in the block which contains the determined node entry, determining whether the selected data unit can be stored in the determined node entry; when the selected data unit can be stored in the determined node entry, storing the selected data unit in the determined node entry; when the selected data unit cannot be stored in the determined node entry but can be stored in the block which contains the determined node entry, creating a new node entry and storing the selected data unit in the new node entry, storing the node identifier of the new node entry in the subnode table of the determined node entry, and storing the key value of the selected data unit in the key value table of the determined node entry; and when the selected data unit cannot be stored in the determined node entry and cannot be stored in the block which contains the determined node entry, requesting allocation of a new block, creating a new node entry and storing the selected data unit in the new node entry, storing a pointer node in the block which contains the determined node entry and storing the node identifier of the new node entry in the pointer node, storing the node identifier of the pointer node in the subnode table of the determined node entry, and storing the key value of the selected data unit in the key value table of the determined node entry.
Claim 12
Dependent Claim
101 words
A computer system for storing a unit of data on a storage device, the computer system comprising: a node storage mechanism for storing a node entry on the storage device as part of a tree data structure that indexes a group of data, the node entry having a first node identifier associated with it and comprising a first key value table for storing key values, a first subnode table for storing node identifiers of subnodes, and a first data area for storing units of data; and a data storage mechanism for storing the unit of data in the first data area.
Claim 13
Dependent Claim
108 words
The computer system of claim 12, the node entry having a parent node entry in the tree data structure, the parent node entry having a second node identifier associated with it and comprising a second key value table for storing key values, a second subnode table for storing node identifiers of subnodes, and a second data area for storing units of data, the unit of data having a key value, additionally comprising: a key storage mechanism for storing the key value of the unit of data in the second key value table; and a subnode storage mechanism for storing the first node identifier in the second subnode table.
Claim 14
Dependent Claim
188 words
The computer system of claim 13 additionally comprising: a mechanism for determining whether the unit of data can be stored in the first data area; when it is determined that the unit of data cannot be stored in the first data area, a node creator mechanism for creating a new node entry on the storage device, the new node entry having a new node identifier and comprising a new key value table, a new subnode table, and a new data area, a second data storage mechanism for storing the unit of data in the new data area, a pointer node creator mechanism for creating a pointer node entry on the storage device, the pointer node entry having a pointer node identifier, a second node storage mechanism for storing the new node identifier in the pointer node entry, and a pointer node storage mechanism for storing the pointer node identifier in the first subnode table; and when it is determined that the unit of data can be stored in the first data area, a third data storage mechanism for storing the unit of data in the first data area.
Claim 15
Dependent Claim
256 words
A computer system for storing a selected unit of data on a storage device, the selected unit of data having an associated key value and a size, the storage device storing a plurality of node entry groups (pages), each node entry group (page) comprising one or more node entries and having an amount of available space, each node entry having a unique node identifier and comprising a key value table, a subnode table, and a data area for storing units of data, comprising: means for determining in which of the plurality of node entry groups (pages) the selected unit of data should be stored based upon the key value of the unit of data; means for determining whether the selected unit of data can be stored in the determined node entry group (page) based upon the size of the unit of data and the amount of available space in the determined node entry group (page); means for creating a new node entry group (page) on the storage device when the amount of available space in the determined node entry group is smaller than the size of the unit of data, the new node entry group (page) containing a new node entry having a new node identifier and comprising a new key value table, a new subnode table, and a new data area; means for storing the unit of data in the new data area; and means for storing the new node identifier of the new node entry in the subnode table of the determined node entry.
Claim 16
Dependent Claim
48 words
The computer system of claim 15 wherein the means for determining in which one of the node entries the selected unit of data should be stored includes means for comparing the key value of the selected unit of data to the key values stored in each node entry.
Claim 17
Dependent Claim
71 words
The computer system of claim 15 wherein the determined node entry is contained within a fixed-size page having an amount of available space, wherein the selected unit of data has a size, and wherein the means for determining whether the selected unit of data can be stored in the determined node entry includes comparing the size of the selected unit of data to the amount of available space in the page.
Claim 18
Dependent Claim
374 words
A computer system for storing a selected data unit on a storage device, the storage device logically divided into a plurality of fixed-size blocks, each block comprising a block header, an array of tags, and a plurality of node entries, each node entry comprising a key value table, a subnode table, and a data table, comprising: means for assigning a key value to the selected data unit; means for determining in which node entry the selected data unit should be stored based upon the assigned key value; means for determining whether the selected data unit can be stored in the block which contains the determined node entry; means for determining whether the selected data unit can be stored in the determined node entry when the selected data unit can be stored in the block which contains the determined node entry; means for storing the selected data unit in the determined node entry when the selected data unit can be stored in the determined node entry,; when the selected data unit cannot be stored in the determined node entry but can be stored in the block which contains the determined node entry, means for creating a new node entry and storing the selected data unit in the new node entry, means for storing the node identifier of the new node entry in the subnode table of the determined node entry, and means for storing the key value of the selected data unit in the key value table of the determined node entry; and when the selected data unit cannot be stored in the determined node entry and cannot be stored in the block which contains the determined node entry, means for requesting allocation of a new block, means for creating a new node entry and storing the selected data unit in the new node entry, means for storing a pointer node in the block which contains the determined node entry and storing the node identifier of the new node entry in the pointer node, means for storing the node identifier of the pointer node in the subnode table of the determined node entry, and means for storing the key value of the selected data unit in the key value table of the determined node entry.