Long Beach, CA, USA
Mar. 1, 2010 to Mar. 6, 2010
Jingren Zhou , Microsoft, One Microsoft Way, Redmond, WA 98052, USA
Per-Ake Larson , Microsoft, One Microsoft Way, Redmond, WA 98052, USA
Ronnie Chaiken , Microsoft, One Microsoft Way, Redmond, WA 98052, USA
Massive data analysis on large clusters presents new opportunities and challenges for query optimization. Data partitioning is crucial to performance in this environment. However, data repartitioning is a very expensive operation so minimizing the number of such operations can yield very significant performance improvements. A query optimizer for this environment must therefore be able to reason about data partitioning including its interaction with sorting and grouping. SCOPE is a SQL-like scripting language used at Microsoft for massive data analysis. A transformation-based optimizer is responsible for converting scripts into efficient execution plans for the Cosmos distributed computing platform. In this paper, we describe how reasoning about data partitioning is incorporated into the SCOPE optimizer. We show how relational operators affect partitioning, sorting and grouping properties and describe how the optimizer reasons about and exploits such properties to avoid unnecessary operations. In most optimizers, consideration of parallel plans is an afterthought done in a postprocessing step. Reasoning about partitioning enables the SCOPE optimizer to fully integrate consideration of parallel, serial and mixed plans into the cost-based optimization. The benefits are illustrated by showing the variety of plans enabled by our approach.
Jingren Zhou, Per-Ake Larson, Ronnie Chaiken, "Incorporating partitioning and parallel plans into the SCOPE optimizer", ICDE, 2010, 2013 IEEE 29th International Conference on Data Engineering (ICDE), 2013 IEEE 29th International Conference on Data Engineering (ICDE) 2010, pp. 1060-1071, doi:10.1109/ICDE.2010.5447802