InnoDB---事务和并发控制相关的文件

来源:互联网 发布:长春干部网络学校 编辑:程序博客网 时间:2024/05/29 14:32

//与事务管理和并发控制相关的文件目录结构   

storage\innobase 

├─btr     //B+树索引结构,锁对象施加在索引项上面,而不是直接施加在记录/元组上面

      btr0btr.cc  //索引管理,索引的创建、释放等相关操作

     btr0bulk.cc //索引上数据的批量操作

     btr0cur.cc  //索引树上遍历对row进行修改等相关的辅助操作

     btr0pcur.cc //SQL语句中(selectupdatedelete)对索引树的遍历条件所得到的一些固定属性从而决定索引树的遍历

     btr0sea.cc  //索引树上的查找操作

├─data     //物理存储结构:字段和记录

     data0data.cc  //字段和元组级的一些操作

     data0type.cc  //数据类型的判断

...

││     

├─lock     //存放InnoDB的锁操作相关文件

     lock0iter.cc  //锁的队列管理,初始化锁的队列和获得锁队列中的锁

     lock0lock.cc  //锁的管理,包括锁的授予、回收、死锁检测等操作,是锁操作相关的最主要的文件

     lock0prdt.cc  //谓词锁相关操作,用以实现Next-Key locking算法

     lock0wait.cc  //锁等待相关的操作,包括因锁等待而挂起、释放、检查等操作

     

├─log      //日志管理

     log0log.cc   //REDO日志,通过Mini-transactionmtr_commit()把日志信息写到REDO日志文件中

     log0recv.cc  //恢复操作

...

     

├─mtr     //Mini-transaction(事务的重要子部分)相关处理

     mtr0log.cc   //Mini-transaction写日志部分

     mtr0mtr.cc   //Mini-transaction日志首先要刷到日志缓冲,然后可把日志缓冲中的数据顺序刷出到物理存储,节约了IO操作

...

├─page     //物理页面操作

     page0cur.cc  //在物理页面上的遍历操作(插入、删除)

     page0page.cc //索引的叶子节点相关操作。索引只是一棵树,叶子是物理数据

     page0zip.cc  //页面压缩的相关操作

...

     

├─que     //Query graph

     que0que.cc  //查询图(query graph)算法的实现,用以判断是否有环存在。在事务管理中用以跟踪事务的执行过程

     

├─read     //Cursorread,一致性无锁读

     read0read.cc  //MVCC机制实现的主要代码,用快照隔离技术(InnoDB中称为ReadView)实现一致性无锁读操作

...

     

├─trx      //事务管理相关操作

     trx0i_s.cc    //INFORMATION SCHEMA里与事务和锁关联的系统表的相关操作:innodb_trxinnodb_locksinnodb_lock_waits

     trx0purge.cc  //PURGE操作,用于清理旧版本数据

     trx0rec.cc    //UNDO日志相关的操作,侧重于UODO日志中使用到的pagerecord等相关的操作

     trx0roll.cc   //事务回滚操作相关的内容

     trx0rseg.cc   //回滚段的管理,包括创建、初始化、使用、释放等,rseg的意思是rollback segment

     trx0sys.cc    //事务管理在系统层面的一些相关操作,如事务系统的启动、关闭等

      trx0trx.cc    //事务管理相关的内容,如事务开始、事务提交、事务信息打印输出等动作

      trx0undo.cc   // UNDO日志相关的操作,侧重于UNDO日志管理方面

...

0 0