GBase 8c采用shared nothing的分布式架构,计算节点和存储节点分离,节点间通过高速网络进行通信,所有节点都有主从互备,确保系统的高可用性。
由于没有资源共享,增加节点就可以线性地扩展集群的存储能力和计算能力,满足业务规模增长的要求。
GBase 8c的节点分为三类,分别是协调器(Coordinator,CN)、数据节点(Data Node,DN)和全局事务管理器(Global Transaction Manager,GTM)。
协调器:协调器管理和客户端的连接,对客户端发来的SQL进行解析,生成执行计划,把执行计划发到相应的数据节点进行读写操作,并将结果汇总返回给客户端。对于涉及跨DN的数据写操作,协调者还负责协调所有参与者进行两阶段提交。
数据节点:数据节点是数据实际存放的节点,保存表和索引等数据库对象。数据节点接收协调器下发的读写操作,并将结果返回给协调者处理。数据节点间也可以通信,进行跨数据节点的联合查询。
全局事务管理器:全局事务管理器管理全局事务号和活动事务状态,确保系统的全局一致性。
GBase 8c采用自适应的事务处理机制来提升系统性能。对于只需要在本地节点进行处理的事务,协调器按本地事务处理流程进行处理,不需要进行两阶段提交,以提升事务处理的效率;对于需要跨节点处理的事务,协调器协调参与者进行两阶段提交,以保障全局事务的一致性。整个事务处理的流程对客户端透明。
GBase 8c支持复制表和分布表,通过数据分布策略来避免并行计算期间的资源竞争,同时提升系统性能。复制表是指每个节点上都复制一份数据,数据关联时在节点本地完成。分布表是指一份数据根据某个键值水平拆分到不同的节点上,将单个大表拆分成若干小表,提升系统读写的性能。
复制表和分布表的适用场景如下:
表类型 |
操作类型 |