GBase 8c
其他
文章

GBase 8c分布式事务

发表于2023-12-07 09:40:3325次浏览1个评论

GBase 8c通过GTM全局事务管理器和本地两阶段提交技术,提供分布式强一致事务的能力,同时,对于追求性能的新兴数据库业务,也支持可选的最终一致性事务的能力。

分布式事务原子性和两阶段提交协议

为了保证分布式事务的原子性,防止出现部分DN提交、部分DN回滚的“中间态”事务,GBase 8c采用两阶段提交(2PC)过程,实现跨节点分布式事务。

一、准备阶段(prepare phase),在这个阶段,将所有提交操作所需要使用到的信息和资源全部写入磁盘,完成持久化;

二、提交阶段(commit prepared phase),根据之前准备好的提交信息和资源,执行提交或回滚操作。

一旦准备阶段执行成功,那么提交需要的所有信息都完成持久化下盘,即使后续提交阶段某个DN发生执行错误,该DN可以再次从持久化的提交信息中尝试提交,直至提交成功。最终该分布式事务在所有DN上的状态一定是相同的,要么所有DN都提交,要么所有DN都回滚。因此,对外来说,该事务的状态变化是原子的。

分布式事务一致性和全局事务管理

为了防止瞬时不一致现象,支持分布式事务的强一致性,我们需要全局范围内的事务号和快照,以保证全局MVCC和快照的一致性。在GBase 8c中,GTM负责提供和分发全局的事务号和快照。对于任何一个读事务,其都需要到GTM上获取全局快照;对于任何一个写事务,其都需要到GTM上获取全局事务号。

评论

登录后才可以发表评论
崔哥发表于 9个月前
虚心向前辈学习