大规模集群在稳定性、性能、功能等方面的改进

8611build16包含了一些重大特性和改进,主要包括:

性能类:
1)海量表优化:百万级别表情况下平稳运行,解决全局锁及原有的一些性能卡顿问题;
2)批量Update模式的 并行 + pipeline 优化,综合加速比超过 10倍;
3)全文索引功能,86从这个build开始正式支持全文;
4)cache管理方面的一些优化,如超大内存下的性能改进;
5)TPC-H和TPC-DS的一些定制优化。
功能类:
1)完全支持select和delete的并发,互不阻塞;
2)group_concat支持;
3)GBK字符集的完整支持;
4)合并开发中心过去一年来的所有功能改进和bug修复。
稳定性:
目前86系列上发现并修复的所有严重bug都已合并到8611 build16分支上。

GBase 8a大规模集群实现的核心功能

核心功能:
1、实现非对称部署,gclusterd和gcware部署在同一台机器上,gnode单独部署。gclusterd和gcware节点最多支持64台,gnode节点至少支持300台,数据量大于30PB。
2、取消safe group,升级安装后,gcware自动更新内部数据结构到新集群架构的数据结构。
3、集群与gnode通信采用异步API方式,不再产生新线程访问gnode。
4、一个物理节点可支持多个主分片,数据的Hash分布和主分片(虚拟节点)对应,虚拟节点和物理节点的对应关系可调整。

GBase 8a集群的核心特性

1、支持联邦架构部署:
采用新的加载架构,支持在线扩展,采用多分片和副本灵活部署的机制提升可用性和降低木桶效应,高效的节点替换,提升了大表连接,大表分组,数据重分布的执行性能。
2、集群规模:
支持大于300节点的集群规模,采用联邦架构,分为GCluster,GCware集群和GNode集群。 GCluster,GCware集群支持64节点, GNode集群支持大于300节点的集群规模,数据量大于30PB。
3、新集群加载服务:
支持SQL接口的加载方式(同时也提供了8512系列外部工具调用方式的兼容接口),无需部署分发服务器和客户端,加载性能随数据文件服务器和GNode集群的节点线性提升。
4、在线扩展:
支持单分片按照数据重分布的方式进行扩展(重分布期间允许读和追加写)和多分片按照直接搬移分片文件的方式进行扩展(只允许读,不允许写),提供以SQL方式并支持按表进行扩展,扩展过程可监控。
5、数据复制服务:
采用新的分片数据主副本一致性方案——数据复制服务,Loader和Insert操作只写主分片,副本通过数据复制服务完成写入,可更好的保障主副本一致性,并大大提升写入性能(至少1倍以上)。
6、数据传输服务:
统一并进一步改进了节点间的数据传输服务,提高了数据传输性能(至少1倍以上),并支持传输服务数据直接落地,可用于数据复制、扩容、集群拉临时表等各种场景,大大提升了集群各类操作的性能。
7、多分片副本灵活配置:
现有版本提供单分片的数据部署,通过safegroup机制保障高可靠性,当节点出现故障时,性能下降最多1倍,新版本采用多分片的数据部署,副本不是按照safegroup的方式进行绑定,可灵活进行配置,当节点出现故障时,性能根据多分片的数量按比列下降。
8、核心算子优化:
改进了Join、Group等核心算子的实现,采用one-pass hash join,one-pass hash group算法大大提升了海量数据下的运行性能,针对大数据量的典型场景会有数倍甚至数量级的性能提升。
9、透明存储加密:
在存储层实现了透明存储加密,在对客户应用无影响的前提下,提高了数据存储安全性,且对数据库整体运行性能几乎没有负面影响(性能下降不超过5%)。
10、节点替换:
目前版本的节点替换手工操作太多,并且停机时间较长,V8.6.1.1版本可在线进行节点替换(停机半小时内)。

集群的高可用机制说明

数据高可用的保障机制包括主副本机制、gcrecover机制、failover机制等,它们共同确保GBase 8a MPP的数据高可用。

1. 主副本机制:
存储层提供的高可用保障,是数据高可用的基础。

2. gcrecover机制:
执行层提供的数据高可用保障,是一种事务补偿机制,保障数据的最终一致性;与基于事务日志的强一致系统不同,8a MPP采取的是最终一致性(2PC+事务补偿),以获得更好的执行效率。

3. failover机制:
一致性服务层(corosync)提供的数据高可用保障,属于集群层的末端保护,确保集群写操作在极端异常情况下的数据一致性;failover是一种数据高可用的保障机制,用来保障集群异常(发起节点gclusterd crash、发起节点掉电、集群整体crash等)情况下的数据一致性。