MVCC相比2PC是一种更简单有效的分布式事务解决方案。

假设一种场景,一个分布式事务在A,B两个节点更新数据,要么同时成功,要么同时失败。

MVCC 中,为每个事务分配一个递增的事务编号,有一个中心的元数据管理单元,记录最新的已提交的事务编号。

假设A,B节点状态如下:

节点     操作                             事务序号

A         set var1 = 1                 1

A         set var2 = 2                 1

A         set var1 = var1 + 2     2

B         set var3 = 2                 1

B         set var4 = 1                 2

1. 若此时全局元信息中的最大的生效事务序号为 1,则在节点 A 上:var1=1,var2=2,在节点 B上:var3 =2;

2. 若此时全局元信息中的最大的生效事务序号为 2,则在节点 A 上:var1= 1+2=3,var2=2,在节点 B 上:var3=2,var4=1;

从这个例子可以看出,每个节点上保存了对数据的更新操作,也就是数据的增量(delta),从而可以在读取数据时将应用不同的更新操作得出不同的数据版本。上例中,计算编号小于等于 1 的事务操作得出的数据即为版本号为 1 的数据,计算编号小于等于 2 的事务操作得出的数据即为版本号为 2 的数据。在新事务执行过程中,虽然更新操作已经逐步记录到各个节点,但只要全局元信息不修改,始终不会读到没有生效的事务数据,从而实现了全局一致性。

转载于:https://www.cnblogs.com/gm-201705/p/10765527.html

MVCC(Multi-version Cocurrent Control)相关推荐

  1. MPCC(Model Predictive Contouring Control)—自动驾驶中的轨迹控制算法

    MPCC(Model Predictive Contouring Control)-自动驾驶中的轨迹控制算法 引言 在自动驾驶技术快速发展的背景下,轨迹控制算法成为实现高性能自动驾驶的关键技术之一.而 ...

  2. 模型预测控制(MPC,Model Predictive Control)

    发展历史 20世纪70年代后期,一类新型的计算机控制算法出现在美法等国的工业过程领域,如动态矩阵控制(DMC,Dynamic Matrix Control).模型算法控制(MAC,Model Algo ...

  3. 增强学习(Reinforcement Learning and Control)

    在之前的讨论中,我们总是给定一个样本x,然后给或者不给label y.之后对样本进行拟合.分类.聚类或者降维等操作.然而对于很多序列决策或者控制问题,很难有这么规则的样本.比如,四足机器人的控制问题, ...

  4. 1.4、MPLS(Multi Protocol Label Switching)多协议标签交换基础之LSP(Label Switching Path)简介

    LSP(LaoShePi,老色批)是构成MPLS技术的重要部分[大雾...] 目录 LSP(Label Switching Path)概念 LSP(Label Switching Path)建立 静态 ...

  5. Wamp安装后环境搭建(WampServer Version 2.2)

    在WindowXP系统下的配置: 下载文件后覆盖: 分别在 C:\wamp\bin\apache\apache2.2.22\conf\httpd.conf C:\wamp\bin\apache\apa ...

  6. [4G/5G/6G专题基础-154]: 5G无线准入控制RAC(Radio Admission Control)+ 其他准入控制

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  7. 【DB宝14】在Docker中只需2步即可拥有Oracle 11g企业版环境(11.2.0.4)

    文章目录 一.从Docker Hub或阿里云镜像下载小麦苗上传的镜像文件 二.创建容器并启动数据库 三.尽情使用吧 3.1 数据库使用 3.2 创建数据库(可选) 3.3 EMDC的使用 3.4 使用 ...

  8. 计算机网络知识汇总(十万字超详细)

    文章目录 1 计算机网络概述 1.1 概念.组成.功能和分类 1.2 标准化工作及相关组织 1.3 速率相关的性能指标 1.4 时延.时延带宽积.往返时间RTT.利用率 1.5 分层结构.接口.协议. ...

  9. 装VMware后在主机找不到VMnet1和VMnet8问题(巨详细已解决)

    安装完VMware后没有VMnet1和VMnet8 在主机里面找不到VMnet1和VMnet8,在网上找了许多办法,该开的服务也开了,发现还是不行,索性,重新装一下 装之前觉得麻烦,一直想找个办法,因 ...

最新文章

  1. 【C语言运算符大全】快速学会C语言运算符
  2. OpenKruise v0.10.0 新特性 WorkloadSpread 解读
  3. go切片的定义及make使用
  4. python中dom模块_Python中使用dom模块生成XML文件示例
  5. 手机调试python的软件_Appium+Python(ios真机移动端App H5混合自动化实战测试)
  6. python中shutil模块_Python中shutil模块的学习笔记教程
  7. 今晚8点不见不散!余承东Vlog如此夸赞华为Mate30系列新机
  8. android 加载json停顿,java – 在Android上解析~1 MB JSON非常慢
  9. 解决ubuntu下arduino IDE的Serial Port无法选择问题
  10. [代码审计]phpshe开源商城后台两处任意文件删除至getshell
  11. 【OpenCV4】fatal error: opencv2/core.hpp: No such file or directory 解决方法
  12. 计算机里另存桌面不见了,保存文件时桌面选项消失不见怎么办
  13. 阿里云国际版两个ECS云服务器之间的迁移教程
  14. C语言中-条件编译#ifdef的妙用详解_透彻
  15. Hashtable用法
  16. Hung-Yi Lee homework[7]: Network Compression
  17. 使用WinDbg调试SQL Server——入门
  18. web标准只包括html,HTML——01-前言WEB标准
  19. Jenkins 自动化部署入门详细教程(记录)
  20. Qt开发之路——Sleep函数

热门文章

  1. 【晒出你的第83行代码】阿里研究员福贝,用一个小演示程序来解释一下 C++11/14 里的 closure 是可以多么的“爽”...
  2. 使用ajax方法实现form表单的提交
  3. 推出了底层代码chatbot开发工具,Rulai获650万美元融资
  4. 禁止UDP端口引起DNS错误导致邮局无法外发的故障
  5. iOS 分类思想(2)
  6. Linux中设置ip
  7. Ajax.NET 作者发布支持Visual Web Developer 2005的模板安装
  8. student consulting system
  9. 永远不要让女生帮你寄领带
  10. 看bilibili的财经博主,分析博主的频道