分布式系统原理Day08-多版本并发控制技术MVCC

多版本并发控制技术MVCC

基本概念

  • MVCC: Multi-version Concurrent Control
    • 多版本并发控制技术
    • MVCC技术最初也是在数据库系统中被提出
    • 这种思想并不局限于单机分布式系统,在分布式系统中同样有效

基本思想

  • MVCC就是多个不同版本的数据实现并发控制的技术
  • MVCC的基本思想:
    • 为每次事务生成一个新版本的数据
    • 在读数据时选择不同的版本的数据即可以实现对事务结果的完整性读取

基本使用

  • MVCC的基本使用:
    • 每个事务都是基于一个已生效的基础版本进行更新
    • 事务可以并行进行,从而可以产生一种图状结构
      在这里插入图片描述
  • 基础的数据版本为1, 同时产生了两个事务: 事务A与事务B
    • 这些事务都各自对数据进行了一些本地修改,这些事务只有事务自己可见,不影响真正的数据
    • 之后事务A首先提交,生成数据版本2
    • 基于数据版本2, 又发起了事务C, 事务C继续提交,生成数据版本3
    • 最后事务B提交,此时事务B的结果需要与事务C合并
    • 如果数据没有冲突,即事务B没有修改事务A与事务C修改过的变量
    • 那么事务B可以提交,否则事务B提交失败

SVN

  • MVCC的流程过程非常类似SVN等版本控制系统的流程.或者说 ,SVN等版本控制系统就是使用MVCC思想
  • 事务在基于基础数据版本做本地修改时,为了不影响真正的数据,通常有两种做法:
    • 将基础数据版本中的数据完全拷贝出来再修改 .SVN就是使用了这种方法 .SVN check out就是拷贝的过程
    • 或者每个事务中只记录更新操作,而不记录完整的数据,读取数据时再将更新操作应用到基础版本的数据从而计算出结果,这个过程类似于SVN的增量提交

猜你喜欢

转载自blog.csdn.net/JewaveOxford/article/details/107672097