一. GBase 8c核心技术
1.1  自适应事务处理机制

GBase 8c采用自适应的事务处理机制来提升系统性能。对于只需要在本地节点进行处理的事务,协调器按本地事务处理流程进行处理,不需要进行两阶段提交,以提升事务处理的效率;对于需要跨节点处理的事务,协调器协调参与者进行两阶段提交,以保障全局事务的一致性。整个事务处理的流程对客户端透明。

1.2  数据分布策略

GBase 8c支持复制表和分布表,通过数据分布策略来避免并行计算期间的资源竞争,同时提升系统性能。复制表是指每个节点上都复制一份数据,数据关联时在节点本地完成。分布表是指一份数据根据某个键值水平拆分到不同的节点上,将单个大表拆分成若干小表,提升系统读写的性能。

复制表和分布表的适用场景如下:

表类型

操作类型

性能表现

适用场景

复制表

插入

较慢

字典表

小表

查询(JOIN)

快/高并发/线性提升

分布表

插入

快/高并发/线性提升

事实表

超大表

易分片的表

查询(多表单片)

快/高并发/线性提升

查询(单表多片)

较快

查询(多表多片)

避免出现

复制表-分布表混合

复制表对单一分布表

JOIN 查询

较快

主题表-事实表

字典表-事实表

小表-超大表

1.3  并行技术

GBase 8c采用并行技术来提升系统的性能和吞吐量,主要特点有:

1.分布式并行计划器,结合集群特征,对算子进行分布式处理,生成合适的分布式执行计划;

2.通过基于规则和基于代价的优化,保证执行计划的高效;

3.调度器采用异步 I/O 等技术,确保调度的高效、可靠;

1.4  分布式查询

对于分布式查询,根据关联表类型的不同分为:复制表+复制表、复制表+分布表、分布表+分布表,数据落在相同HG上、分布表+分布表,数据落在不同HG上四种情况。

1.4.1     复制表+复制表

1.   应用发出查询SQL;

2.   CN解析SQL,计算出SQL涉及的表均为复制表;

3.   向本HG发送SQL;

4.   获得结果返回应用。

5.   这类查询不涉及数据移动,无临时计算结果,查询性能高,支持高并发,性能线性提升。

1.4.2     复制表+分布表

1.   应用发出查询数据SQL;

2.   CN根据查询条件判断包含复制表和分布表,则分别向HG-1、HG-2、HG-3查询数据,并获得每个节点上的结果;

3.   合并结果并返回。

这类查询性能较高,高并发的支持不如只涉及单组情况,适于大表的存储。

1.4.3     分布表+分布表

分布表+分布表的查询,分为数据落在相同HG上和不同HG上两种类型。

数据落在相同HG上时原理如下:

TD1和TD2皆为分布表,以uid为分片列:

1.   CN接收到SQL后,根据集群元数据存储的分片规则,确认此次查询仅涉及HG-1;

2.   把SQL语句直接发送给HG-1,获得执行结果;

3.   CN将结果返回给用户。

这类查询性能高,无冗余操作,支持高并发,性能线性提升。

数据落在相同HG上时原理如下:

TD1和TD2皆为分布表,以uid为分片列:

1.   CN接收到SQL后,根据集群元数据存储的分片规则,根据TD1表的分片规则,生成分布SQL语句;

2.   把SQL语句发送给HG-1数据引擎执行;

3.   HG-1拉取其他HG上TD2表uid<60的数据;

4.   进行JOIN查询计算;

5.   HG-1将结果返回给CN;

6.   CN返回给用户。

这类查询性能较差,涉及数据移动,跨节点拉数据,网络传输是瓶颈。

1.5  全局死锁解除

GBase 8c具备全局死锁解除的能力。当发现死锁情况时,会将全局事务号最大的事务退出,从而解决死锁问题。

GBase 8c通过在CN和DN上部署global deadlock process并与GTM建立通讯通道,周期性的对事务等待关系进行检测,并将检测结果发送给GTM用来构建全局等待图。当检测到死锁环时,立即将执行事务号最大的事务执行退出流程,从而解决全局死锁问题。

1.6  事务状态保持

GBase 8c具备事务状态保持能力,任意协调器节点(CN)宕机后,都不影响该节点正在进行的事务状态,事务可以在另一接管CN节点上继续顺利运行,从而保证数据库处理能力。

如上图所示两阶段提交事务处理过程中:

1、CN2节点正常下发事务Prepare状态;

2、三个DN节点正常返回事务Prepare OK状态;

3、CN2节点正常下发事务Commit状态;

4、DN1节点返回Commit OK状态且DN2、DN3还未完成Commit OK状态提交时,CN2节点宕机;

5、此时CN3节点检测到CN2节点宕机,会自动接管CN2未完成的事务和状态;

6、DN2、DN3节点重新提交Commit OK状态至CN3节点,并完成该两阶段提交过程。

CN3节点接管事务后,无需重复前面已经成功提交的事务状态,可以继续完成宕机的CN2节点未完成的状态来完成本次事务。整个过程对上层业务无感知,数据库集群内任意节点宕机均不会造成死锁或异常等待情况。

1.7  备份恢复

海量的业务数据不仅仅给数据处理和分析查询的性能带来挑战,对数据备份和恢复的要求也更高。因为数据量巨大,如果没有高效的备份和恢复能力,在意外、故障或灾难发生时,无法及时使数据库得到恢复,系统和业务的可用性就无法得到保障。

GBase 8c提供全面的基于集群级、库级、表级的备份和恢复功能,包括:

1.全量备份和恢复;

2.增量备份和恢复:允许基于任意一个备份点进行数据恢复。

介绍GBase 8C核心技术相关推荐

  1. GBase 8c核心技术简介

    1 自适应事务处理机制 GBase 8c采用自适应的事务处理机制来提升系统性能.对于只需要在本地节点进行处理的事务,协调器按本地事务处理流程进行处理,不需要进行两阶段提交,以提升事务处理的效率:对于需 ...

  2. 介绍 GBase 8c产品架构

      GBase 8c产品架构 GBase 8c采用shared nothing的分布式架构,计算节点和存储节点分离,节点间通过高速网络进行通信,所有节点都有主从互备,确保系统的高可用性. 由于没有资源 ...

  3. 【国产数据库】GBase学习④ - GBase 8c 介绍

    [国产数据库]GBase学习④ - GBase 8c 介绍 GBase 8c 介绍 GBase 8c 分布式架构介绍 GBase 8c 介绍 MOT是一种内存数据库存储引擎,其中所有表和索引完全驻留在 ...

  4. GBase 8c产品高级特性介绍

    多场景的高可用方案 GBase 8c采用shared noting架构和多数据副本机制,满足各种应用场景下对数据库不同的高可用需求. 同机房容灾:采用同机房主从互备方案,可以抵御硬件级别故障,不能抵御 ...

  5. GBase 8c集群管理工具介绍

    HA Center集群状态管理器:存储各个节点的高可用状态,负责在故障情况下判断集群各个节点状态,自身基于RAFT复制协议. GHA Server集群管理器:用以管理整个集群各个节点的高可用状态(主备 ...

  6. GBase 8c V3.0.0版本关键字介绍

    SQL里有保留字和非保留字之分.根据标准,保留字决不能用做其他标识符.非保留字只是在特定的环境里有特殊的含义,而在其他环境里是可以用做标识符的. 标识符的命名需要遵守如下规范: 标识符需要为字母.下划 ...

  7. GBASE 8C——SQL参考 5 全文检索

    全文检索 概述 文本搜索(~.~*.LIKE和ILIKE操作符)在对文本进行搜索操作时,缺少一些系统要求的必要属性: 及时是英文环境也没有语义支持: 由于要识别派生词并不是那么容易,因此正则表达式也不 ...

  8. 南大通用GBase 8c斩获鲲鹏应用创新大赛2022全国总决赛金奖

    2022年10月28日,鲲鹏应用创新大赛2022圆满落下帷幕.此次赛事以"数智未来,因你而来"为主题,设立21个赛区,吸引了5000+开发者参赛,倾力打造基于鲲鹏生态底座的产品和解 ...

  9. 评测回顾 | 南大通用分布式事务型数据库产品GBase 8c

    南大通用分布式事务型数据库产品GBase 8c凭借其在性能.高可用方面的卓越表现,顺利通过中国信通院第十三批分布式事务型数据库性能评测.在金融场景下核心业务的分布式事务性能.ACID能力.高可用能力等 ...

最新文章

  1. 《信息安全研究》数据安全专刊研讨会召开
  2. Android数据库专家秘籍(七)经验LitePal查询艺术
  3. 这些AI应用不简单,Keep首场技术开放日限时报名ing!
  4. 如何查看Linux是32位还是64位
  5. PHP返回数据json数据样式要求是对象{},而不是[]
  6. 轻松掌握Ajax.net系列教程二:部署Ajax Control Toolkit
  7. 查看scala变量数据类型_Scala文字,变量和数据类型| Scala编程教程
  8. 用循环输出以下数列:斐波那契数列(要输出20个数字)_Python学习之“为女朋友解释hash是个什么东西”
  9. 工欲善其事,必先利其器之sublime
  10. LeetCode2.两数相加
  11. 56-狂拍灰太狼游戏
  12. 文件过大 不能导入U盘怎么办
  13. 电信设备商进入企业网市场需适应不同渠道模式(转载)
  14. maven仓库中的.LastUpdated文件
  15. java.security.cert.CertificateException: X.509 not found,X.509证书找不到
  16. linux安装Node.js(详细)Node.js安装教程
  17. Android平台证件识别系统
  18. 如何把握个股分时图的走势,在盘中捕捉涨停板?
  19. 网络编程之Winsock2 服务提供者接口(SPI)
  20. 推荐一个免费的刷题网站

热门文章

  1. 计算机锁屏之后QQ音乐停止播放了,MAC电脑如何在息屏状态下让QQ音乐能继续播放音乐...
  2. 剑指chatGPT,马斯克:你们暂停一下,我追赶追赶
  3. VMware15Pro 安装CentOS7
  4. @click.stop作用(阻止点击事件继续传播,即阻止事件冒泡)
  5. 面试题系列:Mysql 夺命13问,你能扛到第几问?
  6. 谷歌发现育碧uPlay安全漏洞
  7. jsmap(桔色棉袄配什么颜色打底衫)
  8. 计算机中人民币符号在哪儿,钱的符号电脑怎么打(人民币符号怎么输入)
  9. C语言 - 计算n的阶乘(n!)
  10. 【技巧】如何搜索公众号内文章