第九章 並行與分佈式數據庫
9.1 關係的並行算法
1、並行模型
(1)共享內存機器
(2)共享磁盤機器
(3)無共享機器
2、並行算法
(1)一次一個元組的操作的並行
類似於分塊的思想,將關係R的元組平均的分組到P個處理器的磁盤上,並行選擇,然後彙總。
(2)整個關係操作的並行算法
δ(R)是什麼操作符?這部分沒看懂
(3)並行算法的性能
計算磁盤I/O,這個需要根據具體的操作具體計算,還要結合有多少處理器P來計算
9.2 MapReduce並行架構
見MapReduce論文總結
9.3 分佈式數據庫
介紹而已,介紹了數據的分佈,分佈式事務,數據複製
9.4 分佈式查詢處理
1、半連接化簡
如果連接後包含許多懸掛元組,則半連接化簡有效,減少了網絡間數據傳輸量
2、多個連接的化簡
(1)超圖,循環不可化簡,非循環則可化簡
(2)非循環超圖的完全化簡
9.5分佈式提交
重點,兩階段提交
分佈式事務的恢復,某些情況下有些複雜
9.6分佈式封鎖
(1)簡單方法:集中封鎖系統
所有的封鎖在一個節點上進行,消息數量3n。
(2)分佈式封鎖帶來的問題:
數據有多個副本,爲了保證可串行性,事務必須獲得邏輯元素上的全局鎖(注意區分全局鎖和局部鎖)
將局部鎖轉變爲具有所需性質的全局鎖的方法:
一個邏輯元素X可以有一個排它鎖且沒有共享鎖,也可以有任意個共享鎖且沒有排它鎖。
(3)承接(1)改進方案一 主副本封鎖
改進點:所有邏輯元素不是由一個節點來管理封鎖了。邏輯元素X有多個副本,但只有一個主副本,主副本所在的節點維護邏輯元素X的封鎖。
(4)承接(1)改進方案二 局部鎖構成的全局鎖
假設數據庫元素A有n個副本,有兩個數:
s事務獲得A上的全局共享鎖時必須以共享方式封鎖A的副本數
x事務獲得A上的排它鎖時必須以排他方式封鎖A的副本數
條件:2x > n && s + x > n,則可以滿足(2)中的性質,可以自己驗證
弊端:分佈式死鎖
應用:
讀封鎖一個,寫封鎖所有,適用於大多數事務是隻讀事務。
s = x = (n+1) / 2上取整
9.7 對等分佈式查找
1、對等網絡
2、分佈式散列問題
限制條件:
(1)只有一個節點知道與任意給定的關鍵字K對應的值
(2)k-v分佈均勻
(3)查詢需要的消息數增長緩慢
(4)維護信息增長緩慢
3、方案一 帶弦的圓
(1)每個節點記錄前驅和後繼
(2)每個節點維護手指表
(3)手指表的查詢,利用倍增的思想(可以類比倍增求LCA時的思想)
(4)加入新節點與端離開網絡
輪詢執行穩定性檢測
(5)端崩潰
解決方案:數據複製,3份,自身,前驅和後繼