Using logarithmic code-expansion to speedup index access and maintenance
In this paper we have studied the performance of alternative representations of binary search-trees for indexing a relation kept in main-memory. It was shown that space/time performance of the common techniques, such as sorted heaps, and more complex data structures, such as avl-trees, can be improved considerably. In particular, when an upperbound is determined during program construction on the maximal size of the indices, an efficient mapping, called the virtual tree, from binary search tree to array exists. The resulting search structure ensures an upperbound on the number of comparisons for searching and maintenance will only start to deteriorate when the area set aside for holding the index is nearly full. In addition, we showed that limiting the maximal size of the index structure permits judicious use of code-expansion, i.e. logarithmic code expansion, to further improve the performance of the algorithms. For a search dominant environment our approach is better than the more space consumptive binary trees representations based on pointer chasing. In a volatile environment the space/time performance can be controlled precisely.
Keywords and PhrasesData storage representations access methods main-memory DBMS
Unable to display preview. Download preview PDF.
- [Bitton86]Bitton, D. and Turbyfill, C., “Performance Evaluation of Main Memory Database Systems”, Tech. Report TR 86-731, Jan. 1986.Google Scholar
- [DeWitt84]DeWitt, D., R.Katz, Olken, F., Shapiro, L., Stonebraker, M., and Wood, D., “Implementation Techniques for Main Memory Database Systems,” Proc. ACM SIGMOD, pp.1–8, June 1984.Google Scholar
- [Garcia-Molina83]Garcia-Molina, H., Lipton, R.J., and Honeyman, P., “A Massive Memory Database Machine”, Tech. report 314, September 1983.Google Scholar
- [Kersten87]Kersten, M.L., Apers, P.M.G., Houtsma, M.A.W., Kuyk, E.J.A. van, and Weg, R.L.W. van de, “A Distributed Main-Memory Database Machine; Research Issues and a Preliminary Architecture,” Proc. 5th Int Workshop on Database Machines, pp.496–511, Oct 1987.Google Scholar
- [Kersten88]Kersten, M.L., “A Time and Space Efficient Implementation of a Dynamic Index in a Main-Memory DBS”, CWI technical report CS-R8803, Jan 1988.Google Scholar
- [Knuth75]Knuth, D., The Art of Computer Programming Vol I and III. Addison-Wesley, 1975.Google Scholar
- [Lehman86a]Lehman, T.J. and Carey, M.J., “Query Processing in Main Memory Database Systems,” Proc. ACM SIGMOD Conference, pp.239–250, May 1986.Google Scholar
- [Lehman86b]Lehman, T.J. and Carey, M.J., “A Study of Index Structures for Main Memory Database Systems,” Proc. Conf. on Very Large Database, pp.293–303, Sep 1986.Google Scholar
- [Leland87]Leland, M.D.P. and Roome, W.D., “The Silicon Database Machine: Rationale, Design, and Results,” Proc. 5-th Int. Workshop on Database Machines, pp.454–467, Oct 1987.Google Scholar