暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGuass训练营学习笔记

原创 苏昭然 2021-03-30
1273

随着国内技术的强大,当下国产数据库正在像国产手机一样崛起,目前很会的国产数据库有华为GaussDB,达梦数据库,OceanBase,TiDB。其中openGauss是一款开源、免费的数据库管理系统,鼓励社区融合和合作。融合了华为在数据库方面的很多经验,结合企业级的场景需求,持续构建核心竞争力,openGauss内核源自PostgreSQL。openGauss在2019年9月19日的华为全联接大会上首次被命名,并于2020年06月30日开放了其源代码。有幸通过云和恩墨平台参加了opengauss训练营,通过两天的学习,售后很多。
opengauss是在在pg的基础上发展而来的,但是相对pg数据库,opengauss进行了大量的优化。
image.png
其中我对于NUMA内核数据结构和MOT很感兴趣。下面简单介绍一下这两个东西。
一、openGauss NUMA 内核数据结构
image.png
主要的特点:
• 线程绑核, 避免线程在核间偏移。
• NUMA化数据结构改造, 减少跨核访问。
• 数据分区, 减少线程访问冲突。
• 算法调整, 减少单点瓶颈。
• 借助ARM原子指令, 减少计算开销。
二、MOT原理和优势
image.png
1、内存表:
• 基于事务的行存储引擎,与传统磁盘引擎并排的基于磁盘的存储引擎
• 针对多核和大内存服务器优化:近线性可扩展性
• 符合ACID要求+严格可持久化+高可用性
• 完全集成到openGauss中,支持绝大部分SQL特性(存储过程、函数…)
• 支持x86和ARM64鲲鹏
• 优点:
– 高吞吐量:3倍于磁盘表,6倍于PG 12.2
– 低延迟:事务加速3倍至5.5倍
– 严格一致性保障的HA和RTO
2、关键技术:
• 内存优化数据结构
• 无锁事务管理
• 无锁索引
• NUMA感知,事务本地内存
• 高效、可靠的持久化
• 查询本机编译(即时编译JIT,有时也称为codegen通过LLVM将完整查询编译为本机格式,以减少多个处理层次,性能明显更好,更加轻量化。编译后的代码会产生一个C函数指针,以后可以由许多会话并发调用以直接执行(Lite执行),针对OLTP进行了优化)
3、优势
•性能高、CPU利用率高、延迟低
– 高度优化的全内存免锁存储引擎
– 基于全内存优化实现的免锁索引
– 高度优化的并发访问控制
– 针对NUMA优化的内存管理, 预缓存对象池
– 针对NUMA高度优化的组提交
•生态好、兼容好、功能完整
– 有效利用openGauss现有的查询引擎,兼容PG生态
– 兼容PG原生FDW和索引, SQL标准兼容度高, 功能完整
– 除PG原生FDW之外,还支持存储过程、用户定义函数等功能

最后修改时间:2021-03-30 17:52:49
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论