《雲資料管理:挑戰與機遇》2.1.3 互斥和仲裁集
互斥和仲裁集
互斥是併發程式訪問共享資源時涉及的一個基本概念。互斥是作業系統中的一個重要操作,後來也被擴充套件到資料庫中。互斥可以按照如下方式進行定義:給定一個程式集合和一個單獨的資源,開發一種協議,該協議可以確保在同一時間,一個資源只能被一個程式進行排他性訪問。針對集中式系統和分散式系統都已經提出了多種解決方案。針對分散式互斥問題的一種簡單的集中式解決方案可以設計如下:指定一個程式為協調者,當程式需要訪問資源時,傳送一個請求訊息給協調者。協調者維護一個等待請求佇列。當協調者接收一個請求訊息時,檢查該佇列是否為空,如果佇列為空,協調者就為請求客戶端傳送一個回覆訊息,請求客戶端就可以訪問共享資源。否則,請求訊息就被新增到等待請求佇列中。程式在共享資源上執行完成以後,向協調者傳送一個釋放訊息。接收到釋放訊息以後,協調者從佇列中移除請求,然後為其他等待的請求檢查佇列。該協議已經被Lamport[1978]擴充套件成分散式協議,很多其他研究人員對該協議進行了優化。
該基本協議的普遍應用需要系統中所有程式的參與。為了克服障礙,Gifford提出了仲裁集的概念。比較重要的發現是任意兩個請求都應該有一個共同的程式來充當仲裁者。假定程式pi(pj)從集合qi(qj)中請求許可,其中qi和qi是仲裁集,也可以是系統中所有程式的子集。qi和qj的交集不能為空。例如,包括系統中大部分程式的集合就可以構成一個仲裁集。使用仲裁集,而非系統中的所有程式,基本協議仍然有效,但是有可能出現死鎖[Maekawa, 1985]。圖2-4a展示了一個包含7個程式的系統,任意一個大於等於4的集合和另外一個大於等於4的集合一定相交,即對於任意兩個仲裁集, 每一個仲裁集都包含大部分站點,它們的交集一定是非空的。
在資料庫中,仲裁集的概念可以理解成基本的讀、寫操作,讀操作不需要互斥。然而,多個讀操作雖然可以併發執行,但是,針對資料的寫操作仍需要互斥訪問。因此,設計了兩種仲裁集:讀仲裁集和寫仲裁集,其中,兩個寫仲裁集之間的交集不能為空,一個讀仲裁集和一個寫仲裁集之間的交集也不能為空,針對兩個讀仲裁集的交集沒有強制性要求。圖2-4b展示了一個包含6個程式的系統,寫仲裁集是大小為4的任意集合,讀仲裁集是大小為3的任意集合。需要注意的是,任意讀仲裁集和寫仲裁集必須相交,任意兩個寫仲裁集也必須相交。但是,讀仲裁集之間不一定相交,因此,多個讀操作可以並行執行。
a)互斥仲裁集 b)讀寫仲裁集
相關文章
- API 管理在雲原生場景下的機遇與挑戰API
- 雲時代,運維面臨的挑戰與機遇運維
- Flink大資料計算的機遇與挑戰大資料
- 摩杜雲:機遇與挑戰,DT時代資料處理的能力首當其衝
- 黑暗資料給網路安全帶來的挑戰和機遇
- AI晶片的長征之路:挑戰與機遇AI晶片
- 女性開發者為您解讀資料庫的未來機遇與挑戰資料庫
- 美國白宮85頁報告詳述大資料的機遇與挑戰大資料
- 雲原生時代下,作業系統生態的挑戰與機遇作業系統
- 機器人市場機遇和挑戰並存機器人
- 人工智慧:未來的機遇與挑戰人工智慧
- 我國財富管理行業面臨的機遇與挑戰行業
- 淺談巴西移動遊戲出海機遇與挑戰遊戲
- 中國疫苗行業重塑在即,機遇與挑戰共存行業
- 2022 DBA 角色轉換 挑戰 與 機遇
- 人工智慧核心6技術,機遇與挑戰並存人工智慧
- 世界是並行的:平行計算的機遇與挑戰並行
- 沙龍報名 | 雲端計算進入多元架構,雲原生時代的挑戰與機遇架構
- RISC-V 在區塊鏈智慧及雲原生中的應用、機遇與挑戰區塊鏈
- 《精靈寶可夢 GO》:機遇大於挑戰Go
- 物聯網產品開發市場的挑戰與機遇
- 2022年智慧家居AI助手分析:挑戰與機遇AI
- 大模型時代:智慧設計的機遇與挑戰(附下載)大模型
- 2023,超級APP面臨的挑戰與機遇APP
- 蘋果即將釋出新品 開發者的機遇與挑戰並存蘋果
- 高排放行業:低碳供應商的挑戰與機遇行業
- 人工智慧技術落地:無人駕駛的機遇和挑戰人工智慧
- 網際網路醫療,資本熱度減退後的挑戰與機遇
- 人工智慧的失敗列子以及未來的挑戰與機遇人工智慧
- FIT 2019 | 安全人員面臨的機遇與挑戰
- 應用開發機遇與挑戰並存,開發者如何乘風破浪
- 對話ACE第四期:分散式資料庫未來發展的挑戰和機遇分散式資料庫
- 人工智慧涉足清潔行業,將帶來哪些機遇和挑戰?人工智慧行業
- 【思維導圖】 邊緣計算面臨的機遇和挑戰
- 物聯網遇上區塊鏈,將面臨哪些機遇和挑戰?區塊鏈
- 5G浪潮之下,網路安全所面臨的機遇與挑戰
- 《2021 中國遊戲市場挑戰與機遇盤點》重磅釋出!遊戲
- 麥肯錫:壽險行業機遇與挑戰並存(附下載)行業