Optimal Resource Allocation for Serverless Queries
  Optimizing resource allocation for analytical workloads is vital for reducing
costs of cloud-data services. At the same time, it is incredibly hard for users
to allocate resources per query in serverless processing systems, and they
frequently misallocate by orders of magnitude. Unfortunately, prior work
focused on predicting peak allocation while ignoring aggressive trade-offs
between resource allocation and run-time. Additionally, these methods fail to
predict allocation for queries that have not been observed in the past. In this
paper, we tackle both these problems. We introduce a system for optimal
resource allocation that can predict performance with aggressive trade-offs,
for both new and past observed queries. We introduce the notion of a
performance characteristic curve (PCC) as a parameterized representation that
can compactly capture the relationship between resources and performance. To
tackle training data sparsity, we introduce a novel data augmentation technique
to efficiently synthesize the entire PCC using a single run of the query.
Lastly, we demonstrate the advantages of a constrained loss function coupled
with GNNs, over traditional ML methods, for capturing the domain specific
behavior through an extensive experimental evaluation over SCOPE big data
workloads at Microsoft.
