1.怎样理解事务的一致性spa
一致性就是一个这样的东西,一致性对于不一样的应用领域有着不一样的定义,由于它就是按照业务规则来讲明这个是一致的,那个是不一致的,这个角度上讲,一致性就是一个系统的状态,一个合理的状态。而合理则表如今这个状态是否符合业务规则。例如:转帐业务中合理的状态就是,转出和转入账户必须出入相等,若是不等那就意味着不合理,也就是不一致,有时候咱们很容易就能把它定为“守恒一致性”,也就是说整体来讲什么也很少,什么也很多就是一致性。而这个规则可以使用于其余的业务吗?咱们不能说不能,可是从狭义的角度来说是不能的,在存款业务中,账户是多了钱,那如何去守恒呢?或许你会说,那个东西能够和客户手中的钱两来平衡阿,对,你说的对,或许咱们从更为广义的角度上讲这个一致性就是“守恒一致性”(未证明)。可是咱们没有必要作那么宏观的定义(毕竟对咱们开发合理系统没有太大的帮助)。
因而,咱们抽象的定义,一致性,就是在任什么时候候系统中的数据是符合业务规则的。那么从一开始,业务初始化的时候保持一致性是很容易的,在业务进行下去,一个个事务完整进行(或不进行)后,一致性发生转移,但始终符合一致性,因此保持系统一致性的关键还在于事务的一致性问题,也就是说,该事务是否会形成系统不一致性状态的出现,是事务的一个属性。
从这个角度咱们发现,事务所具有的原子性与一致性是一个互补的状态,一致性保证了这个事务所包含的一系列的操做完成后系统仍然在一个一致的状态(但它不能保证事务内部不会有不一致的出现),因此原子性就须要来保证这些操做必需要所有执行或所有不执行。从这个角度上讲,一致性彷佛应该放在原子性以前,固然我不是在挑战权威,这是一个小插曲。(摘自CSDN论坛)A:原子性 C:一致性 I:隔离性 D:持久性
事务