GBase 8c 核心技术

发布于:2022-11-02 ⋅ 阅读:(298) ⋅ 点赞:(0)

GBase 8c 核心技术

1 自适应事务处理机制

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

2 数据分布策略

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


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

表类型 操作类型 性能表现 适用场景
复制表 插入 较慢 字典表
小表
查询(JOIN)  快/高并发/线性提升
分布表 插入 快/高并发/线性提升  事实表
表类型 操作类型 性能表现 适用场景
查询(多表单片) 快/高并发/线性提升  超大表
易分片的表
查询(单表多片) 较快
查询(多表多片) 避免出现
复制表-分布表混合  复制表对单一分布表
JOIN 查询
较快 主题表-事实表
字典表-事实表
小表-超大表

3 高效锁管理

GBase 8c 通过锁提前释放(Early lock Release,ELR)来提升系统的吞吐
量。


在数据库中,典型的事务操作流程如下:
1. 开始事务;  

2. 查找需要更新的数据并加锁,准备更新;
3. 更新数据并产生日志;
4. 日志提交;
5. 日志持久化;
6. 释放锁;
7. 事务提交并通知客户端;
事务在提交并且持久化日志的时候会带来 IO 操作,而 IO 操作通常而言比较
耗时。如果事务中此前的操作都是内存操作的话,这些 IO 的相对耗时就会显得
更大。 IO 虽然可以做成异步的,但是在 IO 结束之前锁都仍然会被持有,从而会
阻塞其他的并发事务。如果可以把第 6 步释放锁的操作提前,放到第 5 步日志持
久化之前,则可以让并发操作同一记录(试图获得锁)的事务提前开始执行,从
而可以增加系统的吞吐量。  

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到