亞信安慧AntDB:AntDB-M後設資料鎖(十)

亞信AntDB資料庫發表於2024-01-31

 5.8 鎖等待及通知

每個執行緒的鎖上下文都有一個條件變數來進行鎖等待。執行緒在沒有獲取鎖的授權時,會將自己的ticket新增到鎖物件的等待佇列,並進入等待狀態。等待佇列的鎖授予檢測有3個時機:

1)加鎖申請階段,hog,piglet型別鎖申請個數超過閥值。

2)當有執行緒釋放後設資料鎖。

3)後設資料鎖降級。

時機觸發時,會遍歷該鎖物件的等待列表,檢測到可以授予時,設定執行緒等待狀態為授予鎖,通知該執行緒,並將ticket從等待佇列移到授予佇列。

6 總結

AntDB-M透過多層次、多粒度、多優先順序提供了靈活豐富的後設資料鎖功能,適用於各種業務場景。將加鎖路徑區分快速、慢速路徑,提高絕大部分業務場景的加鎖效率。透過優先順序反轉,避免低優先順序飢餓。高效的廣度優先死鎖檢測技術,避免了死鎖的發生。如果檢測到了死鎖,會優先驅逐DML操作,保障成本更高的DDL操作,相同操作會優先驅逐等待時間更短的操作,保持公平性。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70026696/viewspace-3005874/,如需轉載,請註明出處,否則將追究法律責任。

相關文章