ACID是数据库支持的基本特性:
A:原子性 = 一荣俱荣,一损俱损。支持提交+回滚。
单机:
方案:通过undo日志(逻辑反操作)实现。
分布式:
方案:2PC/3PC/Paxos。一方面多个服务相关的数据库之间需要一荣俱荣,一损俱损;另一方面每个服务的分布式数据库内部需要保证每个节点的原子性(当有分表的时候)。
C:一致性 = 从一个正确的状态到下一个正确的状态
单机:
单机就自己一个,只要流程ok,AID正常那么就会保证了C
分布式:
++多副本之间需要一致。
I:隔离性 = 事务之间并发执行互相隔离
单机:
通过锁,MVCC(undo日志)实现。
分布式:
通过TrueTIme、TSO、HLC等等(没看过,纯属摘抄)
D:持久性 = 一旦提交,就是永久。
单机:
通过redo日志(缓冲+磁盘)实现。
分布式:
应该和单机差不多意思