Out-of-order execution of database queries

Intra-query parallelism is a key for database software to offer acceptable responsiveness for data-intensive queries. Many researchers have studied how to achieve greater execution parallelism for database queries. Partitioning is a representative approach, which divides a query into multiple sub-tasks and executes them in parallel. However, given a new query, optimal division is not necessarily obvious. Database software utilizes heuristic rules or statistical information to decide how to divide the query before execution. As yet another approach to achieve execution parallelism, this paper presents out-of-order database execution (OoODE), a massively-parallel query execution method to offer significant speedup for database queries consistently. OoODE dynamically decomposes query work by making the best use of the exact knowledge of the potential execution parallelism for each operation ready to be performed during query execution. With OoODE, the database software is allowed to automatically squeeze out the execution parallelism that the query inherently holds. Hence, for a wide spectrum of queries, OoODE performs significantly faster than the serial (non-parallelized) execution, while it performs better than or comparably with alternative parallelizing methods without the need for dividing the query before execution. This paper presents the experiments that we conducted using the prototyped database software and demonstrates that OoODE is two to three orders of magnitude faster than the serial execution, whereas it is substantially (up to 2.07 times) faster than the best achievable case of partitioning. Besides, OoODE performs two to four orders of magnitude faster than major DBMSs.

[1]  Yuan Yu,et al.  Dryad: distributed data-parallel programs from sequential building blocks , 2007, EuroSys '07.

[2]  Bogdan Raducanu,et al.  Micro adaptivity in Vectorwise , 2013, SIGMOD '13.

[3]  John Miles Smith,et al.  Optimizing the performance of a relational algebra database interface , 1975, CACM.

[4]  Martin L. Kersten,et al.  Database Architecture Evolution: Mammals Flourished long before Dinosaurs became Extinct , 2009, Proc. VLDB Endow..

[6]  G. Antoshenkov,et al.  Dynamic query optimization in Rdb/VMS , 1993, Proceedings of IEEE 9th International Conference on Data Engineering.

[7]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[8]  Hua-Gang Li,et al.  Adaptive and Big Data Scale Parallel Execution in Oracle , 2013, Proc. VLDB Endow..

[9]  Goetz Graefe,et al.  Volcano - An Extensible and Parallel Query Evaluation System , 1994, IEEE Trans. Knowl. Data Eng..

[10]  Coniferous softwood GENERAL TERMS , 2003 .

[11]  David J. DeWitt,et al.  Efficient mid-query re-optimization of sub-optimal query execution plans , 1998, SIGMOD '98.

[12]  Kim P. Gostelow,et al.  Performance of a Simulated Dataflow Computer , 1980, IEEE Transactions on Computers.

[13]  Ramez Elmasri,et al.  Fundamentals of Database Systems , 1989 .

[14]  Yin Yang,et al.  Elastic Pipelining in an In-Memory Database Cluster , 2016, SIGMOD Conference.

[15]  Norman May,et al.  Scaling Up Concurrent Main-Memory Column-Store Scans: Towards Adaptive NUMA-aware Data and Task Placement , 2015, Proc. VLDB Endow..

[16]  Arthur H. Veen,et al.  Dataflow machine architecture , 1986, CSUR.

[17]  Thomas Neumann,et al.  Efficiently Compiling Efficient Query Plans for Modern Hardware , 2011, Proc. VLDB Endow..

[18]  Abraham Silberschatz,et al.  Operating System Concepts , 1983 .

[19]  Luc Bouganim,et al.  Skew Handling in the DBS3 Parallel Database System , 1996, ACPC.

[20]  Doubletree Hotel San Jose,et al.  The World's Most Popular Open Source Database , 2003 .

[21]  Philip S. Yu,et al.  Using Segmented Right-Deep Trees for the Execution of Pipelined Hash Joins , 1992, VLDB.

[22]  Rares Vernica,et al.  Hyracks: A flexible and extensible foundation for data-intensive computing , 2011, 2011 IEEE 27th International Conference on Data Engineering.

[23]  Thomas R. Gross,et al.  Memory system performance in a NUMA multicore multiprocessor , 2011, SYSTOR '11.

[24]  Pradeep Dubey,et al.  Sort vs. Hash Revisited: Fast Join Implementation on Modern Multi-Core CPUs , 2009, Proc. VLDB Endow..

[25]  Viktor Leis,et al.  Morsel-driven parallelism: a NUMA-aware query evaluation framework for the many-core age , 2014, SIGMOD Conference.

[26]  Karen Ward,et al.  Dynamic query evaluation plans , 1989, SIGMOD '89.

[27]  Marcin Zukowski,et al.  MonetDB/X100: Hyper-Pipelining Query Execution , 2005, CIDR.

[28]  A. L. Davis,et al.  The architecture and system method of DDM1: A recursively structured Data Driven Machine , 1978, ISCA '78.

[29]  Matthias Jarke,et al.  Query Optimization in Database Systems , 1984, CSUR.

[30]  Eugene Wong,et al.  Decomposition—a strategy for query processing , 1976, TODS.

[31]  Yun Wang DB2 Query Parallelism: Staging and Implementation , 1995, VLDB.

[32]  Goetz Graefe,et al.  Optimization of dynamic query evaluation plans , 1994, SIGMOD '94.

[33]  Arvind,et al.  The U-Interpreter , 1982, Computer.

[34]  Ian Watson,et al.  A prototype data flow computer with token labelling , 1899 .

[35]  Bil Lewis,et al.  Multithreaded Programming With PThreads , 1997 .

[36]  David A. Padua,et al.  A Second Opinion on Data Flow Machines and Languages , 1982, Computer.

[37]  Andrey Gubarev,et al.  Dremel : Interactive Analysis of Web-Scale Datasets , 2011 .

[38]  Ramesh C. Agarwal,et al.  Block oriented processing of relational database operations in modern computer architectures , 2001, Proceedings 17th International Conference on Data Engineering.

[39]  Michael Stonebraker,et al.  Optimization of parallel query execution plans in XPRS , 1991, [1991] Proceedings of the First International Conference on Parallel and Distributed Information Systems.

[40]  David J. DeWitt,et al.  Nested loops revisited , 1993, [1993] Proceedings of the Second International Conference on Parallel and Distributed Information Systems.

[41]  Michael J. Franklin,et al.  Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing , 2012, NSDI.

[42]  Anastasia Ailamaki,et al.  HetExchange: Encapsulating heterogeneous CPU-GPU parallelism in JIT compiled engines , 2019, Proc. VLDB Endow..

[43]  Alfons Kemper,et al.  Massively Parallel Sort-Merge Joins in Main Memory Multi-Core Database Systems , 2012, Proc. VLDB Endow..

[44]  David J. DeWitt,et al.  GAMMA - A High Performance Dataflow Database Machine , 1986, VLDB.

[45]  Kenneth A. Ross,et al.  Realizing parallelism in database operations: insights from a massively multithreaded architecture , 2006, DaMoN '06.

[46]  Kay Ousterhout,et al.  Architecting for Performance Clarity in Data Analytics Frameworks , 2017 .

[47]  Gautam Jain Query Optimization for Parallel Execution , 2007 .

[48]  Sriram Sankar,et al.  Server Engineering Insights for Large-Scale Online Services , 2010, IEEE Micro.

[49]  David J. DeWitt,et al.  Tradeoffs in Processing Complex Join Queries via Hashing in Multiprocessor Database Machines , 1990, VLDB.

[50]  Elke A. Rundensteiner,et al.  Revisiting Pipelined Parallelism in Multi-Join Query Processing , 2005, VLDB.

[51]  Bingsheng He,et al.  GPL: A GPU-based Pipelined Query Processing Engine , 2016, SIGMOD Conference.

[52]  Jianzhong Li,et al.  Parallel Join Algorithms based on Parallel B+-trees , 2001, CODAS.

[53]  D. Marr,et al.  Hyper-Threading Technology Architecture and MIcroarchitecture , 2002 .

[54]  Mikal Ziane,et al.  Parallel query processing with zigzag trees , 2005, The VLDB Journal.