日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

mysql master thread_mysql innodb master_thread伪代码整理

發布時間:2025/3/21 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql master thread_mysql innodb master_thread伪代码整理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

void master_thread()

{

int innodb_io_capacity = 200 ;//表示磁盤IO吞吐量

int innodb_max_dirty_pages_pct = 75 ;//最大臟頁百分比

goto loop;

loop:

//1秒循環

for(int i = o; i<10; i++)

{

thread_sleep(1);//innodb 優化,壓力大時不總是等待1秒

//日志緩沖刷新到磁盤

do log buffer flush to disk;

//如果磁盤壓力小,合并插入緩沖

if ( last_one_second_ios < innodb_io_capacity*5% ?)

{

do merge at most innodb_io_capacity*5% insert buffer;

}

//判斷臟頁比例

if ( buf_get_modified_ratio_pct > innodb_max_dirty_pages_pct )

{

do buffer pool flush innodb_io_capacity*100% dirty page;

}

//如果開啟自適應刷新,通過判斷產生重做日志的速度來判斷合適的刷新臟頁數量

else if enable adaptive flush

{

do buffer pool flush desired amount dirty page;

}

//如果無用戶活動,切換到 backgroud loop

if ( no user activity )

{

goto backgroud loop;

}

}

//10秒循環

//如果磁盤壓力小,刷新innodb_io_capacity*100%的臟頁到磁盤

if ( last_ten_second_ios < innodb_io_capacity )

{

do buffer pool flush innodb_io_capacity*100% dirty page;

}

//合并插入緩沖

do merge at most innodb_io_capacity*5% insert buffer;

//日志緩沖刷新到磁盤

do log buffer flush to disk;

//刪除無用undo頁,每次最多刪除20個undo頁

do full purge;

//判斷臟頁比例

if ( buf_get_modified_ratio_pct >70% )//---------

{

do buffer pool flush innodb_io_capacity*100% dirty page;

}

else

{

do buffer pool flush innodb_io_capacity*10% dirty page;

}

//產生一個模糊檢查點,只是將最老日志序列號的頁寫入磁盤

do fuzzy checkpoint;

goto loop;

//backgroud

backgroud loop:

//刪除無用undo頁

do full purge;

//合并插入緩沖

do merge innodb_io_capacity*100% insert buffer;

//不空閑跳回主循環,空閑則進入flush loop

if not idle

{

goto loop;

}

else

{

goto flush loop;

}

//flush loop

flush loop:

//不斷刷新臟頁到磁盤,直到臟頁比例小于innodb_max_dirty_pages_pct,則進入suspend loop

do buffer pool flush innodb_io_capacity*100% dirty page;

while ( buf_get_modified_ratio_pct > innodb_max_dirty_pages_pct );

goto suspend loop;

//suspend loop

suspend loop:

suspend_thread();

waiting event;

goto loop;

}

總結

以上是生活随笔為你收集整理的mysql master thread_mysql innodb master_thread伪代码整理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。