GBase 8c核心技术简介
1 自适应事务处理机制
GBase 8c采用自适应的事务处理机制来提升系统性能。对于只需要在本地节点进行处理的事务,协调器按本地事务处理流程进行处理,不需要进行两阶段提交,以提升事务处理的效率;对于需要跨节点处理的事务,协调器协调参与者进行两阶段提交,以保障全局事务的一致性。整个事务处理的流程对客户端透明。
2 数据分布策略
GBase 8c支持复制表和分布表,通过数据分布策略来避免并行计算期间的资源竞争,同时提升系统性能。复制表是指每个节点上都复制一份数据,数据关联时在节点本地完成。分布表是指一份数据根据某个键值水平拆分到不同的节点上,将单个大表拆分成若干小表,提升系统读写的性能。
复制表和分布表的适用场景如下:
表类型 |
操作类型 |
性能表现 |
适用场景 |
复制表 |
插入 |
较慢 |
字典表 小表 |
查询(JOIN) |
快/高并发/线性提升 |
||
分布表 |
插入 |
快/高并发/线性提升 |
事实表 超大表 易分片的表 |
查询(多表单片) |
快/高并发/线性提升 |
||
查询(单表多片) |
较快 |
||
查询(多表多片) |
慢 |
避免出现 |
|
复制表-分布表混合 |
复制表对单一分布表 JOIN 查询 |
较快 |
主题表-事实表 字典表-事实表 小表-超大表 |
3 并行技术
GBase 8c采用并行技术来提升系统的性能和吞吐量,主要特点有:
1. Coordinator协调器制定分布式执行计划,将算子下推到数据节点,数据节点并行处理;
2. 各数据节点采用多线程架构,多个线程并行处理;
3. 采用MVCC(多版本并发控制)技术,实现读写不冲突,提升读写并行处理能力;
14 高可用
GBase 8c高可用架构是通过分布式全组件冗余实现的,即在软件层,针对分布式集群中的每个组件,均做了组件级冗余。
l CN:协调器,采用完全对等的部署方式;
l DN:数据节点,采用主备的高可用架构,主备之间可以配置同步或异步方式;
l GTM:全局事务管理器,采用主备的高可用架构,主备之间可以配置同步或异步方式;
l HA Center:集群状态管理器,采用Raft的复制协议;
l GHA Server:集群管理器,采用主备的高可用架构,主备之间可以配置同步或异步方式;
5 分布式事务
GBase 8c通过GTM全局事务管理器和本地两阶段提交技术,提供分布式强一致事务的能力,同时,对于追求性能的新兴数据库业务,也支持可选的最终一致性事务的能力。
分布式事务原子性和两阶段提交协议
为了保证分布式事务的原子性,防止出现部分DN提交、部分DN回滚的“中间态”事务,GBase 8c采用两阶段提交(2PC)过程,实现跨节点分布式事务。
一、准备阶段(prepare phase),在这个阶段,将所有提交操作所需要使用到的信息和资源全部写入磁盘,完成持久化;
二、提交阶段(commit phase),根据之前准备好的提交信息和资源,执行提交或回滚操作。
一旦准备阶段执行成功,那么提交需要的所有信息都完成持久化落盘,即使后续提交阶段某个DN发生执行错误,该DN可以再次从持久化的提交信息中尝试提交,直至提交成功。最终该分布式事务在所有DN上的状态一定是相同的,要么所有DN都提交,要么所有DN都回滚。因此,对外来说,该事务的状态变化是原子的。
6 算子下推
算子下推是GBase 8c关键技术之一,可以把各种复杂的SQL进行下推执行,最小化数据移动,这是相对于基于分库分表的中间件方案的核心优势。
7 原位更新
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空间统一分配,集中回收,复用效率更高,存储空间使用更加高效、平稳。
8 事务状态保持
GBase 8c具备事务状态保持能力,任意协调器节点(CN)宕机后,都不影响该节点正在进行的事务状态,事务会自动迁移到其它CN上,继续顺利运行,确保数据库处理能力不会中断。
CN3节点接管事务后,无需重复前面已经成功提交的事务状态,而是继续完成宕机的CN2节点未完成的状态来完成本次事务。整个过程对上层业务无感知,数据库集群内任意节点宕机均不会造成死锁或异常等待情况。
9 全局CDC
GBase 8c支持全局CDC(Change Data Capture,变化数据捕获)特性,方便用户进行数据库的全局备份和数据抽取。CDC变化数据捕获的方式主要包括时间戳、快照、触发器和日志,其中GBase 8c 基于日志的CDC方式,对源数据库的性能不会产生影响。
10 备份恢复
海量的业务数据不仅仅给数据处理和分析查询的性能带来挑战,对数据备份和恢复的要求也更高。因为数据量巨大,如果没有高效的备份和恢复能力,在意外、故障或灾难发生时,无法及时使数据库得到恢复,系统和业务的可用性就无法得到保障。
GBase 8c集群具有全局备份和恢复的能力,支持全量备份、恢复,支持增量备份、恢复。在通用管理平台上,可以进行备份方式和备份时间频率的配置,并且能够查看全部的备份记录。提供全面的基于集群级、库级、表级的备份和恢复功能,包括:
1.全量备份和恢复;
2.增量备份和恢复:允许基于任意一个备份点进行数据恢复。
GBase 8c核心技术简介相关推荐
- 介绍GBase 8C核心技术
一. GBase 8c核心技术 1.1 自适应事务处理机制 GBase 8c采用自适应的事务处理机制来提升系统性能.对于只需要在本地节点进行处理的事务,协调器按本地事务处理流程进行处理,不需要进行两 ...
- GBase 8c产品简介
南大通用分布式交易型数据库管理系统,简称:GBase 8c,是一款 shared nothing架构的分布式交易型数据库集群.GBase 8c具备高性能.高可用.弹性伸缩.高安全性等特性,可以部署在物 ...
- GBase 8c 产品简介(2)
灵活的部署方式 用户可以根据自身IT基础设施建设情况,结合性能.便捷.安全等需求的综合考量,选择将GBase 8c部署在不同的环境.GBase 8c支持物理机部署.虚拟机部署.容器部署.私有云部署和公 ...
- GBase 8c产品家族及功能简介
GBase 8c的产品家族如下图所示,包括GBase 8c数据库.通用管理平台.数据迁移平台等. GBase 8c数a据库 GBase 8c数据库采用share nothing的分布式架构,计算节点和 ...
- GBase 8c 数据库产品简介
南大通用分布式交易型数据库管理系统,简称:GBase 8c,是一款 shared nothing架构的分布式交易型数据库集群.GBase 8c具备高性能.高可用.弹性伸缩.高安全性等特性,可以部署在物 ...
- 评测回顾 | 南大通用分布式事务型数据库产品GBase 8c
南大通用分布式事务型数据库产品GBase 8c凭借其在性能.高可用方面的卓越表现,顺利通过中国信通院第十三批分布式事务型数据库性能评测.在金融场景下核心业务的分布式事务性能.ACID能力.高可用能力等 ...
- 南大通用GBase 8c斩获鲲鹏应用创新大赛2022全国总决赛金奖
2022年10月28日,鲲鹏应用创新大赛2022圆满落下帷幕.此次赛事以"数智未来,因你而来"为主题,设立21个赛区,吸引了5000+开发者参赛,倾力打造基于鲲鹏生态底座的产品和解 ...
- GBase 8c亮相国内首款金融数据库性能测试工具开源发布会
2 月 17 日,由信通院主办的国内首款金融数据库性能测试工具开源发布会在线上召开.会上,定位于国家高端专业智库.产业创新发展平台的信通院宣布开源该测试工具,并详细阐述了开源此工具的背景.初心.历程以 ...
- GBase 8c 开发接口
GBase 8c 接口驱动可以有效实现对上层应用请求的负载进行均衡,应用调用接口驱动配置多个集群节点的 IP,接口驱动的内部进行连接的负载均衡. GBase 8c ODBC GBase 8c ODBC ...
最新文章
- AJPFX关于Set接口学习笔记及总结
- svn在commit后报错:is scheduled for addition, but is missing
- 函数计算支持 MySQL 实例绑定
- 网易=4 ×(新浪 + 搜狐)
- adb(Android debug bridge)命令
- java for 线程_如何在for循环中使用多线程
- mysql主从服务器配置
- 新浪微博视频批量上传大师 v3.1
- [linux]CentOS安装pre-built Nginx
- 程序员面试金典——5.6奇偶位交换
- SQLPLUS登陆命令
- linux opendir路径_Linux opendir();readdir();chdir()使用要点
- 第115章 SQL函数 REPEAT
- PV(访问量)、UV(独立访客)、IP(独立IP) (转)
- mysql 月初 月末_月初月末sql语句(日期所在月的第一天,最后一天)
- 一个具有多个组件的在线平面图设计 平面图 在线制图
- 疫情地图 | 如何制作百色新冠疫情分布行政区地图
- 关于固态硬盘的一些总结
- Z-BLOG 懒人一键采集插件,自动采集+发布+推送
- 转:CDH--彻底解决问题----时钟异常
热门文章
- csgo社区自建服务器,CSGO官方社区服黄页测试版上线
- 关于AI,值得推荐的五本好书
- 2022年最新前端零基础学习路径
- 88E1111配置及使用
- JS:酷酷的圆轨迹唤动菜单
- 奔跑吧DKY——团队Scrum冲刺阶段-Day 4
- java配置dsf,基于Spring-DM实现分布式服务框架(DSF)(二)
- r语言python0基础_万丈高楼平地起,从零开始学R语(生信分析向,R语言基础)...
- R语言 dataframe 取指定行列filter 随机取数
- 转载文章-【工具】10分钟快速搭建属于自己的文档网站-来自掘金