MySQL · 源码分析 · InnoDB读写锁实现分析

1 背景 在InnoDB中,当多线程需要访问共享数据结构时,InnoDB使用互斥锁(mutex)和读写锁(rwlock)来同步这些并发操作。InnoDB的读写锁实现并不是对pthread rwlock的直接封装,而是基于原子操作,自旋锁和条件变量进行实现,大大减少了进入内核态进行同步操作的概率,提高了性能,和在现代多核处理器架构下的可扩展性。 本文分析了InnoDB读写锁的具体实现,所有分析基于MySQL 8.0.18代码。 2 锁模式 InnoDB的读写锁有三种基本