美文网首页
openGauss修改#事务并发控制之insert

openGauss修改#事务并发控制之insert

作者: upup果 | 来源:发表于2021-01-13 09:26 被阅读0次

insert操作在MOT中是非常重要的,在它的论文中,有大篇幅介绍了他关于插入的优化,也就是乐观插入算法,然后通过OCC进行乐观并发控制.在一个事务batch中,若所有事务都不能提交,那么并发插入的操作之间彼此都是不可见的,在进行OCC验证时,所有并发的插入操作都能成功,并不能abort那些重复的插入事务.所以需要考虑新的插入并发控制的方法,首先是要让这些没有提交的插入事务彼此可见,目前想法是维护一个全局的插入map,以sentinel作为key,事务的csn作为value.当插入行的key已经在map中时,判断自己的csn是否更大,如果更大就更新对应的value值.在提交阶段,判断自己的csn和sentinel是否相等,如果不相等,说明自己的被修改了,这个事务也会被废弃(last update win).

相关文章

  • openGauss修改#事务并发控制之insert

    insert操作在MOT中是非常重要的,在它的论文中,有大篇幅介绍了他关于插入的优化,也就是乐观插入算法,然后通过...

  • openGauss修改#事务并发控制

    结合Aria的预定表和MOT的OCC,计划事务并发控制的部分。MOT的CSN在事务commit后才会更新,我们目前...

  • openGauss源码#事务之txn_insert_action

    txn_insert_action.h InsItem类:保存了保存行插入请求的数据,-- 成员变量包括行要插入的...

  • openGauss源码#事务中的行insert

    之前介绍的insert过程,是在server端存储层执行的,还没通过事务提交,对用户不可见.今天主要看了事务插入的...

  • MySQL多版本并发控制 - MVCC

    并发控制 实现事务隔离的机制,称之为并发控制 所谓并发控制,就是保证并发执行的事务在某一隔离级别上的正确执行的机制...

  • openGauss源码#事务之upgradeInsert

    openGauss的MOT中,有一个插入的类型,叫upgrade Insert,和insert不同,简单介绍一下....

  • 乐观锁,悲观锁详解

    并发控制 并发控制:当多个连接对记录进行修改的时保证数据的一致性。 悲观锁,乐观锁 确保在多个事务同时存取数据库中...

  • 数据库事务的并发控制

    1、写在前面 1.1 为什么要并发控制 如果事务在并发执行时,来自各个并发事务的所有指令的执行控制都是由操作系统负...

  • 数据库的隔离级别

    数据库事务的并发一致性问题 1.丢失修改 事务A对数据行S进行了修改,在提交之前被事务B修改,覆盖了事务A的修改 ...

  • MySQL之并发控制和事务

    完整原文[https://yunsonbai.top/2020/09/07/mysql-bfsw/] 并发控制 无...

网友评论

      本文标题:openGauss修改#事务并发控制之insert

      本文链接:https://www.haomeiwen.com/subject/xydeaktx.html