Hashing (Computer science)
Computer Engineering | Computer Sciences | Electrical and Computer Engineering
Hashing algorithms have been widely adopted for fast address look-up, which involves a search through a database to find a record associated with a given key. Hashing algorithms transforms a key into a hash value hoping that the hashing renders the database a uniform distribution with respect to the hash value. The closer to uniform hash values, the less search time required for a query. When the database is key-wise uniformly distributed, any regular hashing algorithm (bit-extraction, bit-group XOR, etc.) leads to a statistically perfect uniform hash distribution. When the database has keys with a non-uniform distribution, performance of regular hashing algorithms becomes far from desirable. This paper aims at designing a hashing algorithm to achieve the highest probability in leading to a uniformly distributed hash result from non-uniform distributed database. An analytical pre-process on the original database is performed to extract critical information that significantly benefits the design of a better hashing algorithm. This process includes sorting the bits of the key to prioritize the use of them in the hashing sequence. Such an ad hoc hash design is critical to adapting to all real-time situations when there exists a changing database with an irregular non-uniform distribution.
Martinez, Christopher and Lin, Wei-Ming, "An Ad Hoc Adaptive Hashing Technique for Non-Uniformly Distributed IP Address Lookup in Computer Networks" (2007). Electrical & Computer Engineering and Computer Science Faculty Publications. 2.
Martinez, Christopher, and Lin, Wei-Ming. “An Ad Hoc Adaptive Hashing Technique for Non-Uniformly Distributed IP Address Lookup in Computer Networks.” The Journal of Systemics, Cybernetics and Informatics, Vol. 5, Number 1, 2007.