数据库事务vs分布式事务

叁叁肆2018-10-25 10:56

此文已由作者邢军授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验。


本文在参考的基础上,整理了我自己对数据库事务到分布式事务的理解过程,希望能够理顺其中一些重要的概念和原理,以及它们之间的关系。水平有限,如果存在谬误,希望读者可以指正


1. 数据库事务


所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。而理解数据库事务的核心,是理解其ACID特性,下图列述了ACID特性的概念,理解和其主要实现原理基础



总结: 之所以把事务的一致性标识为不同的色块,是因为一致性在四个特性中处于一个核心地位,其余三个特性,分别都是从理论和技术上保证其最终一致性的达成,即事务的实质可以理解为(在并发,异常条件下)一系列数据库操作前后的数据一致性


2. 分布式事务


在分布式系统中,由于数据和数据操作可能分布在不同的节点、子系统中,基于CAP定理的约束性,ACID的特性很难保持。因此针对分布式系统和分布式事务的解决方案,出现了一些折衷的模型,以及折衷的解决方案和算法。从CAP定理开始,给出了分布式系统中折衷的模型,分布式环境下一致性的分类和一致性解决方案。



总结: 可以看到,在不考虑AP模型(部分nosql的存储方案会采用)的前提下,一致性仍然是分布式系统关注的核心,无论强一致性解决方案,还是最终一致性解决方案,都是分布式系统讨论的重点;同时由于分布式系统本身的特性,分区容错性通常也不会被抛弃。因此,最终一致性和部分可用性取折衷的BASE理论对大量的分布式系统设计有重要指导意义


网易云免费体验馆,0成本体验20+款云产品! 

更多网易技术、产品、运营经验分享请点击




相关文章:
【推荐】 SQLite FTS3/FTS4与一些使用心得
【推荐】 一个只有十行的精简MVVM框架(上篇)