openGauss数据库共享存储特性简介

news2024/11/16 6:46:40

openGauss 3.1.1是openGauss 5.0.0 release版本的Preview版本,希望广大社区伙伴和开发者基于此版本进行场景化验证,提前发现问题并反馈社区,社区将在LTS版本发布前进行问题修复。当前文档说明范围仅限企业版。

文章目录

  • 版本介绍
    • 继承功能:
    • 新增功能:
  • 主备共享存储
    • 特性简介
    • 客户价值
    • 特性描述
    • 特性约束

版本介绍

3.1.1与之前的版本特性功能保持兼容,主要功能如下:

继承功能:

  • 基础功能:SQL标准语法、数据类型、表(包括临时表、全局临时表、外部表)、视图、物化视图、外键、索引(包括btree索引、Gin索引、hash索引)、序列、函数、触发器、聚合函数median、ROWNUM、UPSERT、、jsonb数据类型、GB18030字符集。
  • 存储过程:存储过程、存储过程内commit/rollback、参数的存储过程/函数调用省略()、存储过程调试。
  • 安全功能:认证、权限管理、网络通信安全、数据库审计、全密态数据库、动态数据脱敏、国密算法、防篡改账本数据库、内置角色和权限管理、透明加密、ANY权限管理等。
  • 高可用:主备双机、级联备机、逻辑复制、极致RTO、备机扩容、基于Paxos分布式一致性协议(DCF)、两地三中心跨Region容灾。
  • SQL引擎增强:范围分区、全局分区索引、LIST分区、HASH分区、基于范围分区的自动扩展分区、行存转向量化、自治事务、并行查询、Global Syscache、IPv6协议、postgis插件。
  • 存储引擎增强:延迟备库、备机支持逻辑复制、并行逻辑解码、灰度升级、滚动升级、Hash索引、列存表主键唯一约束、Ustore存储引擎、段页式存储、发布订阅、行存表压缩、MOT内存表、NUMA-aware高性能优化等。
  • 备份恢复:全量物理备份、逻辑备份、备机备份、增量备份和恢复、恢复到指定时间点(PITR)。
  • AI能力:参数自调优、慢SQL发现、AI查询时间预测、数据库指标采集预测与异常监控、DBMind自治运维平台、智能优化器、智能索引推荐、deepSQL库内AI算法、库内AI算法支持XGBoost、multiclass和PCA。
  • 运维能力:WDR诊断报告新增数据库运行指标、备机慢SQL诊断视图、unique sql自动淘汰。
  • JDBC:支持JDBC客户端负载均衡及读写分离。
  • CM:支持CM集群管理,CM支持自定义资源管控,支持对外状态查询和推送能力。
  • 工具链:开发工具DataStudio、数据迁移工具chameleon。
  • 中间件:shardingSphere、openLookeng。
  • 周边生态:dblink,支持openEuler、CentOS、Ubuntu、FusionOS系统
  • 其他:cmake脚本编译、容器化部署、kubernetes

新增功能:

  • 主备共享存储
  • MySQL兼容性增强
  • CM部署和数据库部署解耦,CM支持增量升级
  • MOT内存表能力增强

其中,主备共享存储特性是3.1.X版本引入的比较重要特性。下面重点介绍一下。

主备共享存储

特性简介

本特性提供主备机共享一份存储的能力,实现基于磁阵设备的主备共享存储HA部署形态,可选通过OCK RDMA提升备机实时一致性读能力_。_主备共享存储架构图如下图所示。
在这里插入图片描述

图 1 主备共享架构图

客户价值

解决传统HA部署下存储容量较单机部署翻倍的问题,减少了存储容量,节省磁阵设备。可选通过OCK RDMA提升备机实时一致性读能力。

特性描述

-共享存储依赖两个自研的公共组件实现主备共享存储的能力:

  • 分布式存储服务DSS(Distributed Storage Service)

DSS是独立进程,直接管理磁阵裸设备,并对外提供类似分布式文件系统的能力。通过共享内存和客户端API动态库,为数据库提供创建文件、删除文件、扩展和收缩文件、读写文件的能力。

  • 分布式内存服务DMS(Distributed Memory Service)

DMS是动态库,集成在数据库内部,通过TCP/RDMA网络传输PAGE内容,将主备内存融合,提供内存池化能力,以此实现备机实时一致性读功能。

共享存储通过分布式存储服务DSS组件实现主备共享一份存储。与传统建库相比,共享存储基于磁阵建库将目录分为三种类型,每实例独占且不共享、每实例独占且共享、所有实例共享。其中需要共享的目录均需存放到磁阵设备上,而不共享的目录存放在本地盘上。另外备机建库只需要建隶属于自己的目录,不需要再次创建所有实例共享的目录结构。主备共享存储新增了相关GUC参数,以及将系统表存储方式从页式切换到段页式。

共享存储通过分布式内存服务DMS组件实现主备页面实时交换,提供备机实时一致性能力。即主机事务提交后,在备机立即能够读到,不存在延迟读现象(事务隔离级别为Read-Committed)。

共享存储通过OCK RDMA降低DMS主备页面交换时延。TCP下的备机一致性读进行时延对比,开启OCK RDMA,备机一致性读时延至少要降低20%。

特性约束

主备共享存储方案依赖于磁阵设备,磁阵的LUN需要支持SCSI3的PR协议(包括PR OUT(“PERSISTENT RESERVE OUT”)PR IN(“PERSISTENT RESERVE IN”)和INQUIRY), 用于实现集群IO FENCE。除此之外, 还需要支持SCSI3的CAW协议(COMPARE AND WRITE),用于实现共享磁盘锁。如Dorado 5000 V3磁阵设备。
实现的主备共享存储HA部署形态只支持1主1备和1主2备场景,其他场景为体验版未测试过,不承诺。
由于主备共享存储依赖类似分布式文件系统的功能来实现备机实时一致性读能力,因此要求文件元数据变更越少越好。基于性能考虑,只支持段页式表。
只支持主备部署在同一磁阵设备上,不支持容灾部署,也不支持主备混合部署(如主和备部署在不同的磁阵设备上)。
主备页面交换通过RDMA加速,依赖CX5网卡,并且依赖OCK RDMA动态库。
暂不支持备机重建及节点替换、节点修复等能力。
不支持从传统HA部署升级到基于主备共享存储部署。
共享存储模式下gs_xlogdump_xid,gs_xlogdump_lsn,gs_xlogdump_tablepath,gs_xlogdump_parsepage_tablepath、pg_create_logical_replication_slot、gs_verify_and_tryrepair_page、gs_repair_page、gs_repair_file函数功能不支持使用。
共享存储模式下T_CreatePublicationStmt、T_AlterPublicationStmt、T_CreateSubscriptionStmt、T_AlterSubscriptionStmt、T_DropSubscriptionStmt订阅功能不支持使用。
共享存储模式下不支持全局临时表。

安装部分对应的也新增了共享存储场景的支持。cluster_config_template.xml配置文件模板示例:

   ...
    <!-- 共享存储模式开关 -->
    <PARAM name="enable_dss" value="on"/>
    <!-- dss实例目录 -->
    <PARAM name="dss_home" value="/opt/huawei/install/data/dss"/>
    <!-- dss共享卷名 -->
    <PARAM name="ss_dss_vg_name" value="data"/>
    <!-- dss挂载卷组名和卷组信息,包含共享卷 -->
    <PARAM name="dss_vg_info" value="data:/dev/sdb,p0:/dev/sdc,p1:/dev/sdd"/>
    <!-- cm投票卷 -->
    <PARAM name="votingDiskPath" value="/dev/sde"/>
    <!-- cm共享卷 -->
    <PARAM name="shareDiskDir" value="/dev/sdf"/>
    <!-- dss开启ssl认证开关 -->
    <PARAM name="dss_ssl_enable" value="on"/>
    <!-- mes通信协议类型  -->
    <PARAM name="ss_interconnect_type" value="TCP"/>
    <!-- rdma绑定cpu序列  -->
    <PARAM name="ss_rdma_work_config" value="1 7"/>

欢迎有兴趣和条件的同学可以对主备共享存储特性进行场景化验证。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/351635.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

轻松在 MAUI 应用中播放音视频,MediaElement 现已发布!

最受期待的 .NET MAUI 控件之一&#xff1a;MediaElement 现已发布。有了 MediaElement&#xff0c;您可以轻松地在 .NET MAUI 应用程序中播放音频和视频&#xff0c;在这篇文章中&#xff0c;您将了解到有关 MediaElement 第一个版本的所有信息以及我们对未来的计划&#xff0…

8086汇编-35更灵活定位内存地址04

#pragma once/*35-更灵活定位内存地址04不同的寻址方式的灵活应用如果我们比较一下前面用到的几种定位内存地址的方法&#xff08;可称为寻址方式&#xff09;&#xff0c;就可以发现有以下几种方式&#xff1a;&#xff08;1&#xff09;[idata] 用一个常量来表示地址&#xf…

新房装修流程详细步骤有哪些? 新房装修流程注意事项有哪些?

新房装修时&#xff0c;对于装修流程的详细步骤和装修过程中的一些注意事项&#xff0c;有必要了解一下&#xff0c;以免上当受骗&#xff0c;也免得考虑不周&#xff0c;后续造成一些隐患。新房装修流程详细步骤有哪些呢&#xff1f;1.新装装修流程第一步&#xff0c;首先&…

Java_Maven:4. maven 私服

目录 1 需求 2 分析 3 搭建私服环境 3.1 下载 nexus 3.2 安装 nexus 3.3 卸载 nexus 3.4 启动 nexus 3.5 仓库类型 4 将项目发布到私服 4.1 需求 4.2 配置 4.3 测试 5 从私服下载 jar 包 5.1 需求 5.2 管理仓库组 5.3 在 setting.xml 中配置仓库 5.4 测试从私…

C++之迭代器

迭代器C中&#xff0c;迭代器就是类似于指针的对象&#xff0c;但比指针的功能更丰富&#xff0c;它提供了对对象的间接访问&#xff0c;每个迭代器对象代表容器中一个确定的地址。举个例子&#xff1a;void test() {vector<int> vv{1,2,3,4,5};for(vector<int>::i…

大数据框架之Hadoop:MapReduce(一)MapReduce概述

1.1MapReduce定义 MapReduce是一个分布式计算框架&#xff0c;用于编写批处理应用程序&#xff0c;是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序&#xff0c;并发运行在一…

一文掌握如何对项目进行诊断?【步骤方法和工具】

作为项目经理和PMO&#xff0c;面对错综复杂的项目&#xff0c;需要对组织的项目运作情况进行精确的分析和诊断&#xff0c;找出组织项目管理中和项目运行中存在的问题和潜在隐患&#xff0c;分析其原因&#xff0c;预防风险&#xff0c;并且形成科学合理的决策建议和解决方案&…

day43【代码随想录】动态规划之一和零、完全背包理论基础

文章目录前言一、一和零&#xff08;力扣474&#xff09;二、完全背包前言 1、一和零 2、完全背包理论基础 一、一和零&#xff08;力扣474&#xff09; 求装满这个背包最多有多少个物品 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集…

Python实现查票以及自动购票....再也不用愁手速不够啦~

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 今天咱们来用Python做一个自动查票抢票的脚本&#xff0c;24小时抢票&#xff0c;谁抢的过你&#xff01; 准备工作 环境 Python 3.8 Pycharm 插件 谷歌浏览器驱动 模块 需要安装的第三方模块&#xff0c;直接pi…

极智AI | 算能SC5+智算卡驱动安装与升级

欢迎关注我的公众号 [极智视界]&#xff0c;获取我的更多经验分享 大家好&#xff0c;我是极智视界&#xff0c;本文介绍一下 算能SC5智算卡驱动安装与升级。 邀您加入我的知识星球「极智视界」&#xff0c;星球内有超多好玩的项目实战源码下载&#xff0c;链接&#xff1a;ht…

2023美赛问题E:光污染

背景 背景 光污染是指任何过多或不当使用人造光的表现。我们所称为光污染的一些现象包括光侵入、过亮、以及光混乱。这些现象最容易在大城市太阳落山后观察到天空中的发光&#xff1b;然而&#xff0c;它们也可能发生在更偏远的地区。 光污染改变了我们对夜空的看法&#xff…

递归与尾递归

你肯定知道递归&#xff0c;大概也知道尾递归。可是为什么要在递归中分出尾递归这样一个类&#xff1f;尾递归的本质又是什么&#xff1f;许多人未必清楚。 递归原是Lisp语言提出的概念&#xff0c;后来被许多语言借鉴。递归指自我重复的结构&#xff0c;在编程语言中体现为函…

共享模型之工具(二)

1.自定义线程池 1>.在实际开发过程中建议不要使用JDK提供的方式创建线程池,因为底层不方便优化,在请求量非常大的情况下可能会出现OOM,我们需要手动实现一个线程池; 2>.代码实现: Slf4j public class TestThreadPoolDemo1 {public static void main(String[] args) {/…

容器安全风险and容器逃逸漏洞实践

本文博客地址&#xff1a;https://security.blog.csdn.net/article/details/128966455 一、Docker存在的安全风险 1.1、Docker镜像存在的风险 不安全的第三方组件&#xff1a;用户自己的代码依赖若干开源组件&#xff0c;这些开源组件本身又有着复杂的依赖树&#xff0c;甚至…

在 Python 中只接受数字作为用户输入

只接受数字作为用户输入&#xff1a; 使用 while True 循环进行循环&#xff0c;直到用户输入一个数字。使用 float() 类尝试将值转换为浮点数。如果用户输入了一个数字&#xff0c;请使用 break 语句跳出循环。 while True:try:# &#x1f447;️ use int() instead of floa…

宝马项目化流程标准(BMW ABC flyer requirement)

ABC flyer/ BMWQMT build phase requirement宝马的项目流程标准叫做ABC flyer,也叫QMT build phase requirement.为什么叫这么名字&#xff0c;是因为宝马项目的产品零件分为几个阶段&#xff1a;A-samples, B-samples,C-samples, initial-samples.1、PVL/ VS0:100% ok parts i…

高通平台开发系列讲解(Android篇)AudioTrack音频流数据传输

文章目录 一、音频流数据传输通道创建1.1、流程描述1.2、流程图解二、音频数据传输2.1、流程描述2.2、流程图解沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要图解AudioTrack音频流数据传输 。 一、音频流数据传输通道创建 1.1、流程描述 AudioTrack在set函…

项目自动化构建工具make/Makefile

目录 make/Makefile概念和关系 make/Makefie的使用 一个工程中的源文件不计数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;makefile定义了一系列的规则来指定&#xff0c;哪些文件需要先编译&#xff0c;哪些文件需要后编译&#xff0c;哪些文件需要重…

33岁测试宝妈,在家带娃一年半,入职新公司居然年薪30W+

疫情3年&#xff0c;每一个行业的危机&#xff0c;每一个企业的倒下&#xff0c;背后都是无数人的降薪、降职和失业。这也暴露了人生的残酷真相&#xff1a;人活一辈子&#xff0c;总有“丰年”和“荒年” 优秀的测试既过得了丰年&#xff0c;也受得住荒年。 我之前认识的一个…

零信任-Zscaler零信任介绍(7)

​Zscaler零信任介绍 Zscaler是一家专注于网络安全的公司&#xff0c;他们提供了一种名为Zscaler Zero Trust Exchange (ZTX)的零信任解决方案。这种解决方案旨在帮助企业提高网络安全&#xff0c;并确保只有授权的用户&#xff0c;设备和应用程序才能访问敏感信息。ZTX采用多…