MiniTasking: Improving Cache Performance for Multiple Query Workloads

This paper proposes a novel idea, called MiniTasking to reduce the number of cache misses by improving the data temporal locality for multiple concurrent queries. Our idea is based on the observation that, in many workloads such as decision support systems (DSS), there is usually significant amount of data sharing among different concurrent queries. MiniTasking exploits such data sharing characteristics to improve data temporal locality by scheduling query execution at three levels: (1) It batches queries based on their data sharing characteristics and the cache configuration. (2) It groups operators that share certain data. (3) It schedules mini-tasks which are small pieces of computation in operator groups according to their data locality without violating their execution dependencies. Our experimental results show that, MiniTasking can significantly reduce the execution time up to 12% for joins. For the TPC-H throughput test workload, MiniTasking improves the end performance up to 20%. Even with the Partition Attributes Across (PAX) layout, MiniTasking further reduces the cache misses by 65% and the execution time by 9%.

[1]  David J. DeWitt,et al.  A case for fractured mirrors , 2003, The VLDB Journal.

[2]  Jeffrey F. Naughton,et al.  Cache Conscious Algorithms for Relational Query Processing , 1994, VLDB.

[3]  Ken Kennedy,et al.  Inter-array Data Regrouping , 1999, LCPC.

[4]  Monica S. Lam,et al.  A data locality optimizing algorithm , 1991, PLDI '91.

[5]  Yuanyuan Zhou,et al.  Thread scheduling for out-of-core applications with memory server on multicomputers , 1999, IOPADS '99.

[6]  Kenneth A. Ross,et al.  Making B+- trees cache conscious in main memory , 2000, SIGMOD '00.

[7]  Kenneth A. Ross,et al.  Making B+-Trees Cache Conscious in Main Memory , 2000, SIGMOD Conference.

[8]  Todd C. Mowry,et al.  Improving index performance through prefetching , 2001, SIGMOD '01.

[9]  Martin L. Kersten,et al.  Database Architecture Optimized for the New Bottleneck: Memory Access , 1999, VLDB.

[10]  Chandra Krintz,et al.  Cache-conscious data placement , 1998, ASPLOS VIII.

[11]  Prasan Roy,et al.  Efficient and extensible algorithms for multi query optimization , 1999, SIGMOD '00.

[12]  David J. DeWitt,et al.  Shoring up persistent applications , 1994, SIGMOD '94.

[13]  Monica S. Lam,et al.  A data locality optimizing algorithm (with retrospective) , 1991 .

[14]  S. Sudarshan,et al.  Pipelining in multi-query optimization , 2001, PODS '01.

[15]  Ken Kennedy,et al.  Maximizing Loop Parallelism and Improving Data Locality via Loop Fusion and Distribution , 1993, LCPC.

[16]  Josep Torrellas,et al.  The memory performance of DSS commercial workloads in shared-memory multiprocessors , 1997, Proceedings Third International Symposium on High-Performance Computer Architecture.

[17]  Donald Yeung,et al.  Evaluating the impact of memory system performance on software prefetching and locality optimizations , 2001, ICS '01.

[18]  Susan J. Eggers,et al.  An analysis of database workload performance on simultaneous multithreaded processors , 1998, ISCA.

[19]  Sheldon J. Finkelstein Common expression analysis in database applications , 1982, SIGMOD '82.

[20]  David J. DeWitt,et al.  Data page layouts for relational databases on deep memory hierarchies , 2002, The VLDB Journal.

[21]  Jignesh M. Patel,et al.  Data Morphing: An Adaptive, Cache-Conscious Storage Technique , 2003, VLDB.

[22]  Timos K. Sellis,et al.  On the Multiple-Query Optimization Problem , 1990, IEEE Trans. Knowl. Data Eng..

[23]  Kai Li,et al.  Thread scheduling for cache locality , 1996, ASPLOS VII.

[24]  Chau-Wen Tseng,et al.  Improving data locality with loop transformations , 1996, TOPL.

[25]  Timos K. Sellis,et al.  Multiple-query optimization , 1988, TODS.

[26]  Todd C. Mowry,et al.  Improving Index Performance through Prefetching (CMU-CS-00-177) , 2001 .

[27]  Anastasia Ailamaki,et al.  QPipe: a simultaneously pipelined relational query engine , 2005, SIGMOD '05.

[28]  Kihong Kim,et al.  Optimizing multidimensional index trees for main memory access , 2001, SIGMOD '01.

[29]  Gary Valentin,et al.  Fractal prefetching B+-Trees: optimizing both cache and disk performance , 2002, SIGMOD '02.

[30]  David J. DeWitt,et al.  DBMSs on a Modern Processor: Where Does Time Go? , 1999, VLDB.

[31]  Chau-Wen Tseng,et al.  Compiler optimizations for improving data locality , 1994, ASPLOS VI.

[32]  Amr El Abbadi,et al.  Multiple query optimization by cache-aware middleware using query teamwork , 2002, Proceedings 18th International Conference on Data Engineering.

[33]  Kenneth A. Ross,et al.  Buffering Accesses to Memory-Resident Index Structures , 2003, VLDB.

[34]  Chen Ding,et al.  The Potential of Computation Regrouping for Improving Locality , 2004, Proceedings of the ACM/IEEE SC2004 Conference.