二十:從庫MTS多線程并行回放(二)(筆記)

一、工作線程執(zhí)行Event

外部循環(huán)
slave_worker_exec_job_group
  ->pop_jobs_item 出隊 獲取event 但是不刪除
    如果隊列為空則等待
    stage_slave_waiting_event_from_coordinator
    Waiting for an event from Coordinator
  ->進入循環(huán)
     
    如果是GTID EVENT 標記事物開始
    記錄讀取event時間
    Slave_worker::slave_worker_exec_event 執(zhí)行event
    -> 如果是XID
        Xid_apply_log_event::do_apply_event_worker    
        
        -> Slave_worker::commit_positions
           -> 設置各種變量 將會出現(xiàn)在worker info里面 這里也可以看到這些信息是group的checkpoint信息
                  
                  當前執(zhí)行的位置:
                  strmake(group_relay_log_name, ptr_g->group_relay_log_name,sizeof(group_relay_log_name) - 1);
                  group_relay_log_pos= ev->future_event_relay_log_pos;
                  set_group_master_log_pos(ev->common_header->log_pos);
                  set_group_master_log_name(c_rli->get_group_master_log_name());
                  
                  檢查信息:
                  strmake(checkpoint_relay_log_name, ptr_g->checkpoint_relay_log_name,sizeof(checkpoint_relay_log_name) - 1);
                  checkpoint_relay_log_pos= ptr_g->checkpoint_relay_log_pos;
                  strmake(checkpoint_master_log_name, ptr_g->checkpoint_log_name,sizeof(checkpoint_master_log_name) - 1);
                  checkpoint_master_log_pos= ptr_g->checkpoint_log_pos;
                  
                  
                  checkpoint_seqno= ptr_g->checkpoint_seqno;
                      for (uint pos= ptr_g->shifted; pos < c_rli->checkpoint_group; pos++) //重新設置位圖 因為checkpoint已經(jīng) 
                     {                                                                     //ptr_g->shifted是GAQ中出隊的事務個數(shù)
                        if (bitmap_is_set(&group_shifted, pos))                            //這里就需要偏移掉出隊的事務,恢復已經(jīng)不需要了
                        bitmap_set_bit(&group_executed, pos - ptr_g->shifted);
                      }
                  bitmap_set_bit(&group_executed, ptr_g->checkpoint_seqno);//在本次事務相應的位置設置為1
                  
             -> 進行flush_info(force)操作刷盤 將信息寫入到worker info 表中
  
        -> error= do_commit(thd); //做提交操作 

  ->remove_item_from_jobs 在隊列中刪除這個event 
    
    如果是XID event 則退出循環(huán) 代表整個 事物執(zhí)行完成
    
    Slave_worker::slave_worker_ends_group
     -> get_commit_order_manager()->report_commit(this);
         
     ->更新Slave_job_group信息
            ptr_g->group_master_log_pos= get_group_master_log_pos(); //更新 job group信息
            ptr_g->group_relay_log_pos= group_relay_log_pos;
            my_atomic_store32(&ptr_g->done, 1);
            last_group_done_index= gaq_index;
            last_groups_assigned_index= ptr_g->total_seqno;
            reset_gaq_index();
            groups_done++; //更新GROUP信息 這里也可以看到GROUP的信息來自work的類      
     ->
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脱篙,一起剝皮案震驚了整個濱河市嫡意,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖缭嫡,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異惜颇,居然都是意外死亡皆刺,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門官还,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芹橡,“玉大人,你說我怎么就攤上這事望伦×炙担” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵屯伞,是天一觀的道長腿箩。 經(jīng)常有香客問我,道長劣摇,這世上最難降的妖魔是什么珠移? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮末融,結果婚禮上钧惧,老公的妹妹穿的比我還像新娘。我一直安慰自己勾习,他們只是感情好浓瞪,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著巧婶,像睡著了一般乾颁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上艺栈,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天英岭,我揣著相機與錄音,去河邊找鬼湿右。 笑死诅妹,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的毅人。 我是一名探鬼主播漾唉,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼堰塌!你這毒婦竟也來了赵刑?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤场刑,失蹤者是張志新(化名)和其女友劉穎般此,沒想到半個月后蚪战,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡铐懊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年邀桑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片科乎。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡壁畸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出茅茂,到底是詐尸還是另有隱情捏萍,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布空闲,位于F島的核電站令杈,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏碴倾。R本人自食惡果不足惜逗噩,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望跌榔。 院中可真熱鬧异雁,春花似錦、人聲如沸僧须。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽皆辽。三九已至柑蛇,卻和暖如春芥挣,著一層夾襖步出監(jiān)牢的瞬間驱闷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工空免, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留空另,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓蹋砚,卻偏偏與公主長得像扼菠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子坝咐,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容

  • ??一個任務通常就是一個程序循榆,每個運行中的程序就是一個進程。當一個程序運行時墨坚,內(nèi)部可能包含了多個順序執(zhí)行流秧饮,每個順...
    OmaiMoon閱讀 1,663評論 0 12
  • 為什么多線程? 多線程并不一定是最好的,合適才是最好的盗尸。 多線程主要的優(yōu)點是價廉物美柑船,啟動快、退出快泼各、與其他線程共...
    小熊猜猜我有幾顆糖閱讀 820評論 0 6
  • 一. 操作系統(tǒng)概念 操作系統(tǒng)位于底層硬件與應用軟件之間的一層.工作方式: 向下管理硬件,向上提供接口.操作系統(tǒng)進行...
    月亮是我踢彎得閱讀 5,959評論 3 28
  • 一鞍时、多線程基礎 基本概念 進程進程是指在系統(tǒng)中正在運行的一個應用程序每個進程之間是獨立的,每個進程均運行在其專用且...
    AlanGe閱讀 543評論 0 0
  • 我喜歡這夜扣蜻,或許只是因為我大抵是這樣的人吧逆巍! 少時夜記 年少只知玩樂...
    壹涅閱讀 472評論 4 4