Parallel file system and method with extensible hashing
First Claim
1. 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, andwherein 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.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer system having a shared parallel disk file system running on a network for multiple computers each having their own instance of an operating system and with a protocol that makes disks appear to be locally attached to each file system. This parallel file system in a shared disk environment uses scalable directory service method improvements to caching and cache performance developments balance pools for multiple accesses. A metadata node manages file metadata, and locking techniques reduce the overhead of a token manager which is also used in the file system recovery if a computer participating in the management of shared disks becomes unavailable or failed. Synchronous and asynchronous takeover of a metadata node occurs for correction of metadata which was under modification and a new computer node to be a metadata node for that file. Locks are not constantly required to allocate new blocks on behalf of a user. Hash buckets are used and 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. 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 with compute steps also computed for an insert operation.
-
Citations
10 Claims
-
1. 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. - View Dependent Claims (2, 3, 4)
-
-
5. 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. - View Dependent Claims (6, 7, 8, 9, 10)
-
Specification