GBase 8c 架构
图片
GBase 8c 采用 shared nothing 的分布式架构,计算节点和存储节点分离,节点间通过高速网络进行通信,所有节点都有主从互备,确保系统的高可用性。计算层:事务处理
图片
(1) 事务管理器: 事务系统的中枢,它的实现是一个有限循环状态机,通过接受外部系统的命令并根据当前事务所处的状态决定事务的下一步执行过程。
(2) 日志管理器: 用来记录事务执行的状态以及数据变化的过程,包括事务提交日志(CLOG)、事务提交序列日志(CSNLOG)以及事务日志(XLOG)。其中CLOG日志只用来记录事务执行的结果状态,CSNLOG记录日志提交的顺序,用于可见性判断;XLOG是数据的redo日志,用于恢复及持久化。
(3) 线程管理机制: 通过一片内存区域记录所有线程的事务信息,任何一个线程可以通过访问该区域获取其他事务的状态信息。(4) MVCC机制: GBase8c 系统中,事务执行读流程结合各事务提交的CSN序列号,采用了多版本并发控制机制,实现了元组的读和写互不阻塞。
(5) 锁管理器: 实现系统的写并发控制,通过锁机制来保证事务写流程的隔离性。

事务机制
显示事务: 用户在所执行的一条或多条 SQL后,显式添加了开启事务START TRANSACTION 语句和提交事务 COMMIT 语句。
隐式事务: 用户在所执行的一条或多条 SQL 语句的前后,没有显式添加开启事务和提交事务的语句。在这种情况下,每一条 SQL 语句在开始执行时,GBase 8c 内部都会为其开启一个事务,并且在该语句执行完成之后,自动提交该事务。对于CN 来说,使用显式事务还是隐式事务,完全取决于用户输入的SQL语句;对于 DN 来说,只有当 SQL为隐式只读事务时,才会使用隐式事务,当 SQL为显式事务或者隐式写事务时,都会使用显式事务。

单机事务(单分片事务): CN节点接收到上层应用的事务请求,发现数据分布在本地单个高可用组(HG)上,此时CN直接向该HG请求数据并返回。这种方式不走两阶段提交过程,处理性能非常高。
分布式事务: GBase 8c的跨节点的分布式事务是通过GTM的严格的两阶段提交的跨节点的分布式事务。在数据提交的时候,CN先向每个DN节点发送prepare状态,DN节点返回prepare ok状态后,CN再发送commit状态,最后DN节点返回commit ok状态后才算一次提交完成。


读研的抽屉
1 声望0 粉丝