中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

隨筆:MYSQL_BIN_LOG::COND_done 是什么

發布時間:2020-08-04 14:08:53 來源:ITPUB博客 閱讀:260 作者:gaopengtttt 欄目:MySQL數據庫

一、問題

隨筆:MYSQL_BIN_LOG::COND_done 是什么

是什么

歡迎關注我的《深入理解MySQL主從原理 32講 》,如下:

隨筆:MYSQL_BIN_LOG::COND_done 是什么
如果圖片不能顯示可查看下面鏈接:
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:539
539         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:156
156         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
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淮南市| 宁晋县| 明水县| 德阳市| 巧家县| 石河子市| 福建省| 临沭县| 六枝特区| 平谷区| 房产| 宜阳县| 屏南县| 尤溪县| 财经| 门头沟区| 新田县| 博乐市| 南部县| 汉中市| 娄烦县| 怀化市| 子长县| 柳河县| 洛宁县| 湟中县| 浦县| 白玉县| 抚松县| 磐安县| 彭山县| 南和县| 临海市| 时尚| 高雄市| 疏勒县| 壤塘县| 祁阳县| 新昌县| 阳城县| 新竹市|