MySQL · 捉虫动态 · 弱序内存模型导致的死锁问题

背景 众所周知,基于X86架构的CPU瓜分了服务器领域90%领域以上的市场,而基于ARM架构的CPU则占据了移动芯片领域绝大部份的市场。MySQL作为流行的通用数据库,可能运行在任何架构的CPU上。然而,与X86不同,ARM架构的CPU往往是弱内存序模型,这对于基于原子操作+内存屏障实现锁机制的InnoDB而言,可能引入新的bug。 如上图所示,X86属于强序模型,仅会发生“写-读”乱序:即写操作后的读操作被乱序到写操作前执行。引入乱序机制的根本原因在于片上缓存/同