MVCC(Multi-version Cocurrent Control)
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)相关推荐
- MPCC(Model Predictive Contouring Control)—自动驾驶中的轨迹控制算法
MPCC(Model Predictive Contouring Control)-自动驾驶中的轨迹控制算法 引言 在自动驾驶技术快速发展的背景下,轨迹控制算法成为实现高性能自动驾驶的关键技术之一.而 ...
- 模型预测控制(MPC,Model Predictive Control)
发展历史 20世纪70年代后期,一类新型的计算机控制算法出现在美法等国的工业过程领域,如动态矩阵控制(DMC,Dynamic Matrix Control).模型算法控制(MAC,Model Algo ...
- 增强学习(Reinforcement Learning and Control)
在之前的讨论中,我们总是给定一个样本x,然后给或者不给label y.之后对样本进行拟合.分类.聚类或者降维等操作.然而对于很多序列决策或者控制问题,很难有这么规则的样本.比如,四足机器人的控制问题, ...
- 1.4、MPLS(Multi Protocol Label Switching)多协议标签交换基础之LSP(Label Switching Path)简介
LSP(LaoShePi,老色批)是构成MPLS技术的重要部分[大雾...] 目录 LSP(Label Switching Path)概念 LSP(Label Switching Path)建立 静态 ...
- Wamp安装后环境搭建(WampServer Version 2.2)
在WindowXP系统下的配置: 下载文件后覆盖: 分别在 C:\wamp\bin\apache\apache2.2.22\conf\httpd.conf C:\wamp\bin\apache\apa ...
- [4G/5G/6G专题基础-154]: 5G无线准入控制RAC(Radio Admission Control)+ 其他准入控制
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...
- 【DB宝14】在Docker中只需2步即可拥有Oracle 11g企业版环境(11.2.0.4)
文章目录 一.从Docker Hub或阿里云镜像下载小麦苗上传的镜像文件 二.创建容器并启动数据库 三.尽情使用吧 3.1 数据库使用 3.2 创建数据库(可选) 3.3 EMDC的使用 3.4 使用 ...
- 计算机网络知识汇总(十万字超详细)
文章目录 1 计算机网络概述 1.1 概念.组成.功能和分类 1.2 标准化工作及相关组织 1.3 速率相关的性能指标 1.4 时延.时延带宽积.往返时间RTT.利用率 1.5 分层结构.接口.协议. ...
- 装VMware后在主机找不到VMnet1和VMnet8问题(巨详细已解决)
安装完VMware后没有VMnet1和VMnet8 在主机里面找不到VMnet1和VMnet8,在网上找了许多办法,该开的服务也开了,发现还是不行,索性,重新装一下 装之前觉得麻烦,一直想找个办法,因 ...
最新文章
- 【C语言运算符大全】快速学会C语言运算符
- OpenKruise v0.10.0 新特性 WorkloadSpread 解读
- go切片的定义及make使用
- python中dom模块_Python中使用dom模块生成XML文件示例
- 手机调试python的软件_Appium+Python(ios真机移动端App H5混合自动化实战测试)
- python中shutil模块_Python中shutil模块的学习笔记教程
- 今晚8点不见不散!余承东Vlog如此夸赞华为Mate30系列新机
- android 加载json停顿,java – 在Android上解析~1 MB JSON非常慢
- 解决ubuntu下arduino IDE的Serial Port无法选择问题
- [代码审计]phpshe开源商城后台两处任意文件删除至getshell
- 【OpenCV4】fatal error: opencv2/core.hpp: No such file or directory 解决方法
- 计算机里另存桌面不见了,保存文件时桌面选项消失不见怎么办
- 阿里云国际版两个ECS云服务器之间的迁移教程
- C语言中-条件编译#ifdef的妙用详解_透彻
- Hashtable用法
- Hung-Yi Lee homework[7]: Network Compression
- 使用WinDbg调试SQL Server——入门
- web标准只包括html,HTML——01-前言WEB标准
- Jenkins 自动化部署入门详细教程(记录)
- Qt开发之路——Sleep函数
热门文章
- 【晒出你的第83行代码】阿里研究员福贝,用一个小演示程序来解释一下 C++11/14 里的 closure 是可以多么的“爽”...
- 使用ajax方法实现form表单的提交
- 推出了底层代码chatbot开发工具,Rulai获650万美元融资
- 禁止UDP端口引起DNS错误导致邮局无法外发的故障
- iOS 分类思想(2)
- Linux中设置ip
- Ajax.NET 作者发布支持Visual Web Developer 2005的模板安装
- student consulting system
- 永远不要让女生帮你寄领带
- 看bilibili的财经博主,分析博主的频道