Patent ID: 7664927
Filing Date: 2010-02-16
Classification: G06F

Abstract:
1. A computer-readable storage medium having program code stored thereon that, when executed by a computing environment, causes the computing environment to: apply a first hash function to a key, resulting in identification of a first bucket of a plurality of buckets of a hash table, the first bucket having a fixed number of a plurality of cells, each cell for storing a value associated with a key; determine that the first bucket does not have available space in any of the plurality of cells thereof to store a value associated with the key therein; apply a second hash function to the key, resulting in identification of a second bucket of the plurality of buckets of the hash table, the second bucket having a fixed number of a plurality of cells, each cell for storing a value associated with a key; determine that the second bucket does not have available space in any of the plurality of cells thereof to store the value associated with the key therein; apply a third hash function to the key, resulting in identification of a third bucket of the plurality of buckets of the hash table, the third bucket having a fixed number of a plurality of cells, each cell for storing a value associated with a key; determine that the third bucket does have available space in one of the plurality of cells thereof to store the value associated with the key therein, after moving a number of values to alternative locations within the hash table in order to create the available space in the third bucket; store the value associated with the key in the available space in the one of the plurality of cells in the third bucket; determine that an amount of work associated with storing the value in the third bucket is unacceptable based on the number of values moved to alternative locations exceeding a predetermined number; and associate a fourth hash function with the table upon determining that the amount of work associated with storing the value in the third bucket is unacceptable.