Growing Node Policies of a Main Memory Index Structure for Moving Objects Databases

Recent studies on main memory index structures focus mainly on cache-conscious structures to minimize L2 cache misses; for example, in one dimensional data, CSB+-tree eliminated pointers to pack more entries in a node, and in multi-dimensional data, CR-tree compressed MBRs in order to increase utilization of the L2 cache line. Previous studies used a fixed node size that is a multiple of the cache line size. If a node overflows, it splits , regardless of the search performance. Since the time of split is determined by only the node size, the split may increase a node’s probability of being accessed. However, if the node size is not fixed, the previous case can be avoided. In this paper, we suggest a new cost model to determine whether to grow or split a node. In the cost model, we consider all relevant factors, such as cache misses, instruction counts, TLB misses, and the probability that nodes will be accessed. Use of our growing node policy has the following advantages: (i) it can have the effect of a delayed split that does not depend on the insertion order, and (ii) it can reduce the number of generated nodes and the height of the tree.