GBase 8c具备事务状态保持能力,任意协调器节点(CN)宕机后,都不影响该节点正在进行的事务状态,事务可以在另一接管CN节点上继续顺利运行,从而保证数据库处理能力。
如上图所示两阶段提交事务处理过程中:
1、 CN2节点正常下发事务Prepare状态;
2、 三个DN节点正常返回事务Prepare OK状态;
3、 CN2节点正常下发事务Commit状态;
4、 DN1节点返回Commit OK状态且DN2、DN3还未完成Commit OK状态提交时,CN2节点宕机;
5、 此时CN3节点检测到CN2节点宕机,会自动接管CN2未完成的事务和状态;
6、 DN2、DN3节点重新提交Commit OK状态至CN3节点,并完成该两阶段提交过程。
CN3节点接管事务后,无需重复前面已经成功提交的事务状态,可以继续完成宕机的CN2节点未完成的状态来完成本次事务。整个过程对上层业务无感知,数据库集群内任意节点宕机均不会造成死锁或异常等待情况。