Oralce和Innodb MVCC关键机制

原创 2016年08月31日 22:14:07

cleanout:

  • 设置csc
  • 释放空间

csc:进行Cleanout时的snapSCN。理解CSC的含义对理解整个多版本协议至关重要:

  1. 当前页面上所有的活跃ITS(包括FastCleanout在内)的提交SCN一定大于CSC;
  2. 当前页面上所有大于CSC的事务所做的更新都仍然处于“活跃的”状态,
    • 项目录未被重用
    • 空间未被回收
  3. 当前页面上所有小于CSC的事务所做的更新都已丢失。

  • its被重用后的可见性判断
  • 消耗空间时,判断空闲空间是否可用,7K/8K问题
获取CR页面时:
  • 只读事务只要CR_SCN满足条件
  • 如果是之前的CR页面有当前事务构造,则判断ula是否满足要求,满足则可使用,否则无法使用。本事务的更新已经被回滚
  • 如果仅回滚了一个活跃事务,而且回滚的不是当前事务,则可直接使用,否则无法使用。本事务可能被回滚了。
control scn:最近被重用事务槽的提交scn
  • 回滚事务表前,先判断control scn,因为其为所有被重用事务槽提交scn的上线
snapshot too old:
  1. 获取行的事务状态时,如果lock指针失效,当前scn小于csc
  2. 如果事务状态为upper bound,当前scn小于upper bound scn
  3. 如果undo block被重用,则无法回滚。
串行化错误:
  • 更新行的its已经被重用或者需要消耗空间时,而且当前事务snapshot_scn小于csc时,无法判断可见性。
  • 更新行的commit scn大于当前snapshot scn
  • 更新行的upper bound scn大于当前snapshot scn

Oracle CR页面的优势:加锁时,如果当前页面持有S锁,则直接clone,而不用等待锁释放

  • 扫描过程中可长期持有S锁,避免扫描过程中频繁Latch页面或者构造CR页面
  • 回刷页面时可持有S锁,避免回刷页面时的copy或者等待
  • 索引扫描与SMO可并行化

相关文章推荐

深入浅出INNODB MVCC机制与原理

摘要: 1、基础知识 2、MVCC实现原理以及视图化理解(包含些测试以便理解) 3、深MVCC实现机制 一、基础知识 事务: 事务是一组原子性sql查询语句,被当作一个工作单元。若mysq...

深入InnoDB的MVCC机制

一、基础知识 事务: 事务是一组原子性sql查询语句,被当作一个工作单元。若mysql对改事务单元内的所有sql语句都正常的执行完,则事务操作视为成功,所有的sql语句才对数据生效,若sq...

深入浅出INNODB MVCC机制与原理

原文地址:http://blog.sina.com.cn/s/blog_6611686301015sla.html 一、基础知识 事务: 事务是一组原子性sql查询语句,...

Innodb中的事务和锁以及MVCC

蚂蚁金服面试,主要问了一些jvm和mysql的知识,有些问题回答的模棱两可,再次总结一下。mysql因为其插件式存储引擎以及其较小的体积成为了许多应用中数据库的首选,Innodb引擎支持事务,外键并且...

从InnoDB了解MVCC

MVCC全称是Multi-Version Concurrency Control,即多版本并发控制。 这是种很常用的技术,现在几乎所有的关系数据库都支持它。平时它默默工作,像个透明人,似乎不用关心它...

MySQL InnoDB MVCC实现原理

MySQL InnoDB MVCC 原理介绍
  • imduan
  • imduan
  • 2015年09月28日 12:14
  • 1036

MySQL InnoDB MVCC原理

转载自:http://blog.sina.com.cn/s/blog_711b11fd0101bhks.html 一、基础知识 事务: 事务是一组原子性sql查询语句,被当作一个...
  • bubaxiu
  • bubaxiu
  • 2015年03月15日 22:19
  • 506

InnoDB多版本(MVCC)实现简要分析 --何登成

本文转载是转载阿里何博的博客,详细的讲述了mysql mvcc的实现原理,是为了解学习mysql mvcc必读。...

MVCC如何实现InnoDB的高并发

在并发读写数据库时,读操作可能会不一致的数据(脏读)。为了避免这种情况,需要实现数据库的并发访问控制,最简单的方式就是加锁访问。由于,加锁会将读写操作串行化,所以不会出现不一致的状态。但是,读操作会被...

Innodb MVCC的实现分析

什么是mvcc(多版本并发控制)Multiversion concurrency control (MCC or MVCC), is a concurrency control method com...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oralce和Innodb MVCC关键机制
举报原因:
原因补充:

(最多只允许输入30个字)