随笔:MYSQL_BIN_LOG::COND_done 是什么
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,一、问题是什么欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下:如果图片不能显示可查看下面链接:https://www.jianshu.com/p/d636215d767f二、找到影响位置整
千家信息网最后更新 2026年10月31日随笔:MYSQL_BIN_LOG::COND_done 是什么
一、问题
是什么
欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下:
如果图片不能显示可查看下面链接:
https://www.jianshu.com/p/d636215d767f
二、找到影响位置
整个寻找过程应该找到key_BINLOG_COND_done这个取值,然后去看他是在那里被定义到相应的mutex/cond上,然后查找mutex/cond的作用即可。
定义:
static PSI_cond_info all_server_conds[]=
{
{ &key_PAGE_cond, "PAGE::cond", 0},
{ &key_COND_active, "TC_LOG_MMAP::COND_active", 0},
{ &key_COND_pool, "TC_LOG_MMAP::COND_pool", 0},
{ &key_BINLOG_COND_done, "MYSQL_BIN_LOG::COND_done", 0},
{ &key_BINLOG_update_cond, "MYSQL_BIN_LOG::update_cond", 0},注册:
register_cond_class初始化:
MYSQL_BIN_LOG::set_psi_keys
- 建立条件变量:
Stage_manager::init
- 使用:
*/ if (!leader) //如果不是 leader { mysql_mutex_lock(&m_lock_done);//加锁 while (thd->get_transaction()->m_flags.pending) //唤醒时 设置每个事物的状态 为ture mysql_cond_wait(&m_cond_done, &m_lock_done);//释放锁 等待条件满足 pending=false mysql_mutex_unlock(&m_lock_done);//解锁 }- 栈帧
Breakpoint 2, MYSQL_BIN_LOG::set_psi_keys (this=0x2e83640, key_LOCK_index=7, key_LOCK_commit=3, key_LOCK_commit_queue=4, key_LOCK_done=5, key_LOCK_flush_queue=6, key_LOCK_log=8, key_LOCK_binlog_end_pos=9, key_LOCK_sync=10, key_LOCK_sync_queue=11, key_LOCK_xids=12, key_COND_done=4, key_update_cond=5, key_prep_xids_cond=6, key_file_log=2, key_file_log_index=4, key_file_log_cache=3, key_file_log_index_cache=5) at /mysqldata/percona-server-locks-detail-5.7.22/sql/binlog.h:539539 m_key_COND_done= key_COND_done;(gdb) bt#0 MYSQL_BIN_LOG::set_psi_keys (this=0x2e83640, key_LOCK_index=7, key_LOCK_commit=3, key_LOCK_commit_queue=4, key_LOCK_done=5, key_LOCK_flush_queue=6, key_LOCK_log=8, key_LOCK_binlog_end_pos=9, key_LOCK_sync=10, key_LOCK_sync_queue=11, key_LOCK_xids=12, key_COND_done=4, key_update_cond=5, key_prep_xids_cond=6, key_file_log=2, key_file_log_index=4, key_file_log_cache=3, key_file_log_index_cache=5) at /mysqldata/percona-server-locks-detail-5.7.22/sql/binlog.h:539#1 0x0000000000edcee4 in init_common_variables () at /mysqldata/percona-server-locks-detail-5.7.22/sql/mysqld.cc:2974#2 0x0000000000ee117f in mysqld_main (argc=82, argv=0x2f26738) at /mysqldata/percona-server-locks-detail-5.7.22/sql/mysqld.cc:4938#3 0x0000000000ed8504 in main (argc=4, argv=0x7fffffffe3f8) at /mysqldata/percona-server-locks-detail-5.7.22/sql/main.cc:25建立条件变量Breakpoint 3, Stage_manager::init (this=0x2e84858, key_LOCK_flush_queue=6, key_LOCK_sync_queue=11, key_LOCK_commit_queue=4, key_LOCK_done=5, key_COND_done=4) at /mysqldata/percona-server-locks-detail-5.7.22/sql/binlog.h:156156 mysql_mutex_init(key_LOCK_done, &m_lock_done, MY_MUTEX_INIT_FAST);(gdb) bt#0 Stage_manager::init (this=0x2e84858, key_LOCK_flush_queue=6, key_LOCK_sync_queue=11, key_LOCK_commit_queue=4, key_LOCK_done=5, key_COND_done=4) at /mysqldata/percona-server-locks-detail-5.7.22/sql/binlog.h:156#1 0x000000000187cbea in MYSQL_BIN_LOG::init_pthread_objects (this=0x2e83640) at /mysqldata/percona-server-locks-detail-5.7.22/sql/binlog.cc:3601#2 0x0000000000edcef3 in init_common_variables () at /mysqldata/percona-server-locks-detail-5.7.22/sql/mysqld.cc:2983#3 0x0000000000ee117f in mysqld_main (argc=82, argv=0x2f26738) at /mysqldata/percona-server-locks-detail-5.7.22/sql/mysqld.cc:4938#4 0x0000000000ed8504 in main (argc=4, argv=0x7fffffffe3f8) at /mysqldata/percona-server-locks-detail-5.7.22/sql/main.cc:25
条件
变量
主从
事物
位置
作用
原理
图片
是在
状态
过程
链接
问题
影响
随笔
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手磨咖啡
科技互联网公司装修
没上市的科技互联网公司
喔噻互联网科技
万易互联网科技有限公司
互联网科技logo
猫创互联网科技
郑州华宇互联网科技
甘肃拓世互联网科技有限公司
开启互联网科技时代小说
须眉科技是互联网公司吗
北京华百购互联网科技有限公司
苏州铭阳互联网科技有限公司
山东星卡互联网科技有限公司官网
互联网相关科技技术
互联网安防科技感
风投北京互联网科技
工业互联网科技创业
广西科技产业互联网是什么
互联网对科技影响
互联网加科技
互联网科技会
银优互联网科技有限公司
亿账通互联网科技
撒么互联网科技公司
互联网科技宣传片
互联网科技生活的内容
银川新华互联网科技学校地址
青海科技产业互联网发展
利用互联网等科技手段