文章目录
- 1. 产品定位
- 2. 3.x版本和5.x版本比对
- 3. openGauss 5.0版本架构
- 4. openGauss 5.0 特点
背景:今年3月openGauss 5.0发布,升级了资源池化内核能力和DataKit数据全生命周期管理工具,整体在性能、安全性与易用性方面均有大幅提升。本次大会上,共7家数据库伙伴、企业用户基于openGauss 5.0发布商业版和自用版,其中,openGauss嵌入式商业发行版首次发布。至此,openGauss覆盖场景从服务器、边缘扩展到嵌入式,场景更加丰富。 作为之前被 openGauss 3.1版本 踩坑的艰辛过程,又持续的跟进了解了一下Opengauss的近况,特地了分享一下。
1. 产品定位
我们先来看下产品定位,根据官网和发布会我们可以了解到OpenGauss5.0的基本产品定位
- openGauss是一款支持SQL2003标准语法,支持主备部署的高可用关系型数据库。
- 多种存储模式支持复合业务场景,新引入提供原地更新存储引擎。
- NUMA化数据结构支持高性能。
- Paxos一致性日志复制协议,主备模式,CRC校验支持高可用。
- 支持全密态计算、账本数据库等安全特性,提供全方位端到端的数据安全保护。
- 通过Table Access Method接口层支持多存储引擎。
openGauss是一款提供面向多核的极致性能、全链路的业务和数据安全,基于AI的调优和高效运维的能力,全面友好开放,携手伙伴共同打造全球领先的企业级开源关系型数据库,采用木兰宽松许可证v2发行。openGauss深度融合华为在数据库领域多年的研发经验,结合企业级场景需求,持续构建竞争力特性。
2. 3.x版本和5.x版本比对
相比于之前版本,我们公司当时使用的是openGauss 3.1.0
所以我的结论,是基于之前的使用过程和感受,具有主观描述,如果有问题可以在评论区留言或者私信给我
。
技术指标 | 3.0版本最大值 | 5.0版本最大值 |
---|---|---|
数据库容量 | 受限于操作系统与硬件 | 受限于操作系统与硬件 |
单表大小 | 32TB | 32TB |
单行数据大小 | 1GB | 1GB,astore包含CLOB/BLOB类型单行上限为32TB。 |
每条记录单个字段的大小 | 1GB | 1GB,astore包含CLOB/BLOB类型单字段上限为32TB。 |
单表记录数 | 248 | 最大为232* ((8k - 页面头)/行宽)。代码层面的限制是单表最多232个页面,每个页面大小为8k。假设当前数据行宽是1k(包括tuple头),则单表记录数约为7 * 232 行(当前页面大小是8k,除了页面头,每个页面包含7行数据)。 |
单表最大列数 | 250~1600(随字段类型不同会有变化) | 1600(随字段类型不同会有变化,建表时不校验字段类型,存入数据时校验,例如bigint类型的字段,每个字段存入8字节数据,1600个字段,需要存入12800个字节,超过一个页面8K,插入时会报错) |
单表中的索引个数 | 无限制 | 无限制 |
复合索引包含列数 | 32 | 32 |
数据库名长度 | 无限制 | 63 |
对象名长度(除数据库名以外的其他对象名) | 无限制 | 63 |
单表约束个数 | 无限制 | 无限制 |
并发连接数 | 10000 | 10000 |
分区表的分区个数 | 32768(范围分区)/64(哈希分区/列表分区) | 220 - 1个 |
分区表的单个分区大小 | 32TB | 32TB |
分区表的单个分区记录数 | 255 | 最大为232 * ((8k - 页面头)/行宽)。代码层面的限制是单表最多232个页面,每个页面大小为8k。假设当前数据行宽是1k(包括tuple头),则单表记录数约为7 * 232 行(当前页面大小是8k,除了页面头,每个页面包含7行数据)。 |
LOB最大容量 | 无限制 | (1G -8203)B |
SQL文本最大长度 | 无限制 | 约为1GB,不同报文接口和处理流程会使用额外空间而略微减少最大可行SQL长度。 |
3. openGauss 5.0版本架构
使用的是在openGauss 5.0.0中,传统的主备复制架构向资源池化架构演进,逻辑架构图如下所示。
字技术正在加速落地行业应用,支撑着丰富的在线应用与服务,产业数字化加速产生了海量的数据,图、流、时序和地图空间等多种数据类型层出不穷,这需要不同的算力架构做处理,数据库对计算的需求由单一的通用CPU向GPU、NPU等多样性计算演进。同时,为了有效应对大规模数据库可靠性、性能、易用性的终极诉求,业界数据库逐渐走向统一的标准化资源池化架构。
针对多样性计算演进的趋势,openGauss实现了资源池化架构,首次实现计算、内存和存储三层解耦,层层池化带来更好的资源调度效率,更好的处理性能和创新的敏捷性。基于数据多模融合的趋势,实现了HTAP架构,同时在openGauss社区联合打造图数据库和时序数据库等不同模型的数据处理能力,这使得openGauss可以实现多模数据的融合处理与分析。
面向未来的openGauss资源池化架构由3层池化、1个平台和1个标准组成。架构示意图如下所示:
三层池化包括存储池化、内存池化和计算池化。存储池化支持多种存储,如分布式存储、企业存储,实现一份数据服务于多种计算,并通过SQL算子卸载的NDP技术,大幅提升了SQL处理效率、消减了网络I/O流量。内存池化实现计算节点间内存的互联,通过同步事务信息和数据库缓存,实现了多节点下的多版本快照一致性读能力,结合RoCE和SCM等硬件,实现极致的Commit加速和大容量内存访问等能力。计算池化支持多样性算力,基于X86、鲲鹏等算力,为应用提供从TP行存加速、AP列存加速、AI训练推理等全方位的数据服务。在三层池化之上,是全场景的SQL标准,为应用提供数据分析、AI推理、图查询等的一系列查询接口,充分释放数据价值。同时,一体化平台实现智能运维、集群管理、资源编排等能力,实现数据库在高负载下的稳定运行和弹性伸缩。
openGauss逻辑架构图
openGauss资源池化架构支持1主7备,主节点支持读写,备机横向扩展读能力,以满足现实世界典型负载性能要求。多节点数据实时一致的能力支持数据一致性敏感型应用负载从单个节点透明扩展到多个节点。去除传统主备日志复制开销,存储成本下降50%以上。基于高性能RDMA网络实现轻量级RPC框架,CPU资源开销显著降低,实现us级网络时延。SCM多级缓存能力实现同等内存成本下性能提升30%。
DMS | DMS是动态库,集成在数据库内部,通过TCP/RDMA网络传输PAGE内容,将主备内存融合,提供内存池化能力,以此实现备机实时一致性读功能。 |
---|---|
DSS | DSS是独立进程,直接管理磁阵裸设备,并对外提供类似分布式文件系统的能力。通过共享内存和客户端API动态库,为数据库提供创建文件、删除文件、扩展和收缩文件、读写文件的能力。 |
共享存储 | 支持企业级存储和分布式存储。与传统建库相比,资源池化将目录分为三种类型,每实例独占且不共享、每实例独占且共享、所有实例共享。其中需要共享的目录均需存放到共享存储上,而不共享的目录存放在本地盘上。另外备机建库只需要建隶属于自己的目录,不需要再次创建所有实例共享的目录结构。 |
OCK-RDMA | 可选通过OCK RDMA降低DMS主备页面交换时延,开启OCK RDMA,备机一致性读时延性能提升20%+。 |
SCM | 基于持久化内存的SCM加速,实现同等内存成本下性能提升30%。 |
4. openGauss 5.0 特点
openGauss相比于其他开源数据库主要有以下几个主要特点:
-
高性能
- 提供了面向多核架构的并发控制技术,结合鲲鹏硬件优化,在两路鲲鹏下,TPCC Benchmark可以达到150万tpmc的性能。
- 针对当前硬件多核numa的架构趋势, 在内核关键结构上采用了Numa-Aware的数据结构。
- 提供Sql-bypass智能快速引擎技术。
- 针对频繁更新场景,提供ustore存储引擎。
-
高可用
- 支持主备同步、异步以及级联备机多种部署模式。
- 数据页CRC校验,损坏数据页通过备机自动修复。
- 备机并行恢复,10秒内可升主提供服务。
- 提供基于paxos分布式一致性协议的日志复制及选主框架。
-
高安全
支持全密态计算、访问控制、加密认证、数据库审计、动态数据脱敏等安全特性,提供全方位端到端的数据安全保护。
-
易运维
- 基于AI的智能参数调优和索引推荐,提供AI自动参数推荐。
- 慢SQL诊断,多维性能自监控视图,实时掌控系统的性能表现、预测指标的未来走势,还可以进行异常检测和慢SQL的根因分析。
-
全开放
- 采用木兰宽松许可证协议,允许对代码自由修改、使用、引用。
- 数据库内核能力全开放。
- 提供丰富的伙伴认证,培训体系和高校课程。
大家好我是冰点,本次分享内容就基本上是这些了 ,感谢大家的阅读,如果对你所帮助,如果有问题可以在评论区留言。