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

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

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     //Cursor read,一致性无锁读

      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日志管理方面

...

猜你喜欢

转载自blog.csdn.net/fly2nn/article/details/61924826