分布式系統(tǒng)數(shù)據(jù)一致性解決方案_第1頁(yè)
分布式系統(tǒng)數(shù)據(jù)一致性解決方案_第2頁(yè)
分布式系統(tǒng)數(shù)據(jù)一致性解決方案_第3頁(yè)
分布式系統(tǒng)數(shù)據(jù)一致性解決方案_第4頁(yè)
分布式系統(tǒng)數(shù)據(jù)一致性解決方案_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1.1.分布式系統(tǒng)中數(shù)據(jù)一致性存在的困分布式系統(tǒng)中數(shù)據(jù)一致性存在的困 難難 1.1.高度并行帶來(lái)的問(wèn)題高度并行帶來(lái)的問(wèn)題 本機(jī)內(nèi)多任務(wù)并行帶來(lái)的困難本機(jī)內(nèi)多任務(wù)并行帶來(lái)的困難 多機(jī)并行帶來(lái)的困難多機(jī)并行帶來(lái)的困難 網(wǎng)絡(luò)延遲不可預(yù)測(cè)網(wǎng)絡(luò)延遲不可預(yù)測(cè) 2.2.多副本帶來(lái)的問(wèn)題多副本帶來(lái)的問(wèn)題 系統(tǒng)中存在多個(gè)副本,數(shù)據(jù)的修改通常會(huì)在不同的副系統(tǒng)中存在多個(gè)副本,數(shù)據(jù)的修改通常會(huì)在不同的副 本上進(jìn)行本上進(jìn)行 3. 空間數(shù)據(jù)所存在的特殊困難空間數(shù)據(jù)所存在的特殊困難 跨機(jī)圖幅的接邊問(wèn)題跨機(jī)圖幅的接邊問(wèn)題 拓?fù)潢P(guān)系的全局動(dòng)態(tài)改變與生成問(wèn)題拓?fù)潢P(guān)系的全局動(dòng)態(tài)改變與生成問(wèn)題 4. 分布式系統(tǒng)中數(shù)據(jù)一致性保證的不同

2、模型分布式系統(tǒng)中數(shù)據(jù)一致性保證的不同模型 嚴(yán)格一致性:讀出的數(shù)據(jù)始終為最近寫(xiě)入的數(shù)據(jù)嚴(yán)格一致性:讀出的數(shù)據(jù)始終為最近寫(xiě)入的數(shù)據(jù) 計(jì)算機(jī)計(jì)算機(jī)A 計(jì)算機(jī)計(jì)算機(jī)A 計(jì)算機(jī)計(jì)算機(jī)A 讀讀x 寫(xiě)寫(xiě)x 時(shí)刻時(shí)刻T1時(shí)刻時(shí)刻T2 T T2 2 T T1 1,如果兩,如果兩 者非常接近,有者非常接近,有 可能因?yàn)榫W(wǎng)絡(luò)原可能因?yàn)榫W(wǎng)絡(luò)原 因讀請(qǐng)求比寫(xiě)請(qǐng)因讀請(qǐng)求比寫(xiě)請(qǐng) 求晚到!求晚到! 太嚴(yán)格!實(shí)現(xiàn)太嚴(yán)格!實(shí)現(xiàn) 難度極大!幾難度極大!幾 乎不可能!乎不可能! 順序一致性:只要所有的程序都以一定的順序運(yùn)行順序一致性:只要所有的程序都以一定的順序運(yùn)行 (即所有程序的訪問(wèn)操作在別的程序看來(lái)都是一樣的),(即所有程序的訪

3、問(wèn)操作在別的程序看來(lái)都是一樣的), 每個(gè)程序的操作都以程序規(guī)定的次序?qū)崿F(xiàn),結(jié)果都應(yīng)該被每個(gè)程序的操作都以程序規(guī)定的次序?qū)崿F(xiàn),結(jié)果都應(yīng)該被 接受。接受。 例例1 程序程序P1:W(x,1) 程序程序P2 : R(x)0 R(x)1 或者兩次都為或者兩次都為1,都應(yīng)該接受。,都應(yīng)該接受。 順序一致性看似很順序一致性看似很“弱弱”,實(shí)際很強(qiáng),對(duì)多副本一致,實(shí)際很強(qiáng),對(duì)多副本一致 性有很強(qiáng)的要求,實(shí)際實(shí)現(xiàn)也是難以做到的。只能在單一性有很強(qiáng)的要求,實(shí)際實(shí)現(xiàn)也是難以做到的。只能在單一 服務(wù)器上使用。服務(wù)器上使用。 例例2 2 程序程序A A 程序程序B B 程序程序C C a=1; b=1 a=1; b=

4、1; c=1c=1; printprint(b,cb,c) printprint(a,ca,c) printprint(a,ba,b) 理論上有理論上有9090個(gè)執(zhí)行的次序。以個(gè)執(zhí)行的次序。以a=1a=1開(kāi)頭說(shuō)明,共有開(kāi)頭說(shuō)明,共有5 5!=120=120 個(gè)順序,但個(gè)順序,但b=1b=1不能在不能在printprint(a,ca,c)之后,因此一半是無(wú)效)之后,因此一半是無(wú)效 的;同理程序的;同理程序C C也如此,只剩下也如此,只剩下3030個(gè)有效,共個(gè)有效,共9090個(gè)有效順序。個(gè)有效順序。 但是,打印結(jié)果只有但是,打印結(jié)果只有6 6個(gè)數(shù)字、個(gè)數(shù)字、6464種可能。其中,種可能。其中,00

5、0000000000 和和001001001001顯然不可能。顯然不可能。 應(yīng)該承認(rèn)所有合理的結(jié)果。例如,應(yīng)該承認(rèn)所有合理的結(jié)果。例如,001011001011,表示執(zhí)行的次,表示執(zhí)行的次 序?yàn)椋盒驗(yàn)椋?A=1 print(b,c) b=1 print(a,c) c=1 print(a,b)A=1 print(b,c) b=1 print(a,c) c=1 因果一致性:可能因果相關(guān)的寫(xiě)操作應(yīng)對(duì)所有程序可因果一致性:可能因果相關(guān)的寫(xiě)操作應(yīng)對(duì)所有程序可 見(jiàn)并保持順序一致。并發(fā)的寫(xiě)操作在不同計(jì)算機(jī)上看來(lái)可以見(jiàn)并保持順序一致。并發(fā)的寫(xiě)操作在不同計(jì)算機(jī)上看來(lái)可以 順序不同。順序不同。 例例1 程序程序P

6、1:W(x,1) W(x,3) P2: R(x)1 W(x,2) P3: R(x)1 R(x)2 R(x)3 P4: R(x)1 R(x)3 R(x)2 符合因果一致性要求,但違反了順序一致性。因?yàn)榉弦蚬恢滦砸?,但違反了順序一致性。因?yàn)镻3和和P4見(jiàn)見(jiàn) 到訪問(wèn)順序不同。到訪問(wèn)順序不同。 例例2 P1: W(x,1) P2: R(x)1 W(x,2) P3: R(x)1 R(x)2 P4: R(x)2 R(x)1 違反了因果一致性。因?yàn)檫`反了因果一致性。因?yàn)镻2讀出了讀出了x=1,所以,所以P1和和P2的兩的兩 個(gè)寫(xiě)操作順序必定為個(gè)寫(xiě)操作順序必定為W(x,1)在)在W(x,2)前。)前。

7、P3的結(jié)果才的結(jié)果才 是正確的。是正確的。 因果一致性在實(shí)現(xiàn)時(shí)必須建立與維護(hù)依賴(lài)圖,這里涉及因果一致性在實(shí)現(xiàn)時(shí)必須建立與維護(hù)依賴(lài)圖,這里涉及 到語(yǔ)義上的以來(lái),是相當(dāng)困難的。到語(yǔ)義上的以來(lái),是相當(dāng)困難的。 PRAM一致性:一個(gè)程序的寫(xiě)操作被其他進(jìn)程以指定一致性:一個(gè)程序的寫(xiě)操作被其他進(jìn)程以指定 的順序見(jiàn)到,不同程序的寫(xiě)操作在不同程序看來(lái)次序可以不的順序見(jiàn)到,不同程序的寫(xiě)操作在不同程序看來(lái)次序可以不 同。同。 例例1 P1: W(x,1) P2: R(x)1 W(x,2) P3: R(x)1 R(x)2 P4: R(x)2 R(x)1 符合符合PRAM一致性的要求。一致性的要求。 PRAM與順序一

8、致性的差別在于,后者雖然為確定語(yǔ)句與順序一致性的差別在于,后者雖然為確定語(yǔ)句 的順序,但要求所有程序遵從共同的順序;而前者則允許不的順序,但要求所有程序遵從共同的順序;而前者則允許不 同程序見(jiàn)到的順序可以不同。同程序見(jiàn)到的順序可以不同。 例例2 在前面的例子中,結(jié)果在前面的例子中,結(jié)果001001是可以接受的。這時(shí),是可以接受的。這時(shí), 各程序看到的順序:各程序看到的順序: 程序程序A a=1 Print(b,c) 程序程序B a=1 Print(a,c) C=1 程序程序C a=1 Print(a,b) b=1 這里只列出本程序感興趣(與自己的打印有關(guān))的語(yǔ)句執(zhí)行次序這里只列出本程序感興趣(

9、與自己的打印有關(guān))的語(yǔ)句執(zhí)行次序 PRAM一致性要求雖然較弱,但它要求程序的寫(xiě)操作必一致性要求雖然較弱,但它要求程序的寫(xiě)操作必 須被其他程序看到(盡管他們的順序可以不同)。實(shí)際上,須被其他程序看到(盡管他們的順序可以不同)。實(shí)際上, 這樣的要求有點(diǎn)過(guò)高,每一個(gè)程序只要能夠看到與自己有關(guān)這樣的要求有點(diǎn)過(guò)高,每一個(gè)程序只要能夠看到與自己有關(guān) 的其他程序的寫(xiě)操作就可以了。的其他程序的寫(xiě)操作就可以了。 弱排序:弱排序只要求對(duì)共享數(shù)據(jù)結(jié)構(gòu)的訪問(wèn)保證順弱排序:弱排序只要求對(duì)共享數(shù)據(jù)結(jié)構(gòu)的訪問(wèn)保證順 序一致性。即:序一致性。即: 對(duì)同步變量(可與信號(hào)量類(lèi)比)的訪問(wèn)是順序一致的;對(duì)同步變量(可與信號(hào)量類(lèi)比)的

10、訪問(wèn)是順序一致的; 在所有以前的寫(xiě)操作結(jié)束之前,不的訪問(wèn)同步變量;在所有以前的寫(xiě)操作結(jié)束之前,不的訪問(wèn)同步變量; 在先前所有的同步變量訪問(wèn)完成以前,不得訪問(wèn)共享數(shù)在先前所有的同步變量訪問(wèn)完成以前,不得訪問(wèn)共享數(shù) 據(jù)。據(jù)。 實(shí)現(xiàn)考慮:實(shí)現(xiàn)考慮: 為保證第一點(diǎn),對(duì)同步變量的訪問(wèn)必須立即廣播。在廣播完成之前,為保證第一點(diǎn),對(duì)同步變量的訪問(wèn)必須立即廣播。在廣播完成之前, 其他程序不的訪問(wèn)別的同步變量;其他程序不的訪問(wèn)別的同步變量; 對(duì)第二點(diǎn),強(qiáng)制要求所有的同步訪問(wèn)開(kāi)始前,已經(jīng)開(kāi)始的所有的寫(xiě)操對(duì)第二點(diǎn),強(qiáng)制要求所有的同步訪問(wèn)開(kāi)始前,已經(jīng)開(kāi)始的所有的寫(xiě)操 作必須完成,在更新共享數(shù)據(jù)后立即進(jìn)行同步,將新值傳

11、遍所有副本;作必須完成,在更新共享數(shù)據(jù)后立即進(jìn)行同步,將新值傳遍所有副本; 第三點(diǎn),保證在讀共享數(shù)據(jù)之前,完成同步操作,以便可以讀到最新第三點(diǎn),保證在讀共享數(shù)據(jù)之前,完成同步操作,以便可以讀到最新 值。值。 做法:做法: 任何程序編制時(shí),在對(duì)共享數(shù)據(jù)寫(xiě)操作后都必須緊接著訪問(wèn)同步變量;任何程序編制時(shí),在對(duì)共享數(shù)據(jù)寫(xiě)操作后都必須緊接著訪問(wèn)同步變量; 任何讀共享數(shù)據(jù)操作前,訪問(wèn)同步變量。任何讀共享數(shù)據(jù)操作前,訪問(wèn)同步變量。 例如:例如: P1:W(x,1) S1 W(y,2)S2 P2: S1 R(x)1 P3: s2 R(y)2 弱一致性的缺陷在于沒(méi)有區(qū)分對(duì)弱一致性的缺陷在于沒(méi)有區(qū)分對(duì) 共享變量的

12、修改與讀取。所以同共享變量的修改與讀取。所以同 步變量的訪問(wèn)即要確保本地寫(xiě)全步變量的訪問(wèn)即要確保本地寫(xiě)全 部完成(所有副本均已更新)還部完成(所有副本均已更新)還 要收集其它計(jì)算機(jī)的寫(xiě)操作信息。要收集其它計(jì)算機(jī)的寫(xiě)操作信息。 釋放一致性:類(lèi)似臨界區(qū),提供釋放一致性:類(lèi)似臨界區(qū),提供“獲取獲取”和和“釋放釋放” 兩類(lèi)原子同步操作。強(qiáng)制:兩類(lèi)原子同步操作。強(qiáng)制: 程序在訪問(wèn)共享變量之前必須成功完成程序在訪問(wèn)共享變量之前必須成功完成“獲取獲取”操作;操作; 完成完成“釋放釋放”操作前,程序的訪問(wèn)操作必須結(jié)束;操作前,程序的訪問(wèn)操作必須結(jié)束; “獲取獲取”、“釋放釋放”應(yīng)保證順序一致性。應(yīng)保證順序一致

13、性。 釋放一致性與用信號(hào)量和釋放一致性與用信號(hào)量和P、V操作來(lái)保證臨界區(qū)訪問(wèn)正操作來(lái)保證臨界區(qū)訪問(wèn)正 確性何其相似乃爾!確性何其相似乃爾! 與此相對(duì)應(yīng),還可以有入口一致性。與此相對(duì)應(yīng),還可以有入口一致性。 小結(jié):小結(jié): 一致性模型可以分為兩類(lèi):一致性模型可以分為兩類(lèi): 不使用同步操作不使用同步操作 嚴(yán)格:所有訪問(wèn)時(shí)間絕對(duì)順序嚴(yán)格:所有訪問(wèn)時(shí)間絕對(duì)順序 順序:所有程序以相同順序檢測(cè)所有順序:所有程序以相同順序檢測(cè)所有 共享訪問(wèn)事件共享訪問(wèn)事件 因果:所有程序以相同順序檢測(cè)所有因果:所有程序以相同順序檢測(cè)所有 因果聯(lián)系事件因果聯(lián)系事件 PRAM:所有程序按預(yù)定次序到來(lái)自一:所有程序按預(yù)定次序到來(lái)自

14、一 臺(tái)機(jī)器的寫(xiě)操作,來(lái)自其他機(jī)臺(tái)機(jī)器的寫(xiě)操作,來(lái)自其他機(jī) 器的寫(xiě)操作順序不必相同器的寫(xiě)操作順序不必相同 最強(qiáng)最強(qiáng) 使用同步操作使用同步操作 弱:同步完成后共享數(shù)據(jù)才保持一致弱:同步完成后共享數(shù)據(jù)才保持一致 釋放:離開(kāi)臨界區(qū)后共享數(shù)據(jù)才保持釋放:離開(kāi)臨界區(qū)后共享數(shù)據(jù)才保持 一致一致 入口:進(jìn)入臨界區(qū)時(shí)共享數(shù)據(jù)保持一致入口:進(jìn)入臨界區(qū)時(shí)共享數(shù)據(jù)保持一致 5.實(shí)現(xiàn)問(wèn)題 維護(hù)副本一致性的兩種策略: 寫(xiě)有效:修改本地?cái)?shù)據(jù)時(shí),將修改值組播所有副本節(jié)寫(xiě)有效:修改本地?cái)?shù)據(jù)時(shí),將修改值組播所有副本節(jié) 點(diǎn),副本節(jié)點(diǎn)據(jù)此修改本地?cái)?shù)據(jù)。點(diǎn),副本節(jié)點(diǎn)據(jù)此修改本地?cái)?shù)據(jù)。 要求修改傳送次序嚴(yán)格保證。要求修改傳送次序嚴(yán)格保證

15、。 每次修改必須傳送修改值,網(wǎng)絡(luò)開(kāi)銷(xiāo)大每次修改必須傳送修改值,網(wǎng)絡(luò)開(kāi)銷(xiāo)大 寫(xiě)無(wú)效:修改本地?cái)?shù)據(jù)前,通知所用副本停止使用寫(xiě)無(wú)效:修改本地?cái)?shù)據(jù)前,通知所用副本停止使用 (無(wú)效),組播完成后才進(jìn)行修改。其他副本需使用前,(無(wú)效),組播完成后才進(jìn)行修改。其他副本需使用前, 向它申請(qǐng)發(fā)送修改值,進(jìn)行修改后再使用。向它申請(qǐng)發(fā)送修改值,進(jìn)行修改后再使用。 多次修改可能一次傳送,但每次需發(fā)送無(wú)效通知。多次修改可能一次傳送,但每次需發(fā)送無(wú)效通知。 2.2.對(duì)分布式文件系統(tǒng)的要求對(duì)分布式文件系統(tǒng)的要求 1. 1. 存取透明性存取透明性 用戶(hù)無(wú)須知道文件的分布,傳統(tǒng)的本地文件操作手段可以直接用于遠(yuǎn)用戶(hù)無(wú)須知道文件的

16、分布,傳統(tǒng)的本地文件操作手段可以直接用于遠(yuǎn) 程文件操作,對(duì)已有的用戶(hù)程序不必刻意進(jìn)行改動(dòng)就可以適應(yīng)分布式程文件操作,對(duì)已有的用戶(hù)程序不必刻意進(jìn)行改動(dòng)就可以適應(yīng)分布式 環(huán)境。環(huán)境。 用戶(hù)無(wú)須注意環(huán)境中其他用戶(hù)是否與自己競(jìng)爭(zhēng)使用同一個(gè)文件,無(wú)須用戶(hù)無(wú)須注意環(huán)境中其他用戶(hù)是否與自己競(jìng)爭(zhēng)使用同一個(gè)文件,無(wú)須 用戶(hù)在自己的程序中對(duì)共享文件數(shù)據(jù)添加并發(fā)控制,并能保持文件數(shù)用戶(hù)在自己的程序中對(duì)共享文件數(shù)據(jù)添加并發(fā)控制,并能保持文件數(shù) 據(jù)的完整性。據(jù)的完整性。 2.2.位置透明性位置透明性 用戶(hù)看到的是全局的文件名空間,文件或文件組在機(jī)器間遷移和重新用戶(hù)看到的是全局的文件名空間,文件或文件組在機(jī)器間遷移和重新

17、 定位時(shí)不必改變其路徑,用戶(hù)程序無(wú)須改動(dòng)。無(wú)論用戶(hù)處于哪個(gè)節(jié)點(diǎn),定位時(shí)不必改變其路徑,用戶(hù)程序無(wú)須改動(dòng)。無(wú)論用戶(hù)處于哪個(gè)節(jié)點(diǎn), 看到的是相同的文件名空間。出于可靠性考慮,同一個(gè)文件可能在不看到的是相同的文件名空間。出于可靠性考慮,同一個(gè)文件可能在不 同的節(jié)點(diǎn)上保留副本,副本的使用對(duì)用戶(hù)無(wú)關(guān),用戶(hù)意識(shí)不到當(dāng)前使同的節(jié)點(diǎn)上保留副本,副本的使用對(duì)用戶(hù)無(wú)關(guān),用戶(hù)意識(shí)不到當(dāng)前使 用的是哪一個(gè)副本用的是哪一個(gè)副本 3. 3. 故障透明性故障透明性 在文件服務(wù)執(zhí)行過(guò)程中發(fā)生故障并修復(fù)(例如文件服務(wù)器故障,啟用在文件服務(wù)執(zhí)行過(guò)程中發(fā)生故障并修復(fù)(例如文件服務(wù)器故障,啟用 備用服務(wù)器;網(wǎng)絡(luò)傳輸故障,需要重發(fā)等)

18、對(duì)用戶(hù)屏蔽。備用服務(wù)器;網(wǎng)絡(luò)傳輸故障,需要重發(fā)等)對(duì)用戶(hù)屏蔽。 4. 4. 性能透明性性能透明性 用戶(hù)不會(huì)感到由于遠(yuǎn)程存取文件而帶來(lái)性能上的顯著降低。此外,還用戶(hù)不會(huì)感到由于遠(yuǎn)程存取文件而帶來(lái)性能上的顯著降低。此外,還 應(yīng)該滿(mǎn)足硬件和本地操作系統(tǒng)的異構(gòu)性,客戶(hù)端和服務(wù)器端的軟件可以應(yīng)該滿(mǎn)足硬件和本地操作系統(tǒng)的異構(gòu)性,客戶(hù)端和服務(wù)器端的軟件可以 在不同的硬件和本地操作系統(tǒng)上運(yùn)行。因此接口定義必須良好。在不同的硬件和本地操作系統(tǒng)上運(yùn)行。因此接口定義必須良好。 5. 5. 可擴(kuò)展性可擴(kuò)展性 系統(tǒng)必須具備增量擴(kuò)展的能力,以適應(yīng)負(fù)載和網(wǎng)絡(luò)擴(kuò)充的需要。系統(tǒng)必須具備增量擴(kuò)展的能力,以適應(yīng)負(fù)載和網(wǎng)絡(luò)擴(kuò)充的需要

19、。 需要指出的是,目前這個(gè)問(wèn)題還在研究和探討中,還沒(méi)有一個(gè)系統(tǒng)完全需要指出的是,目前這個(gè)問(wèn)題還在研究和探討中,還沒(méi)有一個(gè)系統(tǒng)完全 實(shí)現(xiàn)這種能力。特別是系統(tǒng)擴(kuò)展到包含大量有源節(jié)點(diǎn)的網(wǎng)絡(luò)時(shí),這個(gè)問(wèn)實(shí)現(xiàn)這種能力。特別是系統(tǒng)擴(kuò)展到包含大量有源節(jié)點(diǎn)的網(wǎng)絡(luò)時(shí),這個(gè)問(wèn) 題就更加突出。題就更加突出。 6.6. 支持細(xì)粒度數(shù)據(jù)存取支持細(xì)粒度數(shù)據(jù)存取 盡可能支持用戶(hù)對(duì)細(xì)粒度數(shù)據(jù)的訪問(wèn)。這要求制定和實(shí)現(xiàn)更加完備盡可能支持用戶(hù)對(duì)細(xì)粒度數(shù)據(jù)的訪問(wèn)。這要求制定和實(shí)現(xiàn)更加完備 的數(shù)據(jù)請(qǐng)求協(xié)議。的數(shù)據(jù)請(qǐng)求協(xié)議。 這個(gè)問(wèn)題在空間數(shù)據(jù)分布式處理系統(tǒng)中更為突出。這個(gè)問(wèn)題在空間數(shù)據(jù)分布式處理系統(tǒng)中更為突出。 7. 7. 網(wǎng)絡(luò)分割適應(yīng)

20、性網(wǎng)絡(luò)分割適應(yīng)性 盡可能適應(yīng)網(wǎng)絡(luò)動(dòng)態(tài)分割的情形,避免由于網(wǎng)絡(luò)的分割和重組引起盡可能適應(yīng)網(wǎng)絡(luò)動(dòng)態(tài)分割的情形,避免由于網(wǎng)絡(luò)的分割和重組引起 系統(tǒng)的問(wèn)題,影響用戶(hù)的使用。系統(tǒng)的問(wèn)題,影響用戶(hù)的使用。 3.3.分布式文件系統(tǒng)的組成分布式文件系統(tǒng)的組成 用戶(hù)程序用戶(hù)程序用戶(hù)程序用戶(hù)程序用戶(hù)程序用戶(hù)程序 文件系統(tǒng)組件文件系統(tǒng)組件 客客 戶(hù)戶(hù) 組組 件件 展展 開(kāi)開(kāi) 文文 件件 服服 務(wù)務(wù) 目錄服務(wù)目錄服務(wù) 目錄服務(wù)目錄服務(wù)RPC接口接口 用戶(hù)程序接口用戶(hù)程序接口 展開(kāi)文件展開(kāi)文件RPC接口接口 其中:其中: 展開(kāi)文件服務(wù)提供了一個(gè)遠(yuǎn)程調(diào)用接口供用戶(hù)程序使用。展開(kāi)文件服務(wù)提供了一個(gè)遠(yuǎn)程調(diào)用接口供用戶(hù)程序使用

21、。 它與目錄服務(wù)結(jié)合起來(lái),為文件的存取提供一系列復(fù)雜的操它與目錄服務(wù)結(jié)合起來(lái),為文件的存取提供一系列復(fù)雜的操 作。作。 客戶(hù)組件則將展開(kāi)文件服務(wù)和目錄服務(wù)所提供的功能組織客戶(hù)組件則將展開(kāi)文件服務(wù)和目錄服務(wù)所提供的功能組織 和集成在一起,輔以統(tǒng)一的接口,向用戶(hù)提供單一的編程接和集成在一起,輔以統(tǒng)一的接口,向用戶(hù)提供單一的編程接 口,是用戶(hù)就向使用傳統(tǒng)文件系統(tǒng)那樣來(lái)使用分布式文件系口,是用戶(hù)就向使用傳統(tǒng)文件系統(tǒng)那樣來(lái)使用分布式文件系 統(tǒng)。統(tǒng)。 1. 展開(kāi)文件服務(wù)展開(kāi)文件服務(wù) 展開(kāi)文件服務(wù)主要實(shí)現(xiàn)對(duì)文件內(nèi)容的操作。在展開(kāi)文件展開(kāi)文件服務(wù)主要實(shí)現(xiàn)對(duì)文件內(nèi)容的操作。在展開(kāi)文件 服務(wù)中,文件通過(guò)標(biāo)識(shí)符來(lái)識(shí)

22、別。通常,文件表示符用一個(gè)服務(wù)中,文件通過(guò)標(biāo)識(shí)符來(lái)識(shí)別。通常,文件表示符用一個(gè) 長(zhǎng)整數(shù)來(lái)表示,以便保證分布式系統(tǒng)中所有文件表示的唯一長(zhǎng)整數(shù)來(lái)表示,以便保證分布式系統(tǒng)中所有文件表示的唯一 性。文件標(biāo)識(shí)符在創(chuàng)建文件和打開(kāi)時(shí)產(chǎn)生并向用戶(hù)返回,與性。文件標(biāo)識(shí)符在創(chuàng)建文件和打開(kāi)時(shí)產(chǎn)生并向用戶(hù)返回,與 傳統(tǒng)方式一樣。傳統(tǒng)方式一樣。 展開(kāi)文件服務(wù)的模型根據(jù)文件系統(tǒng)設(shè)計(jì)的要求來(lái)組織,展開(kāi)文件服務(wù)的模型根據(jù)文件系統(tǒng)設(shè)計(jì)的要求來(lái)組織, 提供一個(gè)簡(jiǎn)單通用的操作集合。原則上,這些操作及和與傳提供一個(gè)簡(jiǎn)單通用的操作集合。原則上,這些操作及和與傳 統(tǒng)的文件系統(tǒng)提供的服務(wù)并無(wú)兩樣。統(tǒng)的文件系統(tǒng)提供的服務(wù)并無(wú)兩樣。 在分布式

23、環(huán)境中,傳統(tǒng)的文件控制塊內(nèi)容也發(fā)生了變化,在分布式環(huán)境中,傳統(tǒng)的文件控制塊內(nèi)容也發(fā)生了變化, 文件的保護(hù)也是由文件展開(kāi)服務(wù)來(lái)實(shí)現(xiàn)的。其實(shí)現(xiàn)技術(shù)與傳文件的保護(hù)也是由文件展開(kāi)服務(wù)來(lái)實(shí)現(xiàn)的。其實(shí)現(xiàn)技術(shù)與傳 統(tǒng)方法一樣,例如通過(guò)存取控制表、存取域等。統(tǒng)方法一樣,例如通過(guò)存取控制表、存取域等。 文文 件件 名名 文文 件件 長(zhǎng)長(zhǎng) 度度 創(chuàng)創(chuàng) 建建 時(shí)時(shí) 間間 郵郵 戳戳 讀讀 時(shí)時(shí) 間間 郵郵 戳戳 寫(xiě)寫(xiě) 時(shí)時(shí) 間間 郵郵 戳戳 屬屬 性性 時(shí)時(shí) 間間 郵郵 戳戳 用用 戶(hù)戶(hù) 計(jì)計(jì) 數(shù)數(shù) 文文 件件 所所 有有 者者 文文 件件 類(lèi)類(lèi) 型型 存存 取取 權(quán)權(quán) 限限 表表 文文 件件 控控 制制 快快 展

24、開(kāi)文件服務(wù)負(fù)責(zé)維護(hù)其中文件長(zhǎng)度、創(chuàng)建時(shí)間郵戳、讀展開(kāi)文件服務(wù)負(fù)責(zé)維護(hù)其中文件長(zhǎng)度、創(chuàng)建時(shí)間郵戳、讀 時(shí)間郵戳、寫(xiě)時(shí)間郵戳、屬性時(shí)間郵戳等。而另外的一些時(shí)間郵戳、寫(xiě)時(shí)間郵戳、屬性時(shí)間郵戳等。而另外的一些 屬性則由目錄服務(wù)來(lái)維護(hù)。文件展開(kāi)服務(wù)提供某些訪問(wèn)和屬性則由目錄服務(wù)來(lái)維護(hù)。文件展開(kāi)服務(wù)提供某些訪問(wèn)和 修改文件屬性的原語(yǔ),供目錄服務(wù)使用。也允許用戶(hù)自己修改文件屬性的原語(yǔ),供目錄服務(wù)使用。也允許用戶(hù)自己 定義部分屬性。定義部分屬性。 文件的保護(hù)也是由文件展開(kāi)服務(wù)來(lái)實(shí)現(xiàn)的。其實(shí)現(xiàn)技術(shù)與文件的保護(hù)也是由文件展開(kāi)服務(wù)來(lái)實(shí)現(xiàn)的。其實(shí)現(xiàn)技術(shù)與 傳統(tǒng)方法一樣,例如通過(guò)存取控制表、存取域等。傳統(tǒng)方法一樣,例如

25、通過(guò)存取控制表、存取域等。 兩類(lèi)文件展開(kāi)服務(wù)兩類(lèi)文件展開(kāi)服務(wù) 客客 戶(hù)機(jī)戶(hù)機(jī) 服務(wù)器服務(wù)器 下載下載 上載上載 在客戶(hù)機(jī)上修改在客戶(hù)機(jī)上修改 老文件老文件 新文件新文件 上載上載/ /下載模式下載模式 客客 戶(hù)機(jī)戶(hù)機(jī) 服務(wù)器服務(wù)器 遠(yuǎn)程訪問(wèn)模式遠(yuǎn)程訪問(wèn)模式 在上載在上載/ /下載模式,文件展開(kāi)服務(wù)只提供讀文件和寫(xiě)文件下載模式,文件展開(kāi)服務(wù)只提供讀文件和寫(xiě)文件 兩種方式服務(wù),即下載兩種方式服務(wù),即下載/ /上在整個(gè)文件。概念比較簡(jiǎn)單,接上在整個(gè)文件。概念比較簡(jiǎn)單,接 口非常簡(jiǎn)潔,服務(wù)器端實(shí)現(xiàn)也方便。但客戶(hù)端必須具備較大口非常簡(jiǎn)潔,服務(wù)器端實(shí)現(xiàn)也方便。但客戶(hù)端必須具備較大 的空間以便存放整個(gè)文件,

26、客戶(hù)端應(yīng)該具有復(fù)雜的文件訪問(wèn)的空間以便存放整個(gè)文件,客戶(hù)端應(yīng)該具有復(fù)雜的文件訪問(wèn) 功能,如讀、寫(xiě)、偏移植移動(dòng)等等。而它們是本地文件系統(tǒng)功能,如讀、寫(xiě)、偏移植移動(dòng)等等。而它們是本地文件系統(tǒng) 的事。而且,當(dāng)客戶(hù)只需要文件的一小部分時(shí),這種方式顯的事。而且,當(dāng)客戶(hù)只需要文件的一小部分時(shí),這種方式顯 然不夠經(jīng)濟(jì),加大了網(wǎng)絡(luò)的壓力和用戶(hù)空間。然不夠經(jīng)濟(jì),加大了網(wǎng)絡(luò)的壓力和用戶(hù)空間。 在遠(yuǎn)程訪問(wèn)模式,展開(kāi)文件服務(wù)提供在遠(yuǎn)程訪問(wèn)模式,展開(kāi)文件服務(wù)提供RPCRPC接口包括打開(kāi)文接口包括打開(kāi)文 件、關(guān)閉文件、度、寫(xiě)、修改偏移植、檢查件、關(guān)閉文件、度、寫(xiě)、修改偏移植、檢查/ /修改屬性等等,修改屬性等等, 這些都

27、在服務(wù)器端實(shí)現(xiàn)。顯然這種方式實(shí)現(xiàn)復(fù)雜,但運(yùn)行開(kāi)這些都在服務(wù)器端實(shí)現(xiàn)。顯然這種方式實(shí)現(xiàn)復(fù)雜,但運(yùn)行開(kāi) 銷(xiāo)(網(wǎng)絡(luò)開(kāi)銷(xiāo))較省,只需要傳輸要求的文件部分,在客戶(hù)銷(xiāo)(網(wǎng)絡(luò)開(kāi)銷(xiāo))較省,只需要傳輸要求的文件部分,在客戶(hù) 端也不必開(kāi)辟較大的空間。端也不必開(kāi)辟較大的空間。 2. 文件目錄服務(wù)文件目錄服務(wù) 目錄服務(wù)提供了文件的創(chuàng)建、刪除、命名、改名以及從一個(gè)目錄下移目錄服務(wù)提供了文件的創(chuàng)建、刪除、命名、改名以及從一個(gè)目錄下移 動(dòng)到另一個(gè)目錄下等操作。這些并不涉及文件體的操作,也不涉及文件動(dòng)到另一個(gè)目錄下等操作。這些并不涉及文件體的操作,也不涉及文件 是整體傳輸還是遠(yuǎn)程訪問(wèn)的問(wèn)題。這里,關(guān)鍵的問(wèn)題是實(shí)現(xiàn)文件名到唯是

28、整體傳輸還是遠(yuǎn)程訪問(wèn)的問(wèn)題。這里,關(guān)鍵的問(wèn)題是實(shí)現(xiàn)文件名到唯 一標(biāo)識(shí)符的轉(zhuǎn)換。一標(biāo)識(shí)符的轉(zhuǎn)換。 為了完成這種轉(zhuǎn)換,設(shè)立了目錄文件。目錄文件實(shí)際上是文件名到唯為了完成這種轉(zhuǎn)換,設(shè)立了目錄文件。目錄文件實(shí)際上是文件名到唯 一標(biāo)識(shí)符的對(duì)照表,組織成文件的形式,所以目錄文件也有自己的文件一標(biāo)識(shí)符的對(duì)照表,組織成文件的形式,所以目錄文件也有自己的文件 標(biāo)識(shí)符。目錄允許有子目錄,這樣用戶(hù)可以將有關(guān)的文件組合到一個(gè)目標(biāo)識(shí)符。目錄允許有子目錄,這樣用戶(hù)可以將有關(guān)的文件組合到一個(gè)目 錄下。同樣,目錄服務(wù)提供的文件服務(wù)對(duì)象也包括目錄文件。通常,分錄下。同樣,目錄服務(wù)提供的文件服務(wù)對(duì)象也包括目錄文件。通常,分 布式

29、文件系統(tǒng)的目錄文件組織成樹(shù)型結(jié)構(gòu),從而使整個(gè)文件系統(tǒng)呈現(xiàn)出布式文件系統(tǒng)的目錄文件組織成樹(shù)型結(jié)構(gòu),從而使整個(gè)文件系統(tǒng)呈現(xiàn)出 樹(shù)型結(jié)構(gòu)。不少系統(tǒng)允許目錄之間建立指針連接(象樹(shù)型結(jié)構(gòu)。不少系統(tǒng)允許目錄之間建立指針連接(象UNIXUNIX的的LinkLink),這),這 樣,樹(shù)型結(jié)構(gòu)就變成了樣,樹(shù)型結(jié)構(gòu)就變成了“格格”。這在分布式系統(tǒng)中尤其重要。在這里,。這在分布式系統(tǒng)中尤其重要。在這里, 每個(gè)目錄中又一個(gè)指針計(jì)數(shù),表示指向該目錄的連接數(shù)。每個(gè)目錄中又一個(gè)指針計(jì)數(shù),表示指向該目錄的連接數(shù)。 A BC 2 0 1 計(jì)算機(jī)計(jì)算機(jī)1 DE 11 計(jì)算機(jī)計(jì)算機(jī)2 圖中,右上角的數(shù)字圖中,右上角的數(shù)字 是指向該

30、文件的目錄是指向該文件的目錄 數(shù)量數(shù)量 兩臺(tái)計(jì)算機(jī)中的目錄兩臺(tái)計(jì)算機(jī)中的目錄 問(wèn)題:?jiǎn)栴}:是否每一個(gè)文件都是整個(gè)目錄樹(shù)可見(jiàn)的?進(jìn)而,如果是否每一個(gè)文件都是整個(gè)目錄樹(shù)可見(jiàn)的?進(jìn)而,如果 系統(tǒng)中有多個(gè)服務(wù)器(顯然每個(gè)服務(wù)器上都有一顆獨(dú)立系統(tǒng)中有多個(gè)服務(wù)器(顯然每個(gè)服務(wù)器上都有一顆獨(dú)立 的目錄樹(shù)),系統(tǒng)是否存在一個(gè)全局的根目錄?再進(jìn)一的目錄樹(shù)),系統(tǒng)是否存在一個(gè)全局的根目錄?再進(jìn)一 步,能否知道每個(gè)文件所在的計(jì)算機(jī)名?步,能否知道每個(gè)文件所在的計(jì)算機(jī)名? 回答:應(yīng)該讓每一臺(tái)系統(tǒng)中的計(jì)算機(jī)知道系統(tǒng)中所有的文件;回答:應(yīng)該讓每一臺(tái)系統(tǒng)中的計(jì)算機(jī)知道系統(tǒng)中所有的文件; 如果應(yīng)用需要,應(yīng)該知道它所需要的文件

31、所在的機(jī)器名。如果應(yīng)用需要,應(yīng)該知道它所需要的文件所在的機(jī)器名。 但是,不一定需要存在一個(gè)全局的根目錄。但是,不一定需要存在一個(gè)全局的根目錄。 辦法辦法: 1.: 1. 文件命名采用文件命名采用 機(jī)器名機(jī)器名+ 文件路徑名文件路徑名 2.2. 將遠(yuǎn)程文件安裝到本機(jī)的分層文件目錄結(jié)構(gòu)中將遠(yuǎn)程文件安裝到本機(jī)的分層文件目錄結(jié)構(gòu)中 3.3. 存在并維護(hù)一個(gè)在所有計(jì)算機(jī)上單名字空間存在并維護(hù)一個(gè)在所有計(jì)算機(jī)上單名字空間 4 4 分布式系統(tǒng)中地理空間數(shù)據(jù)一致性保障分布式系統(tǒng)中地理空間數(shù)據(jù)一致性保障 1. 1. 全局目錄的組織全局目錄的組織 反映系統(tǒng)全部空間數(shù)據(jù)的全局?jǐn)?shù)據(jù)目錄反映系統(tǒng)全部空間數(shù)據(jù)的全局?jǐn)?shù)據(jù)目錄 反映系統(tǒng)全部節(jié)點(diǎn)的全局節(jié)點(diǎn)目錄(含負(fù)載)反映系統(tǒng)全部節(jié)點(diǎn)的全局節(jié)點(diǎn)目錄(含負(fù)載) 2. 2. 全局?jǐn)?shù)據(jù)目錄全局?jǐn)?shù)據(jù)目錄 采用基于空間位置的數(shù)據(jù)定

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論