当前位置:首页 > 思想汇报 > [达梦DM7事务系统让用户不再被并发效率困扰] 请简述事务的并发执行的两个好处
 

[达梦DM7事务系统让用户不再被并发效率困扰] 请简述事务的并发执行的两个好处

发布时间:2018-12-29 04:18:50 影响了:

  达梦DM7多版本事务系统能够提供有效的并发控制策略,协调同一时段内多个事务的并发操作,允许多个用户同时访问和修改数据,并保证数据的一致性和完整性。   四大优势提高并行效率
  DM7具有四大优势,能够大幅度提升并行效率。
  第一,简化的隔离级。为了适应多版本并发的体系结构,DM7支持读提交隔离级和串行化隔离级,读未提交升级为读提交隔离级,可重复读升级为更严格的串行化隔离级。DM7的默认隔离级别是读提交隔离级。
  第二,优化的封锁机制。为了减少锁的数量,降低事务系统的开销,DM7采用了多个连续行共用一把锁的机制,实现并发度与系统资源之间的平衡,并且在多版本机制中,读操作不需要上锁,进一步减少了锁的数量,减少了系统资源的占用。同时,DM7取消了范围锁和锁升级机制,避免插入过程中将行锁升级为表锁后导致并发度大大降低的情况。DM7还实现了字典锁与表锁的统一,简化了封锁系统逻辑,提高了封锁效率。
  第三,改进的死锁检测机制。DM7通过死锁检测来避免发生死锁,为了适应封锁机制的改变,死锁检测机制做了重大调整,检测效率得到大幅提高。
  第四,原生的多版本支持。多版本并发控制的优点在于,读操作不上锁,写操作上写锁,读、写操作不会相互阻塞,可大大提升数据库的并发度,有效减少发生死锁的概率。DM6在原有回滚记录基础上,增加了一套辅助机制,以维护历史记录信息。以这种方式实现的多版本支持,性能和并发效率无法达到预期目标,并且在表现形式上,与主流数据库管理系统存在较大差异。DM7重写了事务系统,重构物理记录和回滚记录格式,实现了对原生的多版本支持。这不但在表现形式上与主流数据库管理系统保持一致,性能和并发效率也得到了极大提升。
  灵活的实现机制
  DM7支持读提交和串行化两种隔离级,读不提交升级为读提交,可重复读升级为更加严格的串行化隔离级。值得一提的是,DM7基于物理记录和回滚记录,以及回滚段实现多版本访问控制。数据页中只保留物理记录的最新版本,通过回滚段中保存的回滚记录,还原特定版本的物理记录。
  物理记录格式改进:为了适应多版本机制,高效地获取历史记录,DM7修改了物理记录格式,在物理记录上增加了两个字段:RTID和RPTR。RTID保存最后修改记录的事务号,RPTR保存回滚段中上一个版本回滚记录的物理地址。插入、删除和更新物理记录时,RPTR指向操作生成的回滚记录的物理地址。
  回滚记录格式改进:回滚记录与物理记录一样,增加了两个字段:RTID和RPTR。RTID保存回滚记录对应的事务号,RPTR保存回滚段中上一个版本回滚记录的物理地址。插入物理记录时,由于没有更老的版本数据,回滚记录的RPTR值为NULL;更新和删除物理记录时,RPTR指向原始物理记录的RPTR,新物理记录的RPTR指向当前回滚记录的物理地址。
  回滚段自动清理:由于需要根据回滚记录回溯、还原物理记录的历史版本信息,因此不能在事务提交时立即清除当前事务产生的回滚记录。但是,如果不及时清理回滚段,可能造成回滚段空间的不断膨胀,占用大量磁盘空间。DM7提供了自动清理、回收回滚段空间的机制。系统定时(缺省是每间隔1秒)扫描回滚段,根据回滚记录的RTID,判断是否需要保留回滚记录,清除那些对所有活动事务可见的回滚记录空间。
  事务可见性原则:多版本控制的关键是可见性判断,找到对当前事务可见的特定版本数据。DM7通过活动事务表,确定事务的可见性。根据事务隔离级的不同,在事务启动时(串行化)或语句执行时(读提交),收集这一时刻所有活动事务,并记录系统中即将产生的事务号NEXT_TID。
  历史数据获取:当物理记录对当前事务不可见时,根据物理记录和回滚记录的RPTR指针,向前回溯一个历史版本记录,通过此历史版本记录的RTID字段,依据事务可见性原则判断此版本的记录对当前事务是否可见。如可见即获取到了满足当前事务的历史版本数据,如不可见则根据RPTR指针继续向前回溯。如果一直不能找到对当前事务的可见版本,则此记录将不会添加到查询结果集中。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3