`
lobin
  • 浏览: 425955 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

多版本并发控制协议(Multiversion concurrency control) 简介

 
阅读更多

多版本并发控制协议(Multiversion concurrency control)是一种并发控制实现,通常用于数据库以提供并发访问,以及在编程中实现事务型内存访问。

 

在并发领域,如果一个操作正在从数据库中读数据,同时另一个操作正在往数据库更新这个数据,那么读操作可能读到写了一半的数据或者不一致的数据。

 

有很多被称之为并发控制的方法来解决这个问题,最简单的方式就是采用锁的方式,所有的读操作都等待写操作完成之后才能进行读取。但这种方式很慢。

 

多版本并发控制采用的不同的方法,每个连接到数据库的用户在一个特定的时间内只能看到一个副本。在写操作修改完成时(在数据库中,事务被提交),写操作的任何修改不会被其他连接的用户看到。

 

当需要更新一个数据项,它不会用新数据覆盖旧的数据,而是标志旧的数据为已过时、再添加一个新版本。这个时候存在着多个版本,但只有一个是最新的。它允许读操作可以访问他们开始阅读时的数据,即使它被其他操作(写操作)部分地修改或删除。它也可以避免填充在内存或磁盘结构上的漏洞的开销但要求(一般是要的)系统定期扫描和删除旧的,过时的数据对象。

 

多版本并发控制提供一种用于时间一致性的检查点(check-point)视图。

 

版本并发控制使用时间戳(TS)和自增的事务ID来实现事务的一致性。通过维护多个版本的数据,多版本并发控制保证一个事务(T)在读取数据(P)时不必等待。每个版本的数据P包括一个读时间戳(RTS)和一个写时间戳(WTS),使得一个特定的事务Ti读取最新版本的数据,也就是在这个事务读之前的版本-读时间戳RTS(Ti)

 

 

如果事务Ti想要写数据P,并且同时有其他事务Tk在写这个数据,要使得这个写操作(WTS)成功,读时间戳RTS(Ti) 必须是RTS(Tk)之前的那个时间戳,例如,RTS(Ti) < RTS(Tk)。如果有其他事务(更加新的一个读时间戳RTS转换成数字,这个数字更大)更新了这个数据,那么这个写操作将失败。

分享到:
评论

相关推荐

    Concurrency Control and Recovery in Database Systems

    多版本并发控制(Multiversion Concurrency Control, MVCC) MVCC允许事务看到不同的数据版本,从而减少锁的使用,提高并发性能。每个数据项可以有多个版本,每个事务可以看到它开始时的快照,这样就减少了锁的...

    On Optimistic Methods for Concurrency Control

    3. **多版本并发控制(Multiversion Concurrency Control, MVCC)**:每个数据项可以存储多个版本,每个版本都有关联的时间戳或版本号。事务读取数据时,可以选择与其开始时间最接近的版本。这样即使在事务执行过程...

    Concurrency Control and Recovery in Database Systems全本.pdf

    4. **多版本并发控制(Multiversion Concurrency Control, MVCC)**:每个事务看到的是数据的一个特定版本,而不是单一的数据状态。这样可以减少锁定带来的性能影响。 5. **冲突检测和恢复(Conflict Detection and...

    Transactions: Concurrency Control and Recovery

    - **实现方法**:常见的并发控制技术包括锁机制(Lock-based)、乐观并发控制(Optimistic Concurrency Control, OCC)、多版本并发控制(Multiversion Concurrency Control, MVCC)等。 - **恢复**: - **定义**...

    java面试题包含了,快手,蚂蚁金服,美团,拼多多,腾讯等 大厂面试经验

    MVCC:多版本控制(Multiversion Concurrency Control): 指的是一种提高并发的技术。最早 的数据库系统,只有读读之间可以并发,读写,写读,写写都要阻塞。引入多版本之后, 只有写写之间相互阻塞,其他三种操作都...

    并发控制课后答案-简述并发控制.doc

    7. **并发控制策略**:除了封锁外,还有其他并发控制方法,如时间戳排序(Timestamp Ordering)、多版本并发控制(Multiversion Concurrency Control, MVCC)等。时间戳方法允许事务根据其启动时间的先后顺序进行...

    数据库的并发控制技术分析.pdf

    另一种并发控制技术是多版本并发控制(Multiversion Concurrency Control, MVCC),如PostgreSQL和MySQL的InnoDB存储引擎。MVCC允许多个事务并行读取数据,每个事务都有自己的数据视图,即快照,这使得事务可以在不...

    5版PPT第11章.ppt

    除了封锁,还有其他并发控制机制,如乐观并发控制(Optimistic Concurrency Control)、多版本并发控制(Multiversion Concurrency Control,如MVCC),它们在不同场景下有不同的优缺点。 **并发调度的可串行性**是...

    数据库原理chp11.ppt

    此外,还有其他并发控制方法,如乐观并发控制(Optimistic Concurrency Control)和多版本并发控制(Multiversion Concurrency Control),它们在不同的场景下有不同的优缺点,可以根据系统需求和性能考虑来选择合适...

    Oracle9i的数据库管理, Oracle9i数据库对象的管理,Oracle9i数据库的安全性,Oracle9i数据库的完整性和并发控制等

    Oracle9i使用了多版本并发控制(Multiversion Concurrency Control, MVCC),通过读写一致性(Read-Write Consistency)和快照隔离(Snapshot Isolation)确保用户在执行事务时不会看到其他事务的中间状态。...

    计算机软件-商业源码-261 提示数据库正在使用.zip

    常见的并发控制机制包括锁定、乐观并发控制(Optimistic Concurrency Control)和多版本并发控制(Multiversion Concurrency Control, MVCC)。 2. **锁定**:数据库通过锁定数据记录或整个表来防止并发冲突。有...

    关系型数据库的并发操作

    为了实现隔离性,数据库系统使用了多种并发控制机制,如锁定(Locking)、多版本并发控制(Multiversion Concurrency Control, MVCC)和乐观锁等。锁定机制分为共享锁(读锁)和排他锁(写锁),根据不同的加锁策略...

    数据处理:概念与技术 中文版

    此外,可能还涉及了并发控制机制,如锁定(Locking)、多版本并发控制(Multiversion Concurrency Control,MVCC)和死锁检测,这些都是解决并发问题的关键技术。 在分布式系统和客户-服务器架构中,数据处理的复杂...

    自考数据库系统原理4375音频同步教程 6.3数据库的并发控制

    3. **多版本并发控制(MVCC, Multiversion Concurrency Control)**:每个事务看到的是一个一致性视图,即事务开始时的数据库状态,不受其他事务的影响。例如,InnoDB存储引擎在MySQL中使用的就是MVCC。 4. **乐观...

    sqlserver并发连接测试

    3. **并发控制策略**:SQL Server采用两种并发控制策略:Snapshot Isolation 和 Multiversion Concurrency Control(多版本并发控制)。多版本并发控制允许旧版本的数据在事务结束前保持存在,这样并发事务就可以...

    Oracle锁 图例

    Oracle采用多版本并发控制(Multiversion Concurrency Control, MVCC)机制,每个事务看到的数据是基于事务开始时的一致性视图。当事务尝试访问被锁定的资源时,会根据锁的类型进行等待或者回滚。死锁检测机制会在...

    Oracle Locking Survival Guide

    这两种锁定模式通过多版本并发控制(Multiversion Concurrency Control, MVCC)实现,MVCC确保了在读取数据时不会被正在进行的写操作阻塞,从而提高了系统的并发性能。 外键索引在锁定中扮演着重要角色,因为它们...

    oracle核心技术读书笔记一附件1

    Oracle采用多版本并发控制(Multiversion Concurrency Control,MVCC)机制来实现高并发。在MVCC中,每个事务看到的数据是该事务开始时的一致性视图,即使其他事务在此期间对数据进行了修改。这种方式避免了读写冲突...

    SQL Server和Oracel中的锁和死锁

    Oracle的多版本并发控制(Multiversion Concurrency Control, MVCC)允许事务读取数据的旧版本,从而避免锁定当前事务正在修改的数据。 总结来说,SQL Server和Oracle在处理锁和死锁方面有各自的特点和策略。理解并...

    Oracle Concepts (10g R2) 双语版_V11

    5. **并发控制**:Oracle使用多版本并发控制(Multiversion Concurrency Control, MVCC),允许多个用户同时访问数据库而不冲突。 6. **备份与恢复**:Oracle提供多种备份策略,如RMAN(恢复管理器)和物理/逻辑...

Global site tag (gtag.js) - Google Analytics