感谢答复,两阶段提交的commit ts我相信能够保持一致,因为申请到的tso都会给到分布式交易的多个节点,但是不同节点执行的时候并不能保证同一时间完成,因为不可能所有节点都去做消息沟通说我们一起完成(硬件延迟、网络延迟等情况),所以记录到不同的binlog中的子交易完成的时间一定会不同,我的疑问刚好在这里:如果ABC三个节点完成的时候不同,我给定一个时间去做回滚,ABC如果接受我的时间,而不去处理这个分布式交易恢复的一致性,就会出现丢失子交易的情况。而如果要去记录这个分布式交易,就需要保存所有的分布式交易所涉及到的节点。
这个问题不是生产的时候会出现的问题,而是在做PiTR的时候会出现的问题。需要了解更多一点PiTR的实现细节,关于分布式交易一致性的问题。