Claims Analysis
Total Claims: 12
Claim 1
Independent Claim
324 words
In a system which is used for storing and indexing a large set of data records and supports fast insert, delete and lookup operations and also sequential retrieval of all data records of said set, a method comprising: providing a file system for said system which allows storing and retrieving data by specifying a key that identifies a data record, providing for a set of data records an index or directory with a single initial hash bucket, and storing in said initial hash by use of a hash function all records of a set of data records to be stored as long as they fit into said initial hash bucket, and when the initial hash bucket is full, splitting by adding a second hash bucket and adding one bit to said hash function used to place records whereby those records without said one bit are moved into said initial hash bucket while those records with said one bit are moved into said second hash bucket and wherein new records are added to the initial bucket or said second bucket depending upon the value of the bit for said hash function, and if a hash bucket fills up again, the bucket is split and two bits for the hash function determine where records from the second bucket are to be placed, while the records in the initial bucket are not effected by a new split of said second bucket, but can be split as well, and wherein each hash bucket is stored in a sparse file at an offset given as i*s, where i is the hash bucket number and s is the hash bucket size, an where a directory starts out as an empty file, where the file size increases to the size where it needs to be split by inserting records, and wherein upon a split, an additional bucket is written increasing the file size from s to 2*s upon the first split.
Claim 2
Dependent Claim
324 words
In a system which is used for storing and indexing a large set of data records and supports fast insert, delete and lookup operations and also sequential retrieval of all data records of said set, a method comprising: providing a file system for said system which allows storing and retrieving data by specifying a key that identifies a data record, providing for a set of data records an index or directory with a single initial hash bucket, and storing in said initial hash by use of a hash function all records of a set of data records to be stored as long as they fit into said initial hash bucket, and when the initial hash bucket is full, splitting by adding a second hash bucket and adding one bit to said hash function used to place records whereby those records without said one bit are moved into said initial hash bucket while those records with said one bit are moved into said second hash bucket and wherein new records are added to the initial bucket or said second bucket depending upon the value of the bit for said hash function, and if a hash bucket fills up again, the bucket is split and two bits for the hash function determine where records from the second bucket are to be placed, while the records in the initial bucket are not effected by a new split of said second bucket, but can be split as well, and wherein each hash bucket is stored in a sparse file at an offset given as i*s, where i is the hash bucket number and s is the hash bucket size, an where a directory starts out as an empty file, where the file size increases to the size where it needs to be split by inserting records, and wherein upon a split, an additional bucket is written increasing the file size from s to 2*s upon the first split.
Claim 3
Dependent Claim
66 words
The method for said system of claim 1 wherein after several splits the several hash buckets are treated as a binary hash tree, whereby a record is found by traversing the tree from a root initial bucket node to a leaf hash bucket node using the hash bucket bits as a key to decide which branch to follow at each inner node of said binary tree.
Claim 4
Dependent Claim
20 words
The method for said system of claim 1 wherein a sequential directory scan is accomplished by a depth-first tree transversal.
Claim 5
Dependent Claim
53 words
The method for said system of claim 1 wherein several buckets are processed as a binary hash tree represented as a sparse file on disk, where records are relocated when a hash bucket is split, and a sequential directory scan traverses said hash tree such that all existing entries are returned exactly once.
Claim 6
Dependent Claim
293 words
In a system which is used for storing and indexing a large set of data records and supports fast insert, delete and lookup operations and also sequential retrieval of all data records of said set, a method comprising: providing a file system for said system which allows storing and retrieving data by specifying a key that identifies a data record, providing for a set of data records an index or directory with a single initial hash bucket, and storing in said initial hash by use of a hash function all records of a set of data records to be stored as long as they fit into said initial hash bucket, and when the initial hash bucket is full, splitting by adding a second hash bucket and adding one bit to said hash function used to place records whereby those records without said one bit are moved into said initial hash bucket while those records with said one bit are moved into said second hash bucket and wherein new records are added to the initial bucket or said second bucket depending upon the value of the bit for said hash function, and if a hash bucket fills up again, the bucket is split and two bits for the hash function determine where records from the second bucket are to be placed, while the records in the initial bucket are not effected by a new split of said second bucket, but can be split as well, and wherein lookup operations are performed with a step of computing the hash value of the key being looked up, as well as a hash tree depth as log-base-2 of the file size divided by hash bucket size, and said compute steps are also computed for an insert operation.
Claim 7
Dependent Claim
293 words
In a system which is used for storing and indexing a large set of data records and supports fast insert, delete and lookup operations and also sequential retrieval of all data records of said set, a method comprising: providing a file system for said system which allows storing and retrieving data by specifying a key that identifies a data record, providing for a set of data records an index or directory with a single initial hash bucket, and storing in said initial hash by use of a hash function all records of a set of data records to be stored as long as they fit into said initial hash bucket, and when the initial hash bucket is full, splitting by adding a second hash bucket and adding one bit to said hash function used to place records whereby those records without said one bit are moved into said initial hash bucket while those records with said one bit are moved into said second hash bucket and wherein new records are added to the initial bucket or said second bucket depending upon the value of the bit for said hash function, and if a hash bucket fills up again, the bucket is split and two bits for the hash function determine where records from the second bucket are to be placed, while the records in the initial bucket are not effected by a new split of said second bucket, but can be split as well, and wherein lookup operations are performed with a step of computing the hash value of the key being looked up, as well as a hash tree depth as log-base-2 of the file size divided by hash bucket size, and said compute steps are also computed for an insert operation.
Claim 8
Dependent Claim
50 words
The method for said system of claim 5 wherein for a sparse file a hole is aligned on file system block barriers and file metadata that contains the location of a file's disk blocks is cached, such that the bucket size is the same as the file system block size.
Claim 9
Dependent Claim
111 words
The method for said system of claim 5 and wherein lookup operations are performed with a step of computing the hash value of the key being looked up, as well as a hash tree depth as log-base-2 of the file size divided by hash bucket size, and said compute steps are also computed for an insert operation. wherein a scan operation is provided that can be invoked repeatedly to return the contents of a hash tree as a sequential directory scan, wherein each call returns one or more records plus a content information value that is passed to a next scan call in order to retrieve a next set of records.
Claim 10
Dependent Claim
18 words
The method for said system of claim 5 wherein hash bucket merges are handled during a sequential scan.
Claim 11
Dependent Claim
16 words
The method for said system of claim 5 wherein said system is a parallel file system.
Claim 12
Dependent Claim
46 words
The method for said system of claim 5 wherein said system is a used for one or more shared disk file systems implemented for multiple computers interconnected over a communication network with a protocol that makes disks appear to be locally attached to each file system.