随笔:MYSQL_BIN_LOG::COND_done 是什么
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,一、问题是什么欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下:如果图片不能显示可查看下面链接:https://www.jianshu.com/p/d636215d767f二、找到影响位置整
千家信息网最后更新 2025年02月08日随笔: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安全错误
数据库的锁怎样保障安全
天津智慧养老软件开发专业制作
手游云顶为什么显示服务器错误
倍孜网络技术
大学校园生活网络安全
科技赋能互联网医药健康
做网络安全的维护着PPT
数据库建立学生目录
安宁软件开发咨询报价
网络安全手抄报4年级a3纸
谷歌服务器进程管理
贵州省网络安全和信息化协会薪资
java语句修改数据库
美国和中国的网络安全谁更好
服务器固态硬盘方案
刀片服务器 拆解视频
数据库运维设置
虚拟主机数据库连接失败怎么办
数据库工程师最高等级
河北电脑软件开发价位
秦淮区毓汇新软件开发有限公司
多媒体软件开发制作合同
采集网络安全议题
上海智能边缘计算服务器
服务器内存条校验报错
英信服务器
云南惠普服务器
web数据库的基本要点
应用服务器维护
win10连接服务器
网络工程班学网络技术