Dynamic external hashing: the limit of buffering
Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures
A Simple, Fast, and Compact Static Dictionary
ISAAC '09 Proceedings of the 20th International Symposium on Algorithms and Computation
The limits of buffering: a tight lower bound for dynamic membership in the external memory model
Proceedings of the forty-second ACM symposium on Theory of computing
Proceedings of the twenty-ninth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
On the cell probe complexity of dynamic membership
SODA '10 Proceedings of the twenty-first annual ACM-SIAM symposium on Discrete Algorithms
Hi-index | 0.00 |
Hash tables on external memory are commonly used for indexing in database management systems. In this paper we present an algorithm that, in an asymptotic sense, achieves the best possible I/O and space complexities. Let B denote the number of records that fit in a block, and let N denote the total number of records. Our hash table uses $1+O(1/\sqrt{B})$I/Os, expected, for looking up a record (no matter if it is present or not). To insert, delete or change a record that has just been looked up requires $1+O(1/\sqrt{B})$I/Os, amortized expected, including I/Os for reorganizing the hash table when the size of the database changes. The expected external space usage is $1+O(1/\sqrt{B})$times the optimum of N/B blocks, and just O(1) blocks of internal memory are needed.