ACID( 原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability )
目前关系型分布式数据库最基本的设计要求,与集中式数据库ACID特性相比主要是一致性方面的区别,分布式数据库大都是最终一致性,集中式数据库是强一致的。
分布式数据库一致性主要是通过内部统一时钟加二阶段提交机制保障,可以做到强一直性的,但是会有提交延时成本,所以单个简单的SQL操作,分布式数据库会比单机数据库性能表现差异。
收起分布式构架下实现是有难点的,但是是可以实现的,主要要点
单机数据库
原子性:多条记录多次操作同时成功或失败。
一致性:不影响数据的规则一致性,事务完成后数据仍然处于规则一致性状态
隔离性:不同连接不会相互访问到未提交事务的数据。
持久性:事务提交前必须先将日志落盘,机器重启后不丢失数据。
分布式数据库
原子性:多个数据分片上的多次操作要么一起成功,要么一起失败。
一致性:不局限于本地事务规则一致性,从用户角度未来开始的任何事务可以看到过去发生的事务的操作结果
隔离性:多个计算节点上的不同连接不会相互访问到在多个数据分片内未提交事务的数据。
持久性:事务提交前必须将日志在分片主、从节点都得到复制,主节点故障时从节点上仍能找回数据。