《6-穆帅楠-ivorysql3.0项目介绍.pdf》由会员分享,可在线阅读,更多相关《6-穆帅楠-ivorysql3.0项目介绍.pdf(17页珍藏版)》请在三个皮匠报告上搜索。
1、IvorySQL3.0项目介绍及架构分析演讲人穆帅楠公司&职位瀚高&研发工程师Subject 1系统表Subject 2数据集簇Subject 3进程结构Subject 4IvorySQL兼容性CONTENTPART 01系统表系统表功能-数据字典定义-在 src/include/catalog 下存在68个 pg_xxx.h 的文件,对应地定义了与文件名同名的系统表的数据结构,其中,indexing.h 定义了所有的系统表的索引,toasting.h 定义了所有系统表的TOAST表实现-在 src/backend/catalog 下的 pg_xxx.c 文件定义了对pg_xxx进行相关操作的
2、函数,其中,indexing.c定义了操作索引的函数,toasting.c定义了操作系统表的TOAST表的函数系统表pg_attribute存储所有表(包括系统表)的字段信息。每个表的每个字段在pg_attribute都有一行记录。attidentitychar在原有的基础上,添加了三种可选的值,n表示自增列可以指定插入,包括NULLo表示自增列可以指定插入,但不包括NULLi表示自增列只能自动生成系统表pg_type存储数据类型信息。该表中的每一个元组都对应一个数据类型。PART 02数据集簇数据集簇initdb 的使用配置文件过程语言模块扩展extension数据集簇不同的bki文件:po
3、stgres.bki和postgres_oracle.bki(编译时genbki.pl生成)在系统表初始值的文件中,可以通过注释的方法选择加载想要加载的系统表元组,这样可以确保无论使用IvorySQL的哪种模式,系统表中不会出现不该出现的“垃圾”元组。PART 03进程结构进程结构PART 04IvorySQL兼容性IvorySQL3.0PG工具Oracle应用PG SQL解析器5432Oracle SQL解析器1521查询重写查询优化查询执行存储管理|缓存区管理|事务管理日志管理|并发控制|锁管理PL/pgSQLPL/iSQLPL/PythonPL/TCLPL/PerlPL/RPL/Java.PostGISIvorySQL_oraPostgres_fdwOracle_fdwpg_idx_advisorpg_logqueryidpg_stat_statements.54321521兼容性数值类型:number字符类型:varchar2日期类型:date/timestamp/interval浮点数类型:binary_float/binary_double数据类型内置函数sysdate()instrb()substrb()ltrim()IvorySQLTHANK YOU联系信息CONTACT INFORMATION