Method for organizing directories
First Claim
1. In a storage medium used by a database file management system executed on data processing system, a data structure for efficient representation of hierarchical directories that includes items;
- the storage medium includes;
a layered index arranged in blocks;
the layered index includes a basic partitioned index that is associated with data records standing for said items;
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.
3 Assignments
0 Petitions
Accused Products
Abstract
In a database file management system for accessing data records that correspond to items in a directory. The directory items 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 directory items 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 directory items by key or keys and it constitutes a balanced structure of blocks.
-
Citations
42 Claims
-
1. In a storage medium used by a database file management system executed on data processing system, a data structure for efficient representation of hierarchical directories that includes items;
- the storage medium includes;
a layered index arranged in blocks;
the layered index includes a basic partitioned index that is associated with data records standing for said items;
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, 19, 20, 21)
a representative index I1, . . . , Ih constructed such that any Ij is constructed over the representative keys of Ij−
1.
- the storage medium includes;
-
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;
- the data record stands for an item in a directory;
the method comprising the steps of;(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.
- the data record stands for an item in a directory;
-
17. The method for inserting a data record r by key k in the layered index of claim 1;
- the data record stands for an item in a directory;
the method comprising the steps of;(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.
- the data record stands for an item in a directory;
-
18. The method for deleting a record r by key k in the layered index of claim 1;
- the data record stands for an item in a directory;
the method comprising the steps of;(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.
- the data record stands for an item in a directory;
-
19. The storage medium of claim 1, for use in Internet application.
-
20. The storage medium of claim 1, for use in Intranet application.
-
21. The storage medium of claim 1, wherein at least one of said data records being a multidimensional data record.
-
22. In a storage medium used by a database file management system executed on data processing system, a data structure for efficient representation of hierarchical directories that includes items;
- the storage medium includes;
an index arranged in blocks and being constructed over the keys of data records standing for said items;
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.
- the storage medium includes;
-
23. In a storage medium used by a database file management system executed on data processing system, a data structure for efficient representation of hierarchical directories that includes items;
- the storage medium includes;
an index arranged in blocks and being constructed over the keys of data records standing for said items;
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.
- the storage medium includes;
-
24. 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 the representative keys of said basic partitioned index;
said layered index enables accessing or updating the data records that stand for items of a directory by key or keys and constitutes a balanced structure of blocks.- View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33)
(a) if B (in Ik−
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;
-
33. The method according to claim 24, 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 note and its labeled links according to the representative key of Bi−
1′
;
(e) if the copied note 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′
.
-
-
34. 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 representative keys of said basic partitioned index;
said index enables accessing or updating the data records that stand for items of a directory by key or keys and constitutes a balanced structure of blocks.
- the data records are associated with a basic partitioned index arranged in blocks and being stored in a storage medium;
-
35. 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 the representative keys of said trie;
said index enables accessing or updating the data records that stand for items of a directory by key or keys and constitutes a balanced structure of blocks.
- the data records are associated with a trie arranged in blocks and being stored in a storage medium;
-
36. 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 standing for respective at least one directory of an item, 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 (37)
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 discerning 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.
-
-
38. 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 that stand for items of a directory;
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.
-
39. 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 that stand for items of a directory;
the index is arranged in blocks;
such that for 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.
-
40. In a computer system having a storage medium,
a data structure that includes an index over the keys of data records that stand for items of a directory; - 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;
-
41. 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 that stand for items of a directory;
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.
-
42. 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 that stand for items of a directory;
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.
Specification