禁止死鎖檢測來提升高併發MySQL性能

在一個高併發的MySQL服務器上,事務會遞歸檢測死鎖,當超過一定的深度時,性能的下降會變的不可接受。FACEBOOK早就提出了禁止死鎖檢測。

我們做了一個實驗,在禁止死鎖檢測後,TPS得到了極大的提升,如下圖所示:



禁止死鎖檢測後,即使死鎖發生,也不會回滾事務,而是全部等待到超時

Patch比較簡單,直接在死鎖檢測前加一層判斷即可:

if (innobase_deadlock_check && UNIV_UNLIKELY(lock_deadlock_occurs(lock, trx))) 

。。。。

innobase_deadlock_check是在innodb裏新加的系統變量,用於控制是否打開死鎖檢測

發佈了124 篇原創文章 · 獲贊 11 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章