Orca: A Modular Query Optimizer Architecture for Big Data

举报
hzjturbo 发表于 2020/12/27 21:35:59 2020/12/27
【摘要】 一个通用,可拓展,多核,高性能大数据优化器GPDB采用了shared-nothing的多处理架构,每个处理器拥有自己的内存,操作系统和磁盘等。主节点(master)管理其他的数据库实例(segment),数据在节点的分布可以是hashed,replicated,singleton等。ORCA基于Cascades优化流程(top-down),并且可以作为其他存储系统的独立优化器模块;提供了一种...

一个通用,可拓展,多核,高性能大数据优化器


GPDB

image.png

采用了shared-nothing的多处理架构,每个处理器拥有自己的内存,操作系统和磁盘等。主节点(master)管理其他的数据库实例(segment),数据在节点的分布可以是hashed,replicated,singleton等。


ORCA

  • 基于Cascades优化流程(top-down),并且可以作为其他存储系统的独立优化器模块;
  • 提供了一种中间语言(Data eXchange Language)去编码信息,Query2DXL, DXL2Plan。


image.png      image.png


The input to Orca is a DXL query. The output of Orca is a DXL plan. During optimization, the database system can be queried for metadata (e.g., table definitions). Orca abstracts metadata access details by allowing database system to register a metadata provider (MD Provider) that is responsible for serializing metadata into DXL before being sent to Orca. Metadata can also be consumed from regular files containing metadata objects serialized in DXL format.

  • Memo: 存储Plan的内存结构,里面由一系列groups(逻辑等价表达式)组成;
  • Search and Job Scheduler: 搜索机制以及Job调度,将Plan转换为依赖或者并行执行单元,步骤如下:

exploration, where equivalent logical expressions are generated, implementationwhere physical plans are generated, and optimization, where required physical properties (e.g., sort order) are enforced and plan alternatives are costed.

  • Transformation: 转换,包括物理和逻辑;
  • Property Enforcement: 可扩展的框架,用于描述查询需求和基于正式属性规范的计划字符特性,包括逻辑属性(如输出列)、物理属性(如排序顺序和数据分布)和标量属性(如连接条件中使用的列);
  • Metadata Cache: 元数据(例如表的定义)缓存;
  • GPOS: 操作系统抽象层。


Query Optimization

  • 统计信息获取

image.png

Top-down的统计信息流请求机制(从父节点传入子节点)。相关的直方表信息从catalog通过MD provider解析成DXL存储在MD cache中,再由子节点传入父节点,将统计信息应用到root group。


  • 优化流程

image.png

  • 优化#1请求

image.png


Parallel Query Optimization

Optimization process is broken to small work units called optimization jobs.

image.png


Metadata Exchange

元数据包括表的定义,索引等信息

image.png


Verifiability

  • a cardinality estimation testing framework,
  • a number of benchmark tests at various scales,
  • a data generator that can generate data by reversing database statistics [Reversing Statistics for Scalable Test Databases Generation], and
  • two unique testing tools
    • AMPEReis a tool for Automatic capture of Minimal Portable and Executable Repros.(Automatic Capture of Minimal, Portable, and Executable Bug Repros using AMPERe.[DBTest'12])
    • TAQOfor Testing the Accuracy of Query Optimizer (Testing the Accuracy of Query Optimizers. [DBTest'12])

image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。