首页 存档 技术 查看内容

MySQL InnoDB事务结构体代码变量全攻略(附源码)

2018-3-30 13:00 |来自: 互联网 297 0

摘要: 写在前面 InnoDB是MySQL的一个存储引擎,支持事务,支持非堵塞的一致性读,物理存储结构是Page,每个事务都有回滚日志,重做日志,事务还会有死锁检测,各种各样不同的锁等等。 翻看InnoDB的源码,发现数下来开启一 ...



写在前面


InnoDB是MySQL的一个存储引擎,支持事务,支持非堵塞的一致性读,物理存储结构是Page,每个事务都有回滚日志,重做日志,事务还会有死锁检测,各种各样不同的锁等等。


翻看InnoDB的源码,发现数下来开启一个事务的时候,InnoDB需要处理63个变量,变量类型纷繁复杂,结构体,自定义的数据类型等等。


这次整理,我翻看了不少同行们写的博客,包括InnoDB官方博客,有一个心得就是不同人的翻译不一样,尽管是官方写的博客,也会因为一些篇幅问题,减掉了一些细节的介绍。这次的整理,我特意保留了原来的英文备注,然后加上自己的理解进去。


MySQL的源码文件很多,InnoDB也不少,不过我觉得事务的结构体代码还是要理解透,透了才能理解透事务的实现细节,更加深入认识数据库系统为了保证数据的一致性,做了多少事情....


文件地址


storage/innobase/include/trx0trx.h


变量1 magic_n


变量类型 ulint #define ulint unsigned long



变量2 mutex


变量类型 ib_mutex_t


mutex的代码备注


Mutex protecting the fields state and lock (except some fields of lock, which are protected by lock_sys-

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部