14.4.9 Configuring Spin Lock Polling 配置Spin lock 轮询: 很多InnoDB mutexes 和rw-locks 是保留一小段时间,在一个多核系统, 它可以更加有效的对于一个thread 不断的检查如果 它需要一个mutex or rw-lock 一段时间 在sleeping前。 如果 mutex or rw-lock 变的可用在这个轮询阶段,thread 可以继续, 在相同的时间片段,然而,太频繁的轮询通过多个共享对象的threads 可能会导致 “cache ping pong”, 不同的处理器失效彼此的cache的部分 InnoDB 最小化这个问题通过一个随机时间在随后的调查。 延迟实现为 一个Busy loop. 你能控制的最大延迟在测试一个mutex或者 rw-lock 使用参数 innodb_spin_wait_delay. 延迟loop 的周期 取决于 C编译器和目标处理器。(在100MHZ的Pentium 时代, 延迟的单位是微妙) 在一个系统当所有的处理器共享一个快速缓存,你可以降低最大延迟或者禁用 busy loop altogether by setting innodb_spin_wait_delay=0. 在一个系统有多个处理器, 缓存失效的影响可能变的更加明显, 你可能会增加最大延迟