关于乐观事务与悲观事务的通俗解释
近期看到有些同学,特别是在分布式数据库学习的初期过程中,对乐观事务(Optimistic Transaction)与悲观事务(Pessimistic Transaction)的概念有所疑问,或者说不能真正理解其涵义。而相关文档,大多都是技术性描述及技术流程的介绍,例如"乐观事务在事务提交时检查冲突"、"并发事务不常修改同一行时,可以跳过获取行锁的过程进而提升性能。但是并发事务频繁修改同一行(冲突)时,乐观事务的性能可能低于悲观事务。",以及两阶段提交过程的算法式描述。虽然客观上问题已经说的很清楚了,但对于那些对分布式事务没有特别深入掌握,或者没有实操编程经验的人来讲,还是很难得到正确、清晰的理解,有相当一部分技术人停留在"乐观事务比悲观事务更宽松一些"的理解层面上,甚至有相当一部分人认为乐观事务会对事务的执行结果做出一定妥协,如互联网行业中一些不需要强事务的场景一样,允许得出一个折衷的结果。
因此,本文面向初学者,特对乐观事务与悲观事务作以尽量形象易理解的解释。
首先,需要强调的是,必须清楚:无论是乐观事务,还是悲观事务,其事务的执行结果都是一样的,即一个事务中的操作,对ACID级别的要求,完全一样,无论是原子性、一致性、隔离性或者持久性,都是完全一致,不存在乐观事务就宽松一些,悲观事务就严格一些的情况。
在此基础上,再来理解两种事务类型,其实:最为直接有效准确的方法,就是纯字面理解。所谓乐观事务,就是指执行者在执行前对事务的估计"乐观"一些时选用它,悲观事务就是执行者在执行前对事务的估计"悲观"一些时选用它。怎么解释呢?当编程者用分布式数据库来处理事务需求时,需要对所面对业务的状态有一个判断:就是并发事务的写冲突是否频繁?如果判断不频繁,就是"乐观",应该用乐观事务方法;如果判断频繁,就是"悲观",应该用悲观事务方法。而无论选择"乐观"还是"悲观",都只是根据实际面对的问题选择一个尽量效率高的两阶段提交执行策略,而不是对事务结果的妥协。
这里举一个形象的例子。比如我们国家进行核酸检测,有报道说在很短时间内就检测了几千万次,其效率之高很惊人!这其实就是用到了类似乐观事务的执行策略:我们事先判断感染的人数比例是很少的,因此就采用批量检测的方案,就是把很多待检测样本混成一个批次,一个批次做一次检测,只有当检测到有感染的批次,才对那个批次进行单个的分拆检测。由于感染的人数非常小,因此大部分批次的检测都是合格的,不合格的批次只是少数,因此比全样本单个检测效率高很多。但可以想见,如果实际的情况是感染人数比例很高(悲观),那么,这种基本乐观判断的批次检测策略就明显会比单个检测更慢。在这个例子中,如果对感染人数是乐观判断,就采用"乐观"的处理方案:批量检测;如果对感染人数是悲观判断,就采用"悲观"的处理方案:单个检测。但无论什么检测方法,都不能对检测的准确度做出任务妥协:一个都不能放过!当然,这个例子并不是说乐观事务就是用批处理方法来处理事务,而是对基于乐观判断的策略选择做以形象的解释。
这就是乐观事务与悲观事务的区别,它只是两阶段提交基于待处理业务状态的不同执行策略,其选择基于执行者的判断,其效率高低基于被处理业务的实际状态(并发事务的写冲突频繁度),而其结果则是完全一样的。
江浙沪华为在长三角布局了4个研究所!何以如此钟爱长三角?华为2020年研发投入约1500亿左右,这对于大多数老百姓甚至企业来讲都是天文数字,而且即使相比华为的总收入也是一笔巨大的支出正是有了这么多的研发投入才成就了屹立不倒的华为,经受住
元宇宙中最实际受益的是哪家上市公司?GQY视讯参股Meta公司(美国顶尖的虚拟现实企业)GQY视讯以1000万美元投资全球顶级AR公司Meta2016年2月23日,公司收到Meta公司发出的178,633股B轮优先股
12月25日上市公司发布最新事项公告精选(二)1万集科技(300552。SZ)公司前装ETC已获得近60家主机厂前装定点,其中包括进口乘用车自主乘用车自主商用车及新能源汽车等多个领域头部车企,目前已经有近40家车企进入到量产供
CISA发布ApacheLog4j漏洞扫描器以筛查易受攻击的应用实例在Log4shell漏洞曝光之后,美国网络安全与基础设施局(CISA)一直在密切关注事态发展。除了敦促联邦机构在圣诞假期之前完成修补,国防部下属的该机构还发起了HackDHS漏洞赏
一万块的iPhone13ProMax,到底要不要贴膜带壳?今年iPhone13系列虽然是加量不加价,但是毕竟iPhone在手机中还是相对较贵的存在,尤其是超大杯的iPhone13ProMax,起售价都要九千了,内存大一点的版本直接上万。那
元宇宙是确有其事,还是资本炒作呢?元宇宙是确有其事,也是资本炒作这是一个确定的目的地,通过网络,再造一个虚拟的世界,人们在其中进行社交,生活,工作等等活动。但是具体是什么路径,不知道,所有人都在赌赛道。现有的猜测,
怎么给视频MV添加歌词字幕,最简单的?给视频MV添加歌词字幕最简单的方法1。不做染色字的话用ARCTIME,功能强大,使用简单,6分钟就能学会。2。做染色字的话最简单的是利用酷狗音乐MV歌词,无需学习字幕软件就能做了,
台积电的第三代半导体布局第三代半导体逐渐迎来爆发期,这就给相关代工带来了需求。虽然台积电方面认为,第三代半导体是个小市场。但这不影响台积电对碳化硅(SiC)和氮化镓(GaN)等化合物半导体市场潜力的兴趣。
折叠手机又有了新的方案三星电子最近有些媒体报告称三星可能会在未来推出双滑盖智能手机,因为根据一项专利,这是三星电子在今年五月份提交的一项关于结合了可折叠和可卷曲屏幕技术专利。三星在双滑动智能手机上的专利
华为M20PRO终于从鸿蒙换回到安卓,欣喜几个月前,我的华为Mate20pro在夜间被偷偷更换成鸿蒙系统,几个月来,一直很恼火,这就是强迫我的意志。变成鸿蒙系统后,主要不爽的是耗电明显增加不能循环滑动桌面打字有时卡死,不上
手机要买新不买旧?别再被误导,这三款旧机型性能好,性价比也高iPhone12我相信对很多朋友来说,这里选iPhone12应该没什么疑问!实话实说也没什么好分享性能配置啥的方面,不少果粉现在用的就是它,用户评价,各方面信息啥的上大家也基本上随