Orca: A Modular Query Optimizer Architecture for Big Data

概要

数据管理系统中的分析查询处理的性能主要取决于系统查询优化器的表现。数据量的增加和对处理复杂分析型查询的兴趣促使 Pivotal 开始构建一个新的查询优化器。

本文介绍了 Orca 的架构,一个新的适用于 Pivotal 所有数据管理产品的优化器,包括 Pivotal Greenplum 和 Pivotal HAWQ。Orca是一个全面的架构,将最先进的查询优化技术与自己的原创研究相结合,从而形成了一个模块化和可移植的优化器架构。

除了描述整体架构之外,我们还强调了几个独特的特性,并介绍了与其他系统的性能比较。

1. 介绍

大数据重新燃起了人们对查询优化的兴趣,因为新型数据管理系统在前所未有的可扩展性,可用性和处理能力方面都突破了极限(例如,[9,18,20,21]),这使得数百 TB 甚至 PB 的大型数据集很容易通过 SQL 或类似 SQL 的接口进行分析。众所周知,良好优化器和平庸优化器之间的差异很大[15]。但是,随着需要处理的数据量增加,这些系统放大了优化错误,并比以往任何时98888888888888sz都更加强调查询优化的重要性。

尽管在这一领域有大量的研究,但商业和开源项目中的大多数现有查询优化器仍然主要基于可追溯到商业数据库开发早期的技术[22],并且经常容易产生次优结果。

意识到研究和实际实施之间的这一巨大差距,我们着手设计一种满足当前要求的架构,同时为未来的发展提供足够的空间。

在本文中,我们描述了Orca,这是我们最近在Greenplum / Pivotal进行研究和开发工作的结果。Orca 是一款最先进的查询优化器,专为要求苛刻的分析工作负载而设计。它与其他优化器在几个重要方面区别开来:

  • 模块性。使用高度可扩展的元数据和系统描述抽象,Orca不再像传统优化器那样局限于特定的主机系统。相反,它可以通过其元数据提供程序 SDK 支持的插件快速移植到其他数据管理系统。

  • 扩展。通过将查询的所有元素及其优化表示为具有平等地位的一等公民,Orca避免了多阶段优化的陷阱,其中某些优化作为事后的想法处理。

  • 众所周知,多阶段优化器很难扩展,因为新的优化或查询构造通常与以前设置的阶段边界不匹配。多核就绪。Orca 部署了一个高效的多核感知调度程序,该调度程序将单个细粒度优化子任务分布在多个内核上,以加快优化过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值