Layered index with a basic unbalanced partitioned index that allows a balanced structure of blocks
First Claim
1. In a storage medium used by a database file management system executed on data processing system, a data structure that includes:
- a layered index arranged in blocks;
the layered index includes a basic partitioned index that is associated with data records;
the basic partitioned index enables accessing or updating the data records by key or keys, and being susceptible to an unbalanced structure of blocks;
said layered index enables accessing or updating the data records by key or keys and constitutes a balanced structure of blocks.
1 Assignment
0 Petitions
Accused Products
Abstract
In a database file management system for accessing data records and being executed on data processing system. The data records are linked to a trie index that is arranged in blocks and being stored in a storage medium. The trie index enables accessing or updating the data records by key or keys and being susceptible to an unbalanced structure of blocks. There is provided a method for constructing a layered index arranged in blocks, which includes the steps of providing the trie index and constructing a representative index over the representative keys of the trie index. The layered index enables accessing or updating the data records by key or keys and it constitutes a balanced structure of blocks.
178 Citations
98 Claims
-
1. In a storage medium used by a database file management system executed on data processing system, a data structure that includes:
-
a layered index arranged in blocks;
the layered index includes a basic partitioned index that is associated with data records;
the basic partitioned index enables accessing or updating the data records by key or keys, and being susceptible to an unbalanced structure of blocks;
said layered index enables accessing or updating the data records by key or keys and constitutes a balanced structure of blocks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 97, 98)
a representative index I1, . . . , Ih constructed such that any Ij is constructed over the representative keys of Ij−
1.
-
-
15. The layered index I0, . . . , Ih according to claim 14, wherein Ih is fully contained in one block.
-
16. The method for accessing a sought data record r by key k in the layered index of claim 1, comprising:
-
(a) searching k in Ih to Ik where h≧
k≧
0 and in the case it is not found in the key of a data record in order to find the block of Ih−
1 leading to k;
(b) repeating step (a) until reaching the block of I0 that is associated with the data record with key k, if exists.
-
-
17. The method for inserting a data record r by key k in the layered index of claim 1, comprising:
-
(a) searching k in Ih to Ik where h≧
k≧
0 and in the case it is not found in the key of a data record in order to find the block of Ih−
1 leading to k;
(b) repeating step (a) until reaching the block B of I0 that is associated with the data record with key k, if exists;
(c) associating r to B.
-
-
18. The method for deleting a data record r by key k in the layered index of claim 1, comprising:
-
(a) searching k in Ih to Ik where h≧
k≧
0 and in the case it is not found in the key of a data record in order to find the block of Ih−
1 leading to k;
(b) repeating step (a) until reaching the block B of I0 that is associated with the data record with key k, if exists;
(c) disconnecting r from B.
-
-
97. In a storage medium used by a database file management system executed on data processing system, a data structure that includes:
-
an index being stored in a storage medium and constructed over the keys of said data records that are stored in blocks;
the index being arranged in blocks with the leaf blocks being linked to data records by means of links;
said index is characterized in that at least one of said links is shared by at least two data records stored in the same block;
said index constituting a layered index according to claim 1, and blocks of said basic partitioned index are linked to said data records.
-
-
98. The storage medium of claim 97, wherein said index being constituted by a trie.
-
19. In a storage medium used by a database file management system executed on data processing system, a data structure that includes:
-
an index arranged in blocks and being constructed over the keys of data records;
the index includes a basic partitioned index that is associated with the data records;
the basic partitioned index enables accessing or updating the data records by key or keys, and being susceptible to an unbalanced structure of blocks;
said index enables accessing or updating the data records by key or keys and constitutes a balanced structure of blocks. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
(a) searching k in Ih to Ik where h≧
k≧
0 and in the case it is not found in the key of a data record in order to find the block of Ih−
1 leading to k;
(b) repeating step (a) until reaching the block of I0 that is associated with the data record with key k, if exists.
-
-
25. The method for inserting a data record r by key k in the layered index of claim 19, comprising:
-
(a) searching k in Ih to Ik where h≧
k≧
0 and in the case it is not found in the key of a data record in order to find the block of Ih−
1 leading to k;
(b) repeating step (a) until reaching the block B of I0 that is associated with the data record with key k, if exists;
(c) associating r to B.
-
-
26. The method for deleting a data record r by key k in the layered index of claim 19, comprising:
-
(a) searching k in Ih to Ik where h≧
k≧
0 and in the case it is not found in the key of a data record in order to find the block of Ih−
1 leading to k;
(b) repeating step (a) until reaching the block B of I0 that is associated with the data record with key k, if exists;
(c) disconnecting r from B.
-
-
27. In a storage medium used by a database file management system executed on data processing system, a data structure that includes:
-
an index arranged in blocks and being constructed over the keys of data records;
the index includes a trie that is associated with the data records;
the trie enables accessing or updating the data records by key or keys, and being susceptible to an unbalanced structure of blocks;
said index enables accessing or updating the data records by key or keys and constitutes a balanced structure of blocks. - View Dependent Claims (28, 29, 30, 31)
-
-
32. In a database file management system for accessing data records and being executed on data processing system;
- the data records are associated with a basic partitioned index arranged in blocks and being stored in a storage medium;
the basic partitioned index enables accessing or updating the data records by key or keys and being susceptible to an unbalanced structure of blocks;a method for constructing a layered index arranged in blocks, comprising the steps of;
(a) providing said basic partitioned index;
(b) constructing a representative index over a representative keys of said basic partitioned index;
said layered index enables accessing or updating the data records by key or keys and constitutes a balanced structure of blocks.- View Dependent Claims (33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 54)
(a) If B (in Ih−
1) overflows, it is split into two (or more) blocks and the representative of B in Ih is replaced by the representatives of the new blocks.(b) If the block of Ih overflows an additional layer Ih+1 is created and added to the layered index.
- the data records are associated with a basic partitioned index arranged in blocks and being stored in a storage medium;
-
46. The method according to claim 45, performed on the fly.
-
47. The method according to claim 45, performed post factum.
-
48. The method according to claim 32, wherein the constructing step (b) includes:
-
(a) at least one short link among the short links of a node (hereon split node) in the block (of Bi−
1 is deleted (hereon split link) in a way that at least two tries exist in the block;
(b) each of the sub-trees is moved to a separate block;
(c) if the block of Bi does not exist, Bi is created and a copied node of the split node is created in Bi;
(d) if the block of Bi exists and a copied node of the split node does not exist in Bi, then a copied node of the split node is created in Bi and connected to the trie of Bi such that Bi−
1′
(at the end of the split process) is accessible in a search path that includes the root node in Bi and the copied node and its labeled links according to the representative key of Bi−
1′
;
(e) if the copied node has no direct link, a direct link is added from the copied node to the block Bi−
1;
(f) a far link added from the copied node to the block Bi−
1′
or if the copied node has a short link to a child node in the direction of the far link, the far link is replaced by a direct link from the child node to block Bi−
1′
.
-
-
54. The method of claim 32, wherein said index supports sequential operations.
-
49. In a database file management system for accessing data records and being executed on data processing system;
- the data records are associated with a basic partitioned index arranged in blocks and being stored in a storage medium;
the basic partitioned index enables accessing or updating the data records by key or keys and being susceptible to an unbalanced structure of blocks;a method for constructing an index over the keys of the data records, the index being arranged in blocks, comprising the steps of;
(a) providing said basic partitioned index;
(b) constructing an index over a representative keys of said basic partitioned index;
said index enables accessing or updating the data records by key or keys and constitutes a balanced structure of blocks.- View Dependent Claims (50, 51, 52, 53, 55, 56, 57, 58)
(a) If B (in Ih−
1) overflows, it is split into two (or more) blocks and the representative of B in Ih is replaced by the representatives of the new blocks,(b) If the block of Ih overflows an additional layer Ih+1 is created and added to the layered index.
- the data records are associated with a basic partitioned index arranged in blocks and being stored in a storage medium;
-
57. The method according to claim 56, performed on the fly.
-
58. The method according to claim 56, performed post factum.
-
59. In a database file management system for accessing data records and being executed on data processing system;
- the data records are associated with a trie arranged in blocks and being stored in a storage medium;
the trie enables accessing or updating the data records by key or keys and being susceptible to an unbalanced structure of blocks;a method for constructing an index over the keys of the data records, the index being arranged in blocks, comprising the steps of;
(a) providing a trie;
(b) constructing an index over a representative keys of said trie;
said index enables accessing or updating the data records by key or keys and constitutes a balanced structure of blocks. - View Dependent Claims (60)
- the data records are associated with a trie arranged in blocks and being stored in a storage medium;
-
61. In a storage medium used by a database file management system executed on data processing system, a data structure that includes at least one probablistic access indexing file (PAIF) having a plurality of nodes and links;
-
the leaf nodes of said PAIF are associated each with at least one data record accessible to said user application program and wherein at least portion of said data record constitutes at least one search-key;
selected nodes in said PAIF represent, each, a given offset of a search key portion within said search key;
link(s) originated from each given node from among said selected nodes, represent, each, a unique value of said search key portion;
the PAIF having at least two sub-PAIF'"'"'s being arranged, each, in a block;
said data base file management system is further capable of arranging said blocks as a balanced structure of blocks. - View Dependent Claims (62, 63, 64)
i. advancing along a reference path commencing from the root node and ending at a data record associated to a leaf node (referred to as “
reference data record”
);
in each node in the reference path, advancing along a link originated from said node if the value represented by the link equals the value of the 1-bit-long key portion at the offset specified by said node;
in the case that the offset specified in the node is beyond any corresponding key portion in the key, or if there is no link with said value, advancing along an arbitrary path to any reference data record;
ii. comparing the search key of the reference data record to that of the new data record for determining the smallest offset of the search key portion that discerns the two (hereinafter discerning offset), iii. proceed to one of the following steps (iii.0-iii.3) depending upon the value of the discerning offset;
iii.0 if the data records are equal then terminate;
oriii.1 if the discerning offset matches the offset indicated by one of the nodes in the reference path, add another link originating from said one node and assign to said link the value of the search key portion at the discerning offset taken from the search key of the new data record;
oriii.2 if the discerning offset is larger than that indicated by the leaf node that is linked, by means of a link, to the reference data record;
iii.2.1 disconnect the link from the reference data record (i.e. it remains temporarily “
loose”
) and move the link to a new node;
the new node is assigned with a value of the discerning offset;
iii.2.2 connect the reference data record and the new node (which now becomes a leaf node) and assign to the link (long link) a value of the search-key-portion at the discerning offset taken from the search key of the reference data record;
iii.2.3 connect by means of a link the new data record and the new node and assign to the link (long link) a value of the search-key-portion at the discerning offset taken from the search key of the new data record;
oriii.3 if conditions iii.0, iii.1 and iii.2 are not met, there exists, in the reference search path, a father node and a child node thereof such that the discerning offset is, at the same time, larger than the offset assigned to the father node and smaller than the offset assigned to the child node—
(—
considered case A), or all the nodes in the reference search path have a value greater than the discerning offset—
(—
considered case B);
accordingly, apply the following sub-steps;
iii.3.1 for case A and B, create a new node and assign the node with the value of said discrening offset, for case A only—
disconnect the link from the father node to the child node and shift the link to a new internal node (i.e. the child node remains temporarily “
loose”
);
iii.3.2 for case A and B, connect by means of a link (long link) the new data record and said new internal node;
the value assigned to the link is that of the search-key-portion at the discerning offset, as taken from the search key of the new data record;
iii.3.3 for case A and B., connect by means of a new link the new node and for case A—
the child node, for case B—
the root node (i.e. the new node becomes for case A—
a new father node, for case B—
a new root node), and the value assigned to said link is the search-key-portion at the offset indicated by the new node, taken from the search key of the reference data record.
-
-
65. A method for obtaining a balanced PAIF index;
- the PAIF including blocks each accommodating a plurality of nodes and links originated from said nodes;
leaf nodes from among said nodes are associated with data records;
the method comprising executing the following steps as many times as required;(i) replacing a block, constituting a replaced block, with at least two split blocks such that few from among the nodes of said split block are accommodated within one of said split blocks and the remaining nodes from among the nodes of said split block are accommodated within other split blocks;
(ii) copying at least one node from among the nodes of said replaced block into a block such that said at least two split blocks being children blocks thereof.
- the PAIF including blocks each accommodating a plurality of nodes and links originated from said nodes;
-
66. In a computer system having a storage medium of at least an internal memory that ranges between 10 to 20 M byte or more, and an external memory;
a data structure that includes an index over the keys of the data records;
the index is arranged in blocks;
such that for one billion data records substantially no more than two accesses to said external memory are required in order to access a block that is associated with any one of said billion data records, irrespective of the size of the key of said data records.
-
67. In a computer system having a storage medium of at least an internal memory that ranges between 10 to 20 M byte or more, and an external memory;
a data structure that includes an index over the keys of the data records;
the index is arranged in blocks;
such that one million data records substantially all the blocks of the index are accommodated in said internal memory regardless of the size of the key of said data records.
-
68. In a computer system having a storage medium,
a data structure that includes an index over the keys of data records; - the index is arranged in a balanced structure of blocks and enables to perform sequential operations on said data records;
the index size is essentially not affected from the size of said keys.
- the index is arranged in a balanced structure of blocks and enables to perform sequential operations on said data records;
-
69. In a storage medium used by a database file management system executed on data processing system, a data structure that includes:
an index over the keys of data records;
the data records being of at least two types where data records of the second type are subordinated to the data records of the first type.- View Dependent Claims (70, 71, 72, 73, 74, 75)
-
76. In a storage medium used by a database file management system executed on data processing system, a data structure that includes:
a designated index over designated keys of data records;
the data records, constituting designated data records, being of at least two types where designated data records of the second type are subordinated to the designated data records of the first type.- View Dependent Claims (77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94)
-
95. In a storage medium used by a database file management system executed on data processing system, a data structure that includes:
-
an index being stored in the storage medium and constructed over the keys of said data records that are stored in blocks;
the index being arranged in blocks with the leaf blocks being linked to data records by means of links;
said index is characterized in that at least one of said links is shared by at least two data records stored in the same block. - View Dependent Claims (96)
-
Specification