openGauss

开源数据库

openGauss社区官网

开源社区

openGauss训练营学习心得——概述1

khadger2020-05-20openGauss训练营学习心得

国产化大背景下,对数据库的国产化替代也已提上日程,但目前对国产数据库的了解不足,是对转型的一大限制。在知悉墨天轮组织“8 小时玩转 openGauss 训练营”后,就第一时间报名进群。经过两天的学习,先粗略提交一份学习心得,完成作业的同时,也是对现阶段学习进行一个总结。粗浅归纳,如果有纰漏,敬请专家指出。

一、openGauss 概述

openGauss 脱胎于华为商业产品 GaussDB。2011 年之前,华为主要研发企业级内存数据库,主要用在内部核心网和数据通讯方面。2011 年之后,开始做关系型企业级数据库。2019 年 GaussDB 全球发布,兼容行业主流生态。2020 年 6 月 30 日,openGauss 开源。

openGauss 主要基于内部的 GaussDB Kernel 进行共主线的开发,openGauss 会与 GaussDB 共内核的情况下长期演进。

openGauss 目前开源社区持续发展,目前代码托管在 gitee 和 github 上,已成立技术委员会和社区理事会。

openGauss 的定位是把企业级数据库能力带给用户和伙伴。openGauss 目前有以下四个特性:

① 高性能:

在两路鲲鹏 CPU 服务器性能能达到 150 万 tpmC;面向多核架构的并发控制技术;NUMA-Aware 数据结构;SQL-Bypass 智能选路执行技术;面向实时高性能场景的内存引擎(内存数据库 MOT);Inplace-Update 引擎。

② 高可用&高安全:

故障情况下,业务切换时间 RTO<10s;基于 Paxos 协议的高可用;精细安全管理:细粒度访问控制、多维度审计;全方位数据保护:存储&传输&导出加密、动态脱敏、全密态计算(全密态数据库)、防篡改(账本数据库)。

③ 高智能:

AI 自制运维:参数推荐、慢 SQL 诊断、索引推荐、趋势预测及异常检测等;WDR 报告:多维性能自监控视图,实时掌握系统性能表现;库内 AI 引擎:通过简易 SQL 接口提供库内机器学习算法的训练和推理。

④ 全开放:

采用木兰宽松许可证协议,允许对代码自由修改、使用、引用;数据库内核能力完全开放;开放运维监控、开发和迁移工具;开放伙伴认证、培训体系及高校课程。

二、openGauss 架构

openGauss 脱胎于 PostgreSQL,但是与 PG 也有很大的不同。PG 是一个多进程模型,进程切换和连接上损耗较大,拓展性不是很好,而 openGauss 基于多线程的架构模型进行了重构,内部提供了一个线程池的模型架构,支持高并发连接。

openGauss 提供 64 位事务 ID,使用 CSN 解决动态快照膨胀问题,NUMA-Aware 引擎优化改造解决“五把大锁”。日志和检查点提供增量 checkpoint 机制,实现性能平稳,波动<5%。

在多核上,支持 NUMA 的改造,通过 NUMA 原生 spin-lock 和 cache-line padding 机制,优化多核的并发性能。

在存储引擎上,除了支持 PG 原有的行存(append only),还支持列存、内存引擎、行存(就地更新 in-place update),在研分布式计算存储框架(DFV 存储)。

在 SQL 层优化器上,支持 SQL Bypass 快速执行的框架,提高简单查询的性能,同时在 CBO 做了很多拓展,支持复杂场景下算子的下推、计算的优化,面向企业级场景提供更强的优化能力。

在 SQL 解析上,支持 ANSI/ISO 标准 SQL92、SQL99 和 SQL2003,以及兼容性的企业扩展包。

目前先写这么多,后续继续学习,继续更新。