分布式数据库一般都是采用多数派协议保证数据的一致性,每家厂商可能对两阶段提交的优化不太一样。
例如OceanBase数据库,它有几个机制保证了数据的一致性及性能。1是Paxos多数派协议,保证各个副本间数据的一致性;2是每个租户有独立的GTS,保证读取数据的一致性;3是OB对两阶段提交协议做了优化,保证两阶段提交的性能优于传统的两阶段提交;4是OBproxy在分发SQL到相应observer的时候,也做了相关的优化,尽量发到表的主副本所在的机器上,减少分布式执行计划的次数。我所了解的OB一般这几种方法来保证一致性和分布式执行计划的性能。