openGauss5.0企业版使用指南之系统架构

这篇具有很好参考价值的文章主要介绍了openGauss5.0企业版使用指南之系统架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


openGauss5.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
所以我的结论,是基于之前的使用过程和感受,具有主观描述,如果有问题可以在评论区留言或者私信给我


openGauss5.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个标准组成。架构示意图如下所示:

openGauss5.0企业版使用指南之系统架构

三层池化包括存储池化、内存池化和计算池化。存储池化支持多种存储,如分布式存储、企业存储,实现一份数据服务于多种计算,并通过SQL算子卸载的NDP技术,大幅提升了SQL处理效率、消减了网络I/O流量。内存池化实现计算节点间内存的互联,通过同步事务信息和数据库缓存,实现了多节点下的多版本快照一致性读能力,结合RoCE和SCM等硬件,实现极致的Commit加速和大容量内存访问等能力。计算池化支持多样性算力,基于X86、鲲鹏等算力,为应用提供从TP行存加速、AP列存加速、AI训练推理等全方位的数据服务。在三层池化之上,是全场景的SQL标准,为应用提供数据分析、AI推理、图查询等的一系列查询接口,充分释放数据价值。同时,一体化平台实现智能运维、集群管理、资源编排等能力,实现数据库在高负载下的稳定运行和弹性伸缩。
openGauss逻辑架构图

openGauss5.0企业版使用指南之系统架构
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的根因分析。
  • 全开放

    • 采用木兰宽松许可证协议,允许对代码自由修改、使用、引用。
    • 数据库内核能力全开放。
    • 提供丰富的伙伴认证,培训体系和高校课程。

大家好我是冰点,本次分享内容就基本上是这些了 ,感谢大家的阅读,如果对你所帮助,如果有问题可以在评论区留言。
openGauss5.0企业版使用指南之系统架构文章来源地址https://www.toymoban.com/news/detail-477148.html

到了这里,关于openGauss5.0企业版使用指南之系统架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 企业级WIKI协同工作平台搭建指南:Confluence深度使用与安装

    本文详细介绍了Confluence软件的特性和安装过程,Confluence是一款功能强大的办公软件,支持在线文档编辑、团队协作和内容管理。文章首先概述了Confluence的核心特性,包括空间管理、页面版本控制、编辑器功能、宏和附件管理等。

    2024年01月16日
    浏览(48)
  • 【ELK 使用指南 3】Zookeeper、Kafka集群与Filebeat+Kafka+ELK架构(附部署实例)

    分布式应用管理框架 。 Zookeeper是个开源的,分布式的,为分布式框架提供协调服务的Apach项目。 主要用于解决分布式应用集群中 应用系统的一致性问题 。 作为 文件系统 ,用于注册各种分布式应用, 储存管理分布式应用的元信息 ; 作为 通知机制 ,如果节点或者服务本身的

    2024年02月08日
    浏览(49)
  • 【Unity 框架】QFramework v1.0 使用指南 架构篇:03. 引入 Command | Unity 游戏框架 | Unity 游戏开发 | Unity 独立游戏

    我们回顾一下目前的代码,如下; 现在,数据共享的问题通过 引入 Model 解决了。 这里再次强调一下,需要共享的数据放 Model 里,不需要共享的,能不放就不放。 虽然引入了 Model,但是这套代码随着项目规模的发展还是有很多的问题。 其中最严重也最常见的就是 Controller

    2024年02月06日
    浏览(44)
  • 【Shell 命令集合 系统管理 】Linux 用户登录系统 login命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 login命令是Linux系统中的一个命令,其作用是用户登录系统。当用户通过终端或远程连接登录到Linux系统时,系统会调用login命令来验证用户身份,并提供一个交互式的登录会话。 login命令的主要作用如下: 用户身份验证:login命令会要求用

    2024年02月03日
    浏览(40)
  • 【一文秒懂】Ftrace系统调试工具使用终极指南

    Ftrace 是 Function Trace 的简写,由 Steven Rostedt 开发的,从 2008 年发布的内核 2.6.27 中开始就内置了。 Ftrace 是一个系统内部提供的追踪工具,旨在帮助内核设计和开发人员去追踪系统内部的函数调用流程。 随着 Ftrace 的不断完善,除了追踪函数调用流程的作用外,还可以用来调试

    2024年01月23日
    浏览(39)
  • 【Shell 命令集合 系统管理 】⭐⭐⭐Linux 重启 reboot命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 reboot命令是Linux操作系统中用于重新启动系统的命令。当系统出现问题或需要重新加载配置时,使用reboot命令可以快速重启系统,使新的配置生效。 使用reboot命令会关闭系统中的所有进程,并重新加载操作系统。在重启过程中,系统会执行

    2024年02月04日
    浏览(36)
  • 【Shell 命令集合 系统管理 】Linux 删除用户 userdel 命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 userdel命令是Linux系统中的一个用于删除用户的命令。它的作用是删除指定的用户账号以及与之相关的用户组、用户主目录和系统文件。 用户账号是Linux系统中的一个重要概念,它用于标识一个用户的身份。每个用户账号都有一个唯一的用户

    2024年02月05日
    浏览(49)
  • 【Shell 命令集合 系统管理 】Linux 显示或设置系统时间和日期 date命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 date命令是Linux系统中用于显示或设置系统时间和日期的命令。它可以显示当前的系统时间和日期,也可以用于设置系统时间和日期。 当使用date命令不带任何参数时,它会显示当前系统时间和日期。它的输出格式通常是以\\\"星期 月 日 时:分

    2024年02月07日
    浏览(41)
  • 【Shell 命令集合 系统设置 】⭐⭐⭐Linux 设置环境变量setenv命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 setenv命令是用于在Linux系统中设置环境变量的命令。环境变量是一种在操作系统中存储的键值对,用于存储系统配置信息、用户偏好设置以及程序运行所需的路径等信息。通过设置环境变量,可以方便地在不同的程序之间共享数据。 seten

    2024年02月08日
    浏览(42)
  • 更安全,更省心丨DolphinDB 数据库权限管理系统使用指南

    在数据库产品使用过程中,为保证数据不被窃取、不遭破坏,我们需要通过用户权限来限制用户对数据库、数据表、视图等功能的操作范围,以保证数据库安全性。为此,DolphinDB 提供了具备以下主要功能的权限管理系统: 提供用户和组角色,方便权限控制 提供19种权限控制

    2024年02月15日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包