5.5 小结
通过本章的内容,你是否已经领会到“分布式事务的思想”?无论是 BASE、TCC 还是 SAGA,它们的共同特点是:将事务控制从数据库资源层转移到业务层,通过将事务拆分为多个子事务,弱化资源锁定,从而提高系统可用性。
分布式事务实现的最终一致性保证不一致是暂时的,最终会达到一致。但这是一个非常脆弱的保证,它无法告诉我们系统什么时候达到一致。在一致性达成之前,读请求可能会返回任意值或失败,这对业务工程师而言带来了相当大的挑战。
下一章笔者将介绍一种实现强一致性(也称线性化,Linearizability)的算法:
- 系统中所有操作的执行必须看起来是按一个全局的时序顺序执行,并且每个操作看起来是原子发生的;
- 顺序符合实际时间上的因果关系:操作完成的时间早于另一操作开始的时间,则它们在全局顺序中也应按相同的顺序排列。
在一个线性化系统中,一旦写操作成功提交,所有后续的读操作都会看到该写入的结果。这意味着,客户端在成功写入数据后,其他客户端的读请求可以立即获取到最新的写入值,不再会出现“最终一致性系统”中脏读或数据不一致问题。
总字数:401字