Greenplum Orca 优化器目录结构

├─cmake              构建相关
├─data               测试数据
├─libgpdbcost        代价模型
│  ├─include
│  │  └─gpdbcost
│  └─src
├─libgpopt
│  ├─include         头文件
│  │  └─gpopt        ...
│  └─src
│      ├─base        实现各种属性(CRange范围操作、CEnfdDistribution、CEnfdOrder排序)
│      ├─cost        空目录
│      ├─engine      [*]优化器引擎,主要的入口
│        └─── 1 CPartialPlan:局部计划代价
│        └─── 2 CStatisticsConfig:Implementation of statistics context
│        └─── 3 CEnumeratorConfig:Implementation of plan enumerator config
│      ├─eval        Evaluate评估:Constant expression evaluator implementation that delegats to a DXL evaluator
│      ├─mdcache     [*]元数据的访问方法(直方图的统计信息、索引信息 、)
│      ├─metadata    表列索引等元数据(CColumnDescriptor、CIndexDescriptor、CName、CPartConstraint、CTableDescriptor)
│      ├─minidump    导出。序列化查询、序列化计划、导出等
│      ├─operators   [*]各种逻辑和物理操作符
│      ├─optimizer   [*]Optimizer class implementation(PdxlnOptimize:Optimize given query)
│      ├─search      [*]定义了CJob、CMemo、CGroup、CScheduler等重要对象,用以支撑整个优化器架构
│      ├─translate   DXL与表达式之间的转换
│      └─xforms      [*]优化转换(CJoinOrder、CSubqueryHandler)
├─libnaucrates
│  ├─include         头文件
│  │  └─naucrates    ...
│  └─src
│      ├─base        对象(OID/BOOL/INT2/INT4/DXLResult)
│      ├─comm        通讯相关,包括:
│        └─── 1 Implementation of communication handler for message exchange between OPT and QD
│        └─── 2 Implementation of socket logging using communicator
│        └─── 3 CCommMessage.h:Descriptor of message exchanged between OPT and QD processes
│      ├─md          md表示metadata,即各种数据库可以管理的对象,如database\table\index\column等继承自IMDInterface->CRefCount,主要操作为“序列化”
│      ├─operators   [*]DXL tree的各种子类(如CDXLLogicalJoin、CDXLPhysicalMotion)。操作符继承自CDXLOperator->CRefCount,而CRefCount来自"gpos/common/CRefCount.h"。
│      ├─parser      分析器
│      ├─statistics  [*]统计信息(包括直方图CHistogram、统计助手CStatisticsUtils)
│      └─xml         XML相关处理
├─make            构建/编译
│  └─dependencies
├─patches         一个patch包,使得DOMImplementationList继承了XMemory
├─scripts         测试用例相关的脚本
│  └─log_runner
│      ├─logs
│      └─sql
├─server          单元测试相关
│  ├─include
│  │  └─unittest  单元测试头文件
│  └─src
│      ├─startup  单元测试的main文件
│      └─unittest 单元测试代码
└─targzs          版本与平台(32-bits/64-bits)的配置文件
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值