A robust partitioning scheme for ad-hoc query workloads

© 2017 Association for Computing Machinery. Data partitioning is crucial to improving query performance and severalworkload-based partitioning techniques have been proposed in database literature. However, many modern analytic applications involve ad-hoc or exploratory analysis where users do not ha...

Full description

Bibliographic Details
Main Authors: Shanbhag, Anil (Author), Jindal, Alekh (Author), Madden, Samuel (Author), Quiane, Jorge (Author), Elmore, Aaron J. (Author)
Format: Article
Language:English
Published: ACM, 2021-11-09T13:28:47Z.
Subjects:
Online Access:Get fulltext
LEADER 01888 am a22001933u 4500
001 137858
042 |a dc 
100 1 0 |a Shanbhag, Anil  |e author 
700 1 0 |a Jindal, Alekh  |e author 
700 1 0 |a Madden, Samuel  |e author 
700 1 0 |a Quiane, Jorge  |e author 
700 1 0 |a Elmore, Aaron J.  |e author 
245 0 0 |a A robust partitioning scheme for ad-hoc query workloads 
260 |b ACM,   |c 2021-11-09T13:28:47Z. 
856 |z Get fulltext  |u https://hdl.handle.net/1721.1/137858 
520 |a © 2017 Association for Computing Machinery. Data partitioning is crucial to improving query performance and severalworkload-based partitioning techniques have been proposed in database literature. However, many modern analytic applications involve ad-hoc or exploratory analysis where users do not have a representative query workload a priori. Static workload-based data partitioning techniques are therefore not suitable for such settings. In this paper, we propose Amoeba, a distributed storage system that uses adaptive multi-attribute data partitioning to efficiently support ad-hoc as well as recurring queries. Amoeba requires zero set-up and tuning effort, allowing analysts to get the benefits of partitioning without requiring an upfront query workload. The key idea is to build and maintain a partitioning tree on top of the dataset. The partitioning tree allows us to answer queries with predicates by reading a subset of the data. The initial partitioning tree is created without requiring an upfront query workload and Amoeba adapts it over time by incrementally modifying subtrees based on user queries using repartitioning. A prototype of Amoeba running on top of Apache Spark improves query performance by up to 7x over full scans and up to 2x over range-based partitioning techniques on TPC-H as well as a real-world workload. 
546 |a en 
655 7 |a Article 
773 |t 10.1145/3127479.3131613