一般出现这种缺点都是pread或者pwrite长时光不返回,导致锁超时。至于pread或者pwrite长时光不返回的root cause经常是有很多的读写请求在极短的时光内达到导致磁盘扛不住或者磁盘已经坏了。。。
总结
本文具体介绍了原子操作,前提变量,互斥锁以及读写锁在InnoDB引擎中的实现。原子操作因为其能削减不须要的用户态和内核态的切换以及更精简的cpu指令被广泛的应用到InnoDB自旋互斥锁和InnoDB读写锁中。InnoDB前提变量应用加倍便利,然则必定要留意前提通知必须在前提等待之后,不然会有无穷等待产生。InnoDB自旋互斥锁加锁和解锁过程固然复杂然则都是必须的操作。InnoDB读写锁神奇的lock_word控制办法给我们留下了深刻影响。正因为InnoDB底层同步机制的稳定、高效,MySQL在我们的办事器上才能运行的如斯稳定。
【编辑推荐】
- 十个异常实用的MySQL敕令!
- 如安在两台办事器之间安然迁徙MySQL数据库
- 让数据库跑的更快的7个MySQL优化建议!
- MySQL连接设备文件暗码加密及其在多种连接池上的应用
- MySQL引擎特点:InnoDB IO子体系
为什么InnoDB须要实现本身的一套互斥锁,不直接用上述的体系互斥锁呢?这个重要有以下几个原因,起首,体系互斥锁是基于pthread mutex的,Heikki Tuuri(同步模块的作者,也是Innobase的开创人)认为在当时的年代pthread mutex高低文切换造成的cpu开销太大年夜,应用spin lock的方法在多处理器的机械上加倍有效,尤其是在锁竞争不是很严重的时刻,Heikki Tuuri还总结出,在spin lock大年夜概自旋20微秒的时刻在多处理的机械下效力最高。其次,不应用pthread spin lock的原因是,当时在1995年阁下的时刻,spin lock的类似实现,效力很低,并且当时的spin lock不支撑自定义自旋时光,要知道自旋锁在单处理器的机械膳绫腔什么卵用。最后,也是为了加倍完美的监控需求。总的来说,有汗青原因,有监控需求也有自定义自旋时光的需求,然后就有了这一套InnoDB自旋互斥锁。
推荐阅读
数字化转型已成为趋势,然而既然是转型则必定会带来阵痛,新技巧在带来新的颠覆的同时,也给IT运维治理带来新的挑衅,包含稳定性、扩大性、灵活性、成本、投资回报率等等。对于IT治理者而言,若何经由过程大年夜数据>>>详细阅读
本文标题:MySQL引擎特性:InnoDB同步机制
地址:http://www.17bianji.com/lsqh/39799.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示