Greenplum Orca 优化器目录结构

来源:互联网 发布:长春干部网络学校 编辑:程序博客网 时间:2024/05/29 13:18
├─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 0
原创粉丝点击