GBase 8c核心技术简介

自适应事务处理机制

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

数据分布策略

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

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

表类型

操作类型

性能表现

适用场景

复制表

插入

较慢

字典表

小表

查询(JOIN)

快/高并发/线性提升

分布表

插入

快/高并发/线性提升

事实表

超大表

易分片的表

查询(多表单片)

快/高并发/线性提升

查询(单表多片)

较快

查询(多表多片)

避免出现

复制表-分布表混合

复制表对单一分布表

JOIN 查询

较快

主题表-事实表

字典表-事实表

小表-超大表

并行技术

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

1. Coordinator协调器制定分布式执行计划,将算子下推到数据节点,数据节点并行处理;

2. 各数据节点采用多线程架构,多个线程并行处理;

3. 采用MVCC(多版本并发控制)技术,实现读写不冲突,提升读写并行处理能力;

14 高可用

GBase 8c高可用架构是通过分布式全组件冗余实现的,即在软件层,针对分布式集群中的每个组件,均做了组件级冗余。

CN:协调器,采用完全对等的部署方式;

DN:数据节点,采用主备的高可用架构,主备之间可以配置同步或异步方式;

GTM:全局事务管理器,采用主备的高可用架构,主备之间可以配置同步或异步方式;

HA Center:集群状态管理器,采用Raft的复制协议;

GHA Server:集群管理器,采用主备的高可用架构,主备之间可以配置同步或异步方式;

分布式事务

GBase 8c通过GTM全局事务管理器和本地两阶段提交技术,提供分布式强一致事务的能力,同时,对于追求性能的新兴数据库业务,也支持可选的最终一致性事务的能力。

分布式事务原子性和两阶段提交协议

为了保证分布式事务的原子性,防止出现部分DN提交、部分DN回滚的“中间态”事务,GBase 8c采用两阶段提交(2PC)过程,实现跨节点分布式事务。

一、准备阶段(prepare phase),在这个阶段,将所有提交操作所需要使用到的信息和资源全部写入磁盘,完成持久化;

二、提交阶段(commit phase),根据之前准备好的提交信息和资源,执行提交或回滚操作。

一旦准备阶段执行成功,那么提交需要的所有信息都完成持久化落盘,即使后续提交阶段某个DN发生执行错误,该DN可以再次从持久化的提交信息中尝试提交,直至提交成功。最终该分布式事务在所有DN上的状态一定是相同的,要么所有DN都提交,要么所有DN都回滚。因此,对外来说,该事务的状态变化是原子的。

算子下推

算子下推是GBase 8c关键技术之一,可以把各种复杂的SQL进行下推执行,最小化数据移动,这是相对于基于分库分表的中间件方案的核心优势。

原位更新

l 当执行delete时,数据库将删除元组直接标记为dead,并不会真正从物理上删除;

l 当执行update时,数据库将会使用unused空间写入一个新的元组,然后将旧元组标记为dead,也不进行物理删除;

l 当表上频繁DML时,dead tuple会逐渐将空间耗尽,同时做全表扫描时产生很多额外I/O。

GBase 8c采用原位更新技术:

l 将new tuple放在原位,将dead tuple集中存放在undo;

l 去除vacuum,保证数据回收时IO稳定;

l 数据空间缩减。

PG 采用追加更新方式存储数据,也就是当修改数据时,不是在原位置修改,而是写入一个新记录,这会导致空间膨胀,也就需要定期回收过期的数据空间。这一直是 PostgreSQL 的一个弱项。

而GBase 8c实现了 Undo 机制,也就可以在原位置更新数据。这带来的好处包括:

l 高性能:对插入、更新、删除等不同负载的业务,性能以及资源使用表现相对均衡,相比Append Update引擎性能提升10%;

l 运行平稳:性能运行平稳,8小时性能滚降值从13.8%降低至2.5%;

l 高效存储:支持最大限度的原位更新, TPCC负载下平均节约空间15%~20%,UNDO空间统一分配,集中回收,复用效率更高,存储空间使用更加高效、平稳。

事务状态保持

GBase 8c具备事务状态保持能力,任意协调器节点(CN)宕机后,都不影响该节点正在进行的事务状态,事务会自动迁移到其它CN上,继续顺利运行,确保数据库处理能力不会中断。

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

全局CDC

GBase 8c支持全局CDC(Change Data Capture,变化数据捕获)特性,方便用户进行数据库的全局备份和数据抽取。CDC变化数据捕获的方式主要包括时间戳、快照、触发器和日志,其中GBase 8c 基于日志的CDC方式,对源数据库的性能不会产生影响。

10 备份恢复

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

GBase 8c集群具有全局备份和恢复的能力,支持全量备份、恢复,支持增量备份、恢复。在通用管理平台上,可以进行备份方式和备份时间频率的配置,并且能够查看全部的备份记录。提供全面的基于集群级、库级、表级的备份和恢复功能,包括:

1.全量备份和恢复;

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值