Extendible Hashing

What
Extendible hashing is a technique for maintaining a hash based index. It seeks to solve the problem of overflow pages by keeping a directory of pointers to buckets, and double the size of the number of buckets by doubling just the directory and splitting only the bucket that overflowed.

Handling Inserts

 * 1) Find the bucket where the record belongs using the hash function on the search key
 * 2) If there is room, put the record there
 * 3) If there is not enough room,
 * 4) Increment the local depth of the original page
 * 5) Allocate new page with new local depth
 * 6) Redistribute records from original page
 * 7) Add entry from new page to directory