Analyzing Query Performance and Attributing Blame for Contentions in a Cluster Computing Framework

08/28/2017
by   Prajakta Kalmegh, et al.
0

Analyzing contention for resources in a cluster computing environment accurately is critical in order to understand the performance interferences faced by a query due to concurrent query executions, and to better manage the workload in the cluster. Today no tools exist to help an admin perform a deep analysis of resource contentions taking into account the complex interactions among different queries, their stages, and tasks in a shared cluster. In this paper, we present ProtoXplore - a Proto or first system to eXplore the interactions between concurrent queries in a shared cluster. We construct a multi-level directed acyclic graph called ProtoGraph to formally capture different types of explanations that link the performance of concurrent queries. In particular, (a) we designate the components of a query's lost (wait) time as Immediate Explanations towards its observed performance, (b) represent the rate of contention per machine as Deep Explanations, and (c) assign responsibility to concurrent queries through Blame Explanations. We develop new metrics to accurately quantify the impact and distribute the blame among concurrent queries. We perform an extensive experimental evaluation using ProtoXplore to analyze the query interactions of TPCDS queries on Apache Spark using microbenchmarks illustrating the effectiveness of our approach, and illustrate how the output from ProtoXplore can be used by alternate scheduling and task placement strategies to help improve the performance of affected queries in recurring executions.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset