Interleaving with coroutines: a practical approach for robust index joins
Proceedings of the VLDB Endowment, 2017•infoscience.epfl.ch
Index join performance is determined by the efficiency of the lookup operation on the
involved index. Although database indexes are highly optimized to leverage processor
caches, main memory accesses inevitably increase lookup runtime when the index outsizes
the last-level cache; hence, index join performance drops. Still, robust index join
performance becomes possible with instruction stream interleaving: given a group of
lookups, we can hide cache misses in one lookup with instructions from other lookups by …
involved index. Although database indexes are highly optimized to leverage processor
caches, main memory accesses inevitably increase lookup runtime when the index outsizes
the last-level cache; hence, index join performance drops. Still, robust index join
performance becomes possible with instruction stream interleaving: given a group of
lookups, we can hide cache misses in one lookup with instructions from other lookups by …
Abstract
Index join performance is determined by the efficiency of the lookup operation on the involved index. Although database indexes are highly optimized to leverage processor caches, main memory accesses inevitably increase lookup runtime when the index outsizes the last-level cache; hence, index join performance drops. Still, robust index join performance becomes possible with instruction stream interleaving: given a group of lookups, we can hide cache misses in one lookup with instructions from other lookups by switching among their respective instruction streams upon a cache miss. In this paper, we propose interleaving with coroutines for any type of index join. We showcase our proposal on SAP HANA by implementing binary search and CSB+-tree traversal for an instance of index join related to dictionary compression. Coroutine implementations not only perform similarly to prior interleaving techniques, but also resemble the original code closely, while supporting both interleaved and non-interleaved execution. Thus, we claim that coroutines make interleaving practical for use in real DBMS codebases.
infoscience.epfl.ch
以上显示的是最相近的搜索结果。 查看全部搜索结果