A prefetching indexing scheme for in-memory database systems

Qian Zhang,Haoyun Song,Kaiyan Zhou,Jianhao Wei,Chuqiao Xiao
DOI: https://doi.org/10.1016/j.future.2024.03.012
IF: 7.307
2024-07-01
Future Generation Computer Systems
Abstract:In-memory databases (IMDBs) store all working data in the main memory, making memory access the dominant factor in system performance. Moreover, for modern multi-version systems, the extended version chain makes the access pattern more complex, putting extra pressure on indexing. Our micro-architectural profiling results of existing IMDB indexing schemes show that over half of the execution time goes to memory stalls caused by pointer chasing operations. This paper proposes a prefetching indexing scheme for modern in-memory database systems. This scheme achieves high performance in the presence of serial accesses in pointer chasing. The essential idea is to use a path prefetcher and a jump pointer prefetcher to hide cache miss latencies induced by indexing searches on versioned tuples. Specifically, this scheme works by associating a read counter with each block and updating the counters in the search keys’ access paths. To generate the optimal paths for future prefetches, we present how to continuously evolve the frequent access paths by analyzing those access patterns. Also, we create a jump pointer for each tuple in the leaf nodes to prefetch the head of its version chain. We present a jump pointer queue to accelerate linear version traversal. We achieve the high update performance because our improved search speed more than offsets any increase in prefetching overhead. Evaluations show that the prefetching indexing scheme outperforms the state-of-the-art indexing scheme by up to 70%.
computer science, theory & methods
What problem does this paper attempt to address?