开发者社区 > 数据库 > 正文

MySQL 深潜 - MDL 锁的实现与获取机制什么是死锁检测?

MySQL 深潜 - MDL 锁的实现与获取机制什么是死锁检测?

展开
收起
xi哈啥哈 2022-04-30 09:23:23 826 0
1 条回答
写回答
取消 提交回答
  • 每个线程在进入锁等待之前,都会进行一次死锁检测,避免当前线程陷入死等。在检测死锁前,首先将当前线程所获取到的 unobtrusive 锁物化,这样这些锁才会出现在 MDL_lock::m_granted 链表中,死锁检测才有可能探测到。并且设置当前线程的等待锁 MDL_context::m_waiting_for 为当前的 ticket,每个进入等待的线程都会设置等待对象,沿着这条等待链就可以检测死锁。

    2022-05-08 11:18:03
    赞同 展开评论 打赏

数据库领域前沿技术分享与交流

相关产品

  • 云数据库 RDS MySQL 版
  • 相关电子书

    更多
    One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
    One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
    如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

    相关镜像