随笔:MYSQL_BIN_LOG::COND_done 是什么
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,一、问题是什么欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下:如果图片不能显示可查看下面链接:https://www.jianshu.com/p/d636215d767f二、找到影响位置整
千家信息网最后更新 2025年11月07日随笔: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安全错误
数据库的锁怎样保障安全
海南网络安全实战攻防演练
大唐高鸿网络技术股份有限公司
单招计算机网络技术一般问什么
软件开发的需求情况
车到家网络技术公司主要干什么
java软件开发有哪些
唐山每搜网络技术
原神世界树服务器去哪下载
列举数据库的几种图像
孝南区城管局网络安全
特攻先锋获取服务器
sql数据库当前时间
bak数据库怎么导入
每个请求都去数据库查询权限
怎样修改服务器权限
云之遥测试服务器
服务器和服务站
如何宣传网络安全相关知识
腾讯网络安全天才
最好玩的服务器游戏
绝地求生国际服不小心改服务器
数据库判断字符串类型
维护网络安全做ppt
科技互联网人物
黑客要有自己的服务器吗
网络安全知识网
服务器密码统一管理
网络安全准入厂家
rpc服务器手动和自动
word服务器找不到应用程序