Method and system for data set storage by iteratively searching for perfect hashing functions
AssigneeMicrosoft Corporation
InventorJohn Warren Miller
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorJohn Warren Miller
Estimating the term…
A storage and retrieval system for storage and retrieval of records in a computer system. In a preferred embodiment, the storage system generates various hashing functions, hashes the keys of the records to identify storage locations, and stores the records in the identified storage locations. The retrieval system retrieves a record for a key by using the hashing functions to identify a storage location and retrieving the data from the identified storage location. The storage system logically organizes storage (e.g., memory) into levels. Each level is further organized into bins, and each bin contains a fixed number of slots. Each slot contains storage for storing one record. The storage system preferably stores about half the records at the first level, a quarter of the records at the second level, and so on. The storage system uses hashing functions and hashes the keys to determine at which level, bin, and slot to store the record associated with the key. The storage system uses a tentative bin assignment hashing function to tentatively assign keys to bins. The storage system then searches for a perfect hashing function for assigning a subset of the tentatively assigned keys to slots within the bin. The storage system generates a definite bin assignment hashing function to identify the subset. The storage system generates a definite bin assignment hashing function and a perfect hashing function for each bin within each level. The retrieval system uses the tentative bin assignment hashing function, the definite bin assignment hashing functions, and the perfect hashing functions to locate records.
A method in a computer system for storing data in storage of the computer system, the data organized into records, each record having a key, the storage organized into slots, each slot for storing a record, the method comprising the computer-implemented steps of:
A method in a computer system for storing data in storage of the computer system, the data organized into records, each record having a key, the storage organized into slots, each slot for storing a record, the method comprising the computer-implemented steps of:
A method in a computer system for assigning a plurality of keys to slots in storage of the computer system, the method comprising repeating the following computer-implemented steps until each key is assigned to a slot:
A computer system for storing records in storage, each record having a key, the storage having slots, each slot for containing a record, the slots being organized into bins, the bins being organized into levels, the computer system comprising:
A computer-readable medium encoded with a data structure containing a plurality of records, each record having a key, the data structure comprising:
A method in a computer system for encrypting associations between secure keys and associated records, the method comprising the steps of:
A method in a computer system for storing prefixes for words in a dictionary into storage of the computer system, the words having elements of an alphabet, the method comprising the steps of:
A method in a computer system for determining whether an element is a successor element of a designated prefix of a word in a dictionary, the computer system having storage containing a successor data structure for each prefix of a word in the dictionary, the storage being organized into levels, each level having bins, each bin having a slot for containing a successor data structure, the storage having indications of a bin assignment function and a slot assignment function for each bin within each level, the successor data structures being stored in slots in accordance with the indicated bin assignment and slot assignment functions, the method comprising the steps of:
A method in a computer system for retrieving a record from a data structure stored in storage, each record having a key, the storage being organized into levels, each level having bins, each bin having slots, each slot for containing a record, the storage having indications of a bin assignment function and a slot assignment function for each bin within each level, the records being assigned to slots in accordance with the indicated bin assignment and slot assignment functions, the bin assignment functions and slot assignment function assigning slots based on the keys, the method comprising the steps of:
A computer-readable medium containing computer instructions for causing a computer system to store data in storage of the computer system, the data organized into records, each record having a key, the storage organized into slots, each slot for storing a record, by the steps of:
A computer-readable medium containing computer instructions for causing a computer system to store dam in storage of the computer system, the data organized into records, each record having a key, the storage organized into slots, each slot for storing a record, by the steps of:
A computer-readable medium containing computer instructions for causing a computer system to assign a plurality of keys to slots in storage of the computer system by repeating the following steps until each key is assigned to a slot:
Dependencies are inferred from the claim text.