Skip to main content
QUICK REVIEW

[论文解读] Starling: A Scalable Query Engine on Cloud Function Services

Matthew Perron, Raul Castro Fernandez|arXiv (Cornell University)|Nov 26, 2019
Cloud Computing and Resource Management参考文献 8被引用 6
一句话总结

Starling 是一个基于 AWS Lambda 等云函数平台构建的无服务器查询引擎,可在云存储数据上实现低成本、高可扩展性的交互式分析。通过利用细粒度并行处理、通过对象存储优化数据 shuffle 以及缓解慢速任务(straggler)问题,Starling 在低至中等查询工作负载下实现了比预置系统更低的成本和相当的延迟。

ABSTRACT

Much like on-premises systems, the natural choice for running database analytics workloads in the cloud is to provision a cluster of nodes to run a database instance. However, analytics workloads are often bursty or low volume, leaving clusters idle much of the time, meaning customers pay for compute resources even when unused. The ability of cloud function services, such as AWS Lambda or Azure Functions, to run small, fine granularity tasks make them appear to be a natural choice for query processing in such settings. But implementing an analytics system on cloud functions comes with its own set of challenges. These include managing hundreds of tiny stateless resource-constrained workers, handling stragglers, and shuffling data through opaque cloud services. In this paper we present Starling, a query execution engine built on cloud function services that employs number of techniques to mitigate these challenges, providing interactive query latency at a lower total cost than provisioned systems with low-to-moderate utilization. In particular, on a 1TB TPC-H dataset in cloud storage, Starling is less expensive than the best provisioned systems for workloads when queries arrive 1 minute apart or more. Starling also has lower latency than competing systems reading from cloud object stores and can scale to larger datasets.

研究动机与目标

  • 解决云环境中为突发或低频分析工作负载预置固定集群所导致的效率低下问题。
  • 在无需将数据预加载至专有格式或专用集群的情况下,实现交互式查询性能。
  • 通过利用无服务器函数的细粒度、按需执行模型,降低每次查询的成本。
  • 克服无服务器环境中无状态工作节点、不透明的数据 shuffle 机制以及慢速任务效应带来的挑战。
  • 为临时分析查询提供可调节的成本与性能权衡机制。

提出的方法

  • 将查询算子映射为无服务器函数调用,实现细粒度并行处理和按需扩展。
  • 使用云对象存储(如 Amazon S3)作为 shuffle 介质,实现函数间中间结果的传输。
  • 优化中间结果格式,以降低存储成本,并在按请求计费模型下提升吞吐量。
  • 实现慢速任务检测与缓解模型,减少因性能较差的函数调用导致的查询延迟。
  • 提供可调参数以控制每查询阶段的函数调用数量,从而实现成本或延迟的优化。
  • 利用基于 Redshift 的查询优化器,选择高效的连接顺序,降低整体计算成本。

实验结果

研究问题

  • RQ1无服务器查询引擎是否能在低至中等查询工作负载下,实现与预置系统相当的交互式延迟,同时成本更低?
  • RQ2如何在无状态、资源受限的云函数上高效实现类似 shuffle 和聚合等有状态操作?
  • RQ3在使用不透明、高延迟存储后端的无服务器环境中,慢速任务效应能在多大程度上被缓解?
  • RQ4基于无服务器函数构建的系统是否能在临时查询的成本效率方面超越现有的云原生分析型数据库?
  • RQ5与基于集群的模型相比,无服务器平台的按执行次数计费模式在总核心秒数消耗方面表现如何?

主要发现

  • 在存储于云对象存储中的 1TB TPC-H 数据集上,当查询到达间隔为 1 分钟或更长时,Starling 的成本低于最佳预置系统。
  • 对于大多数查询,Starling 所消耗的总计算核心秒数低于 16 节点的 Presto 集群(presto-16),表明其计算效率更高。
  • 即使直接从云存储读取数据而无需预加载,Starling 的查询延迟仍与预置系统相当。
  • 该系统在无需显式配置决策或集群管理的情况下,可扩展至更大规模的数据集。
  • 慢速任务缓解技术显著降低了性能较差的函数调用对端到端查询延迟的影响。
  • 在对象存储中使用优化的中间结果格式,在保持高聚合吞吐量的同时降低了存储成本。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。