openGauss MySQL兼容性简介
发表于 2023/12/07
0
尊敬的鲲鹏开发者你好,为了降低openGauss MySQL兼容性函数的开发门槛,帮助开发者更便捷地进行openGauss MySQL兼容性函数开发,您可以通过本文的学习来完成openGauss MySQL兼容性函数开发的快速入门。
本文主要介绍了以下知识:
(1)openGauss MySQL兼容性基础知识介绍。
(2)如何进行openGauss MySQL兼容性函数开发。
(3)openGauss MySQL兼容性函数开发流程和要点。
什么是openGauss
openGauss是一款开源的关系型数据库管理系统,它具有多核高性能、全链路安全性、智能运维等企业级特性。 openGauss内核早期源自开源数据库PostgreSQL,融合了华为在数据库领域多年的内核经验,在架构、事务、存储引擎、优化器及ARM架构上进行了适配与优化。
openGauss的特点包括:
(1)高性能:openGauss突破了多核CPU的瓶颈,实现两路鲲鹏128核150万tpmC,内存优化表(MOT)引擎达350万tpmC。
(2)数据分区:内部线程共享的关键数据结构进行数据分区,减少加锁访问冲突。比如CLOG就采用分区优化,解决ClogControlLock锁瓶颈。
(3)NUMA化内核数据结构:关键数据结构NUMA化分配,减少跨CPU访问。比如全局PGPROC数组按照NUMA Node的数目分为多份,分别在对应NUMA Node上申请内存。解决ProcArrayLock锁瓶颈。
(4)绑核优化:把网络中断绑核和后台业务线程绑核区分开,避免运行线程在核间迁移造成的性能不稳定。
(5)RM指令优化:结合ARM平台的原子操作lse进行优化,实现关键互斥变量原子高效操作。
(6)SQL BY PASS:通过SQL BY PASS优化SQL执行流程,简化CPU执行开销。
(7)高可靠:正常业务负载情况下,RTO小于10秒,降低节点故障导致的业务不可用时间。
(8)并行恢复:主机日志传输到备机时,备机日志落盘的同时,发送给重做恢复分发线程,分发线程根据日志类型和日志操作的数据页发给多个并行恢复线程进行日志重做,保证备机的重做速度跟上主机日志的产生速度。这样备机实时处于ready状态,从而实现瞬间故障切换。
(9)MOT引擎(Beta发布):内存优化表(MOT)存储引擎是一个专为多核大内存优化的存储引擎,具有极高的联机事务处理(OLTP)性能和资源利用率。MOT的数据和索引完全存储在内存中,通过NUMA感知执行,算法消除闩锁争用以及查询JIT本地编译,提供低时延数据访问及高效事务执行。更多请参考MOT引擎文档。
(10)安全:openGauss支持账号管理,账号认证,口令复杂度检查,账号锁定,权限管理和校验,传输加密,操作 审计等全方位的数据库安全能力,保护业务满足安全要求。
(11)易运维:openGauss将AI算法集成到数据库中,减少数据库维护的负担。
什么是openGauss MySQL兼容性
openGauss的MySQL兼容性是通过dolphin插件实现的。Dolphin插件是openGauss的MySQL兼容性数据库(dbcompatibility='B')扩展,从关键字、数据类型、常量与宏、函数和操作符、表达式、类型转换、DDL/DML/DCL语法、存储过程/自定义函数、系统视图等方面兼容MySQL数据库。
如何编译安装dolphin插件
(1)编译安装 openGauss。(参考openGauss开源社区编译指南:https://docs-opengauss.osinfra.cn/zh/docs/latest/docs/CompilationGuide/Compilation.html)
(2)将 dolphin 源码拷贝到 openGauss 源码 contrib 目录下。
(3)进去 dolphin 目录执行 make install。
(4)创建B兼容性数据库并使用初始用户连接该数据库。