最新MVCC-(Oracle--Innodb--Postgres)教学讲义PPT课件.ppt

最新MVCC-(Oracle--Innodb--Postgres)教学讲义PPT课件.ppt

ID:62072555

大小:1.06 MB

页数:49页

时间:2021-04-14

最新MVCC-(Oracle--Innodb--Postgres)教学讲义PPT课件.ppt_第1页
最新MVCC-(Oracle--Innodb--Postgres)教学讲义PPT课件.ppt_第2页
最新MVCC-(Oracle--Innodb--Postgres)教学讲义PPT课件.ppt_第3页
最新MVCC-(Oracle--Innodb--Postgres)教学讲义PPT课件.ppt_第4页
最新MVCC-(Oracle--Innodb--Postgres)教学讲义PPT课件.ppt_第5页
资源描述:

《最新MVCC-(Oracle--Innodb--Postgres)教学讲义PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MVCC-(Oracle--Innodb--Postgres)OutlineMVCC介绍MVCC实现OracleInnoDBPostgreSQL总结MVCC简介何谓MVCC多版本并发控制(MultiVersionConcurrencyControl)MVCC的优势高并发读写不相互阻塞(读可见版本)不同数据库的可见版本定义?低加锁开销读不加锁OLTP应用,8(read)/2(write)支持MVCC数据库现阶段几乎所有主流数据库Oracle,DB2(since9.7),SQLServer(since2005),MysqlInnodb,Postgres…OracleMVCC可

2、见性判断给定查询SCN,回滚页面获得可见CRBlock(ConsistentRead:一致读)CRBlock的SCN小于查询SCNCRBlock上无活跃事务OracleMVCC页面结构OracleMVCCDataBlock(cachelayer)Datablock的第一部分,20bytes构成rdba(relativedatablockaddress)4bytes;前10bits:fileid;后22bits:blockid已知fileId,blockiddumpblockscn标识block最新提交事务scn延时块清除?seq1byte;同一scn下做的多次页面修改O

3、racleMVCCDataBlock(transactionlayer)Fixed部分ITL数量(页面并发事务数)INITRANS;MAXTRANS空闲页锁Freelist指针CSC:cleanoutscnVariable部分ITLs(InterestedTransactionList)啊OracleMVCCDataBlock(Datalayer)Tabledirectory聚簇表(cluster)?作用?Rowdirectory行目录Rowdata行数据OracleMVCCRowFormattl:totallengthfb:flagbyte行类型KCHDFLPNlb:l

4、ockbyteITLnumbercc:columncountNULL?OracleMVCC加锁/锁等待OracleMVCC回滚段&事务事务ID8bytes0004:回滚段号00e:回滚段中的事务slot号0000449b:事务槽被重用的次数xid:0x0004.00e.0000449bOracleMVCC块清除(BlockCleanout)清除什么?清除数据块上的事务操作:行锁;ITL;设置CSC;BlockSCN...何时清除fastblockcleanout记录修改块,提交时清除数量?Cache?日志?deferredblockcleanout(延时块清除)正确性保证

5、:commit时更新回滚段头事务表操作:等待下次事务型操作(why?)访问此块为什么需要清除不清除时怎么做?OracleMVCCUndoBlockUndoreadcurrentblockclonereadITLundotransactionConsistentRead(CR读)将block上所有提交scn>queryscn的事务undoOra-01555snapshottooold?undo_retention=10800?OracleMVCC分析优势页面中不保存版本信息支持闪回查询selectcount(*)fromflashback_query_testasoftim

6、estampto_timestamp('20011-11-1713:34:12','yyyy-mm-ddhh24:mi:ss');缺点页面级别多版本,访问冲突著名的ora-01555!大表的全表扫描处理:并行查询select/*+parallel(t18)*/*fromhuge_tablet1;InnodbMVCC关键词基于事务ID行级多版本回滚段事务ID唯一标识一个事务递增产生新事务,对应更大的事务ID64位,8bytesInnodbMVCCMVCC扩展结构聚簇索引(主键索引)记录扩展(系统列)DB_TRX_IDROLLBACK_PTRDelete_Bit二级索引(辅助

7、索引)记录扩展Delete_Bit页面扩展DB_MAX_ID作用?IndexonlyscanInnodbMVCC更新处理Delete聚簇索引设置Delete_Bit位,前项写入回滚段前项包括:系统列,二级索引属性列二级索引设置Delete_Bit位Update聚簇索引原地更新,前项写入回滚段二级索引clone&update,原项设置Delete_Bit(不物理删除)InnodbMVCC可见性判断原理给定事务Tx,所有在事务Tx开始时已经提交的事务做的更新是可见的(snapshotread)ReadView每个事务,都有read

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。