版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Chapter 4 Naming分布式計算系統(tǒng)分布式計算系統(tǒng)Distributed Computing SystemDistributed Computing System南京大學(xué)軟件學(xué)院南京大學(xué)軟件學(xué)院葛季棟葛季棟Room 924Room 9242命名命名n 名稱在所有計算機系統(tǒng)中都起著重要的作用。它們用來共享名稱在所有計算機系統(tǒng)中都起著重要的作用。它們用來共享資源、唯一標識實體、指向位置等。資源、唯一標識實體、指向位置等。命名的一個重要結(jié)果是命名的一個重要結(jié)果是可以把名稱解析為它所指向的實體可以把名稱解析為它所指向的實體。因而,名稱解析允許進。因而,名稱解析允許進程訪問命名的實體。要解析名
2、稱,需要實現(xiàn)命名系統(tǒng)。分布程訪問命名的實體。要解析名稱,需要實現(xiàn)命名系統(tǒng)。分布式系統(tǒng)中的命名系統(tǒng)與非分布式系統(tǒng)中的命名之間的區(qū)別在式系統(tǒng)中的命名系統(tǒng)與非分布式系統(tǒng)中的命名之間的區(qū)別在于命名系統(tǒng)實現(xiàn)的方式。于命名系統(tǒng)實現(xiàn)的方式。n 在分布式系統(tǒng)中,命名系統(tǒng)的實現(xiàn)本身通常是分布在多臺計在分布式系統(tǒng)中,命名系統(tǒng)的實現(xiàn)本身通常是分布在多臺計算機上的。該分布是如何完成的對命名系統(tǒng)的效率和可擴展算機上的。該分布是如何完成的對命名系統(tǒng)的效率和可擴展性起著關(guān)鍵的作用。性起著關(guān)鍵的作用。 3命名命名n 分布式系統(tǒng)中使用名稱的三種不同的重要方法。分布式系統(tǒng)中使用名稱的三種不同的重要方法。 n 首先,在討論一些與命
3、名有關(guān)的常見問題之后,將進一步研首先,在討論一些與命名有關(guān)的常見問題之后,將進一步研究易于理解的名稱的組織和實現(xiàn)。這樣的名稱的典型例子包究易于理解的名稱的組織和實現(xiàn)。這樣的名稱的典型例子包括用于文件系統(tǒng)和萬維網(wǎng)的名稱。建立世界范圍的、可擴展括用于文件系統(tǒng)和萬維網(wǎng)的名稱。建立世界范圍的、可擴展的命名系統(tǒng)是這類名稱主要關(guān)注的問題。的命名系統(tǒng)是這類名稱主要關(guān)注的問題。 4命名命名n 其次,其次,名稱用來定位移動的實體名稱用來定位移動的實體。實踐表明,用于建立易于理。實踐表明,用于建立易于理解的名稱的命名系統(tǒng)并不特別適合支持大量移動實體解的名稱的命名系統(tǒng)并不特別適合支持大量移動實體( (這些實體這些實
4、體還可能分散在大規(guī)模的網(wǎng)絡(luò)中還可能分散在大規(guī)模的網(wǎng)絡(luò)中) )。還需要其他的命名機制,例如。還需要其他的命名機制,例如用于移動電話的機制,在這種命名機制中,名稱是與位置無關(guān)用于移動電話的機制,在這種命名機制中,名稱是與位置無關(guān)的標識符。的標識符。 n 第三,第三,名稱的組織名稱的組織。特別要指出的是,。特別要指出的是,不再被引用的名稱不再被引用的名稱( (因此因此不能再被定位和訪問不能再被定位和訪問) )應(yīng)該自動被刪除應(yīng)該自動被刪除。該主題也稱為。該主題也稱為垃圾收集垃圾收集,起源于一些編程語言中。但是,隨著大規(guī)模基于對象的分布,起源于一些編程語言中。但是,隨著大規(guī)模基于對象的分布式系統(tǒng)的引入,
5、自動收集不被引用的對象變得愈加重要了。式系統(tǒng)的引入,自動收集不被引用的對象變得愈加重要了。 5Outlinen 實體的命名實體的命名n 移動實體的定位移動實體的定位n 刪除無引用的實體刪除無引用的實體6名稱、標識和地址名稱、標識和地址n 分布式系統(tǒng)中的名稱是由位或者字符所組成的串,分布式系統(tǒng)中的名稱是由位或者字符所組成的串,它用來指向一個實體。分布式系統(tǒng)中的實體幾乎可它用來指向一個實體。分布式系統(tǒng)中的實體幾乎可以是任何事物。典型的實例包括主機、打印機、磁以是任何事物。典型的實例包括主機、打印機、磁盤和文件等資源。通常得到明確命名的眾所周知的盤和文件等資源。通常得到明確命名的眾所周知的其他實體實
6、例還有進程、用戶、郵箱、新聞組、其他實體實例還有進程、用戶、郵箱、新聞組、WebWeb頁面、圖形窗口、消息、網(wǎng)絡(luò)連接等。頁面、圖形窗口、消息、網(wǎng)絡(luò)連接等。 7名稱、標識和地址名稱、標識和地址n 如果要對實體進行操作,就需要訪問實體,因此需要一個訪如果要對實體進行操作,就需要訪問實體,因此需要一個訪問點問點(access point)(access point)。訪問點是分布式系統(tǒng)中另一種特殊類型。訪問點是分布式系統(tǒng)中另一種特殊類型的實體。訪問點的名稱稱為地址。一個實體的訪問點的地址的實體。訪問點的名稱稱為地址。一個實體的訪問點的地址也簡稱為該實體的地址。也簡稱為該實體的地址。n 一個實體可以提
7、供多個訪問點。例如,電話號碼可以視為一一個實體可以提供多個訪問點。例如,電話號碼可以視為一個人的訪問點,其中電話號碼相當(dāng)于地址。實際上,如今許個人的訪問點,其中電話號碼相當(dāng)于地址。實際上,如今許多人都擁有多個電話號碼,每個號碼都相當(dāng)于可以聯(lián)系到他多人都擁有多個電話號碼,每個號碼都相當(dāng)于可以聯(lián)系到他們的一個訪問點。們的一個訪問點。n 在分布式系統(tǒng)中,訪問點的一個典型實例就是運行某個特定在分布式系統(tǒng)中,訪問點的一個典型實例就是運行某個特定服務(wù)器的主機,可以通過服務(wù)器的主機,可以通過IPIP地址和端口號地址和端口號( (即服務(wù)器的傳輸層即服務(wù)器的傳輸層地址地址) )的組合來構(gòu)成其地址。的組合來構(gòu)成其
8、地址。 8名稱、標識和地址名稱、標識和地址n 一個實體經(jīng)過一定的時間后可能改變其訪問點。例如,當(dāng)一臺一個實體經(jīng)過一定的時間后可能改變其訪問點。例如,當(dāng)一臺移動式計算機移動到另一個地方時,通常會為它分配一個與以移動式計算機移動到另一個地方時,通常會為它分配一個與以前不同的前不同的IPIP地址。同樣,一個人到達另一個城市或國家后,通地址。同樣,一個人到達另一個城市或國家后,通常也需要改變電話號碼。與此類似,變換工作或改變常也需要改變電話號碼。與此類似,變換工作或改變InternetInternet服服務(wù)器提供商務(wù)器提供商ISPISP都意味著要改變電子郵件地址。都意味著要改變電子郵件地址。 n 因此
9、,地址就是一種特殊類型的名稱:它指向?qū)嶓w的訪問點。因此,地址就是一種特殊類型的名稱:它指向?qū)嶓w的訪問點。因為訪問點是與實體緊密關(guān)聯(lián)的,所以使用訪問點的地址作為因為訪問點是與實體緊密關(guān)聯(lián)的,所以使用訪問點的地址作為相關(guān)實體的常規(guī)名稱似乎是非常方便的。但是,在實際中卻很相關(guān)實體的常規(guī)名稱似乎是非常方便的。但是,在實際中卻很少這樣做。少這樣做。 9名稱、標識和地址名稱、標識和地址n 將地址作為一種特殊類型的名稱進行處理有許多益將地址作為一種特殊類型的名稱進行處理有許多益處。例如,定期地重新組織一個分布式系統(tǒng),使一處。例如,定期地重新組織一個分布式系統(tǒng),使一臺特定服務(wù)器臺特定服務(wù)器( (例如一臺處理例
10、如一臺處理FTPFTP請求的服務(wù)器請求的服務(wù)器) )運行運行于與以前不同的主機上是很常見的工作。而該服務(wù)于與以前不同的主機上是很常見的工作。而該服務(wù)器以前所在的計算機可能會被重新指定一個完全不器以前所在的計算機可能會被重新指定一個完全不同的服務(wù)器同的服務(wù)器( (例如本地文件系統(tǒng)的備份服務(wù)器例如本地文件系統(tǒng)的備份服務(wù)器) )。換句。換句話說,一個實體很可能會改變訪問點,或者一個訪話說,一個實體很可能會改變訪問點,或者一個訪問點可能會重新分配給不同的實體。問點可能會重新分配給不同的實體。 10名稱、標識和地址名稱、標識和地址n 除了地址之外,還有其他類型的名稱值得特別注意,例如用來除了地址之外,還
11、有其他類型的名稱值得特別注意,例如用來唯一標識實體的名稱。真正的標識符是具有以下屬性的名稱:唯一標識實體的名稱。真正的標識符是具有以下屬性的名稱: 一個標識符最多指向一個實體;一個標識符最多指向一個實體; 每個實體最多由一個標識符指向;每個實體最多由一個標識符指向; 一個標識符始終指向同一個實體一個標識符始終指向同一個實體( (也就是說,標識符永遠不也就是說,標識符永遠不會重新使用會重新使用) )n 通過使用標識符,明確地指向某個實體變得更加容易。例如,通過使用標識符,明確地指向某個實體變得更加容易。例如,假設(shè)兩個進程都通過標識符指向一個實體。如果要檢查兩個進假設(shè)兩個進程都通過標識符指向一個實
12、體。如果要檢查兩個進程是否指向同一實體,那么檢查兩個標識符是否相等就可以了程是否指向同一實體,那么檢查兩個標識符是否相等就可以了。如果這兩個進程使用的是常規(guī)的非標識性名稱,那么僅僅做。如果這兩個進程使用的是常規(guī)的非標識性名稱,那么僅僅做這樣的檢驗是不夠的。例如,名字這樣的檢驗是不夠的。例如,名字“John SmithJohn Smith”不能作為指向不能作為指向某個人的唯一引用。某個人的唯一引用。 11名稱、標識和地址名稱、標識和地址n 同樣,如果一個地址可以重新分配給不同的實體,那么我們就同樣,如果一個地址可以重新分配給不同的實體,那么我們就不能使用地址作為標識符??紤]電話號碼的使用,一個號
13、碼通不能使用地址作為標識符。考慮電話號碼的使用,一個號碼通常指向一個人或公司,這是相當(dāng)穩(wěn)定的。但是不能使用電話號常指向一個人或公司,這是相當(dāng)穩(wěn)定的。但是不能使用電話號碼作為一個標識符,因為經(jīng)過一段時間電話號碼可能會重新分碼作為一個標識符,因為經(jīng)過一段時間電話號碼可能會重新分配。因此,配。因此,BobBob的新面包店可能會長期接到找的新面包店可能會長期接到找AliceAlice的舊五金店的的舊五金店的電話。在這種情況下,最好讓電話。在這種情況下,最好讓AliceAlice使用一個真正的標識符,而使用一個真正的標識符,而不是使用她的電話號碼。不是使用她的電話號碼。 n 地址和標識符是兩個重要的名稱
14、類型,每個類型用于不同的目地址和標識符是兩個重要的名稱類型,每個類型用于不同的目的。在許多計算機系統(tǒng)中,地址和標識符僅使用計算機可讀的的。在許多計算機系統(tǒng)中,地址和標識符僅使用計算機可讀的形式形式( (即位串的形式即位串的形式) )來表示。例如,以太網(wǎng)地址就是任意的來表示。例如,以太網(wǎng)地址就是任意的4848位位位串。同樣,內(nèi)存地址通常用位串。同樣,內(nèi)存地址通常用3232位或者位或者6464位位串來表示。位位串來表示。 12名稱空間名稱空間n 分布式系統(tǒng)中的名稱都組織在通常所說的名稱空間中。名稱分布式系統(tǒng)中的名稱都組織在通常所說的名稱空間中。名稱空間可以表示為帶有標注的具有兩種類型的節(jié)點的有向圖
15、??臻g可以表示為帶有標注的具有兩種類型的節(jié)點的有向圖。葉節(jié)點葉節(jié)點(leaf node)(leaf node)表示一個命名的實體,其性質(zhì)是不具有分表示一個命名的實體,其性質(zhì)是不具有分支邊。葉節(jié)點通常存儲于它所表示的實體的信息支邊。葉節(jié)點通常存儲于它所表示的實體的信息( (例如實體的例如實體的地址地址) ),以便客戶訪問該實體。另外,葉節(jié)點還可以存儲實體,以便客戶訪問該實體。另外,葉節(jié)點還可以存儲實體的狀態(tài)。例如在文件系統(tǒng)中,葉節(jié)點實際包含它所代表的完的狀態(tài)。例如在文件系統(tǒng)中,葉節(jié)點實際包含它所代表的完整文件。整文件。n 與葉節(jié)點相比,與葉節(jié)點相比,目錄節(jié)點目錄節(jié)點(directory node
16、)(directory node)具有一定數(shù)量的分具有一定數(shù)量的分支邊,每條邊用一個名稱來標注,如圖支邊,每條邊用一個名稱來標注,如圖4.14.1所示。命名圖中的所示。命名圖中的每個節(jié)點都認為是分布式系統(tǒng)中的一個實體,具有一個相關(guān)每個節(jié)點都認為是分布式系統(tǒng)中的一個實體,具有一個相關(guān)聯(lián)的標識符。聯(lián)的標識符。目錄節(jié)點用于存儲一個表,其中每條分支邊用目錄節(jié)點用于存儲一個表,其中每條分支邊用一個一個( (邊標簽邊標簽, ,節(jié)點標識符節(jié)點標識符) )對來表示對來表示。這樣的表稱為目錄表。這樣的表稱為目錄表。 13名稱空間名稱空間v 圖圖4.1 4.1 具有單個根節(jié)點的一般命名圖具有單個根節(jié)點的一般命名圖
17、 14名稱空間名稱空間n 圖圖4.14.1所示的命名圖具有一個特殊的節(jié)點,即所示的命名圖具有一個特殊的節(jié)點,即n0n0,它只具有分支,它只具有分支邊,而沒有進入邊。這樣的節(jié)點稱為命名圖中的根邊,而沒有進入邊。這樣的節(jié)點稱為命名圖中的根( (節(jié)點節(jié)點) )。盡。盡管命名圖可以含有多個根節(jié)點,但為了簡單起見,許多命名系管命名圖可以含有多個根節(jié)點,但為了簡單起見,許多命名系統(tǒng)只含有一個根節(jié)點。命名圖中的每個路徑可以通過路徑中的統(tǒng)只含有一個根節(jié)點。命名圖中的每個路徑可以通過路徑中的邊的標簽序列來指向,例如:邊的標簽序列來指向,例如: nN: label-1, label-2, N: ., label-
18、nn 其中其中NN指向路徑中的第一個節(jié)點。這樣的序列稱為路徑名指向路徑中的第一個節(jié)點。這樣的序列稱為路徑名(path (path name)name)。如果路徑名中的第一個節(jié)點是命名圖的根,那么該路。如果路徑名中的第一個節(jié)點是命名圖的根,那么該路徑名稱為絕對路徑名,否則,稱為相對路徑名。徑名稱為絕對路徑名,否則,稱為相對路徑名。 15名稱空間名稱空間n 名稱始終僅相對于目錄節(jié)點進行定義。在這個意義上,絕對名稱始終僅相對于目錄節(jié)點進行定義。在這個意義上,絕對名稱這個術(shù)語很容易使人誤解。同樣,全局和局部名稱之間名稱這個術(shù)語很容易使人誤解。同樣,全局和局部名稱之間的差異有時也會混淆。的差異有時也會混
19、淆。n 全局名稱全局名稱(global name)(global name)無論在系統(tǒng)中何處使用,都表示同一無論在系統(tǒng)中何處使用,都表示同一個實體。換句話說,全局名稱始終根據(jù)相同的目錄節(jié)點進行個實體。換句話說,全局名稱始終根據(jù)相同的目錄節(jié)點進行解釋。相比之下,局部名稱解釋。相比之下,局部名稱(local name)(local name)需要根據(jù)使用名稱的需要根據(jù)使用名稱的位置來進行解釋。當(dāng)放置在不同的位置上時,局部名稱實質(zhì)位置來進行解釋。當(dāng)放置在不同的位置上時,局部名稱實質(zhì)上是相對名稱,包含它的目錄是隱式已知的。我們在討論名上是相對名稱,包含它的目錄是隱式已知的。我們在討論名稱解析時還會回來
20、討論這些問題。稱解析時還會回來討論這些問題。 16名稱空間名稱空間n 組織名稱空間有許多不同的方法。大多數(shù)名稱空間僅僅有一組織名稱空間有許多不同的方法。大多數(shù)名稱空間僅僅有一個根節(jié)點。在許多情況下,名稱空間也嚴格地進行分層,將個根節(jié)點。在許多情況下,名稱空間也嚴格地進行分層,將命名圖組織成一顆樹。這意味著除了根節(jié)點之外,每個節(jié)點命名圖組織成一顆樹。這意味著除了根節(jié)點之外,每個節(jié)點都只有一條進入邊,而根節(jié)點沒有進入邊。因此,每個節(jié)點都只有一條進入邊,而根節(jié)點沒有進入邊。因此,每個節(jié)點只有一個相關(guān)聯(lián)的絕對路徑名。只有一個相關(guān)聯(lián)的絕對路徑名。 n 圖圖4.14.1所示的命名圖是所示的命名圖是有向非循
21、環(huán)圖有向非循環(huán)圖的一個實例。在這樣的組的一個實例。在這樣的組織中,織中,一個節(jié)點可以具有多條進入邊一個節(jié)點可以具有多條進入邊,但是圖中不允許有循,但是圖中不允許有循環(huán)。也有些名稱空間沒有此限制。環(huán)。也有些名稱空間沒有此限制。 17名稱空間名稱空間n 為了更具體一些,考慮一下傳統(tǒng)為了更具體一些,考慮一下傳統(tǒng)UnixUnix系統(tǒng)中對文件進行命名系統(tǒng)中對文件進行命名的方式。在的方式。在UnixUnix的命名圖中,一個目錄節(jié)點表示一個文件目的命名圖中,一個目錄節(jié)點表示一個文件目錄,而一個葉節(jié)點表示一個文件。唯一的根目錄在命名圖中錄,而一個葉節(jié)點表示一個文件。唯一的根目錄在命名圖中用根節(jié)點表示。命名圖的
22、實現(xiàn)是文件系統(tǒng)的完整實現(xiàn)的一部用根節(jié)點表示。命名圖的實現(xiàn)是文件系統(tǒng)的完整實現(xiàn)的一部分。該實現(xiàn)由邏輯磁盤上一系列連續(xù)塊組成,通常分為一個分。該實現(xiàn)由邏輯磁盤上一系列連續(xù)塊組成,通常分為一個根塊、一個超級塊、一系列索引節(jié)點根塊、一個超級塊、一系列索引節(jié)點( (稱為信息節(jié)點,稱為信息節(jié)點,inode)inode)和一些文件數(shù)據(jù)塊。和一些文件數(shù)據(jù)塊。 n 根塊是一個特殊的數(shù)據(jù)和指令塊,在系統(tǒng)啟動時自動裝載到根塊是一個特殊的數(shù)據(jù)和指令塊,在系統(tǒng)啟動時自動裝載到主存儲器中。根塊用于將操作系統(tǒng)裝載到主存儲器中。主存儲器中。根塊用于將操作系統(tǒng)裝載到主存儲器中。 n 超級塊保存整個文件系統(tǒng)的信息,如文件系統(tǒng)的大
23、小,磁盤超級塊保存整個文件系統(tǒng)的信息,如文件系統(tǒng)的大小,磁盤上還有哪些塊沒有分配,以及哪些信息節(jié)點還沒有使用,等上還有哪些塊沒有分配,以及哪些信息節(jié)點還沒有使用,等等。信息節(jié)點由索引號來指向,從數(shù)字等。信息節(jié)點由索引號來指向,從數(shù)字0 0開始開始( (數(shù)字數(shù)字0 0是為表示是為表示根目錄的信息節(jié)點保留的根目錄的信息節(jié)點保留的) )。 18名稱空間名稱空間圖圖4.2 4.2 在邏輯磁盤的連續(xù)磁盤塊上實現(xiàn)在邏輯磁盤的連續(xù)磁盤塊上實現(xiàn)UnixUnix文件系統(tǒng)的一般組織結(jié)構(gòu)文件系統(tǒng)的一般組織結(jié)構(gòu) 文件數(shù)據(jù)塊文件數(shù)據(jù)塊超級塊超級塊索引塊索引塊磁盤塊磁盤塊根塊根塊19名稱空間名稱空間n 每個信息節(jié)點包含關(guān)
24、于在磁盤上哪個位置可以找到與節(jié)點相關(guān)每個信息節(jié)點包含關(guān)于在磁盤上哪個位置可以找到與節(jié)點相關(guān)聯(lián)的文件數(shù)據(jù)的準確信息。另外,一個信息節(jié)點包含關(guān)于其所聯(lián)的文件數(shù)據(jù)的準確信息。另外,一個信息節(jié)點包含關(guān)于其所有者、創(chuàng)建時間和最后一次修改的時間、保護信息等諸如此類有者、創(chuàng)建時間和最后一次修改的時間、保護信息等諸如此類的信息。因此,如果給定了一個信息節(jié)點的索引號,那么就可的信息。因此,如果給定了一個信息節(jié)點的索引號,那么就可以訪問到與其關(guān)聯(lián)的文件。每個目錄都作為一個文件來實現(xiàn),以訪問到與其關(guān)聯(lián)的文件。每個目錄都作為一個文件來實現(xiàn),對于根目錄也是如此。它包含文件名與信息節(jié)點的索引號之間對于根目錄也是如此。它包
25、含文件名與信息節(jié)點的索引號之間的映射。因此,信息節(jié)點的索引號是可以看作相當(dāng)于命名圖中的映射。因此,信息節(jié)點的索引號是可以看作相當(dāng)于命名圖中的節(jié)點標識符。的節(jié)點標識符。 20名稱解析名稱解析n 名稱空間為通過名稱來存儲和檢索實體的信息提供了一套便名稱空間為通過名稱來存儲和檢索實體的信息提供了一套便利的機制。更一般地講,給定一個路徑名,應(yīng)該能夠查找出利的機制。更一般地講,給定一個路徑名,應(yīng)該能夠查找出存儲在該名稱所指向的節(jié)點中的任何信息。查詢名稱的過程存儲在該名稱所指向的節(jié)點中的任何信息。查詢名稱的過程稱為名稱解析稱為名稱解析(name resolution)(name resolution)。
26、n 為了解釋名稱解析是如何進行的,請考慮一個路徑名,如為了解釋名稱解析是如何進行的,請考慮一個路徑名,如nN: lable-1, label-2, N: , label-n。 該名稱的解析是從命該名稱的解析是從命名圖的節(jié)點名圖的節(jié)點NN開始的,在其目錄表中查詢名稱開始的,在其目錄表中查詢名稱label-1label-1,并返回,并返回label-1label-1所指向的節(jié)點的標識符。然后,解析過程在標識出的所指向的節(jié)點的標識符。然后,解析過程在標識出的節(jié)點的目錄表中繼續(xù)查詢名稱節(jié)點的目錄表中繼續(xù)查詢名稱label-2label-2,依此類推,假設(shè)該命,依此類推,假設(shè)該命名路徑確實存在,那么解析
27、會在由名路徑確實存在,那么解析會在由label-nlabel-n指向的最后一個節(jié)指向的最后一個節(jié)點上停止,并返回該節(jié)點的內(nèi)容。點上停止,并返回該節(jié)點的內(nèi)容。 21名稱解析名稱解析n 名稱查詢從名稱解析程序繼續(xù)運行的地方返回節(jié)點的標識符。名稱查詢從名稱解析程序繼續(xù)運行的地方返回節(jié)點的標識符。應(yīng)特別指出的是,訪問標識節(jié)點的目錄表是必要的。再次考慮應(yīng)特別指出的是,訪問標識節(jié)點的目錄表是必要的。再次考慮UnixUnix文件系統(tǒng)中的命名圖。如前面所提到的,節(jié)點標識符是作文件系統(tǒng)中的命名圖。如前面所提到的,節(jié)點標識符是作為信息節(jié)點的索引號來實現(xiàn)的。訪問目錄表意味著首先要讀取為信息節(jié)點的索引號來實現(xiàn)的。訪問
28、目錄表意味著首先要讀取信息節(jié)點,以找到實際數(shù)據(jù)在磁盤上存儲的位置,然后再讀取信息節(jié)點,以找到實際數(shù)據(jù)在磁盤上存儲的位置,然后再讀取含有目錄表的數(shù)據(jù)塊。含有目錄表的數(shù)據(jù)塊。 22名稱解析名稱解析n 僅當(dāng)我們知道如何啟動以及在何處啟動時才能進行名稱解析。僅當(dāng)我們知道如何啟動以及在何處啟動時才能進行名稱解析。在實例中,開始節(jié)點已經(jīng)給出,而且假設(shè)已經(jīng)訪問了目錄表。在實例中,開始節(jié)點已經(jīng)給出,而且假設(shè)已經(jīng)訪問了目錄表。知道如何啟動以及在何處啟動名稱解析通常稱為知道如何啟動以及在何處啟動名稱解析通常稱為終止機制終止機制(closure mechanism)(closure mechanism)。從本質(zhì)上講
29、,終止機制處理從名稱空間。從本質(zhì)上講,終止機制處理從名稱空間中選擇初始節(jié)點,名稱解析從初始節(jié)點開始。有時難以理解終中選擇初始節(jié)點,名稱解析從初始節(jié)點開始。有時難以理解終止機制的原因是它們必須是部分隱式的,而且進行比較時彼此止機制的原因是它們必須是部分隱式的,而且進行比較時彼此截然不同。截然不同。n 例如,在例如,在UnixUnix文件系統(tǒng)命名圖的名稱解析中,根目錄的信息節(jié)文件系統(tǒng)命名圖的名稱解析中,根目錄的信息節(jié)點是代表文件系統(tǒng)的邏輯磁盤的第一個信息節(jié)點。其實際的字點是代表文件系統(tǒng)的邏輯磁盤的第一個信息節(jié)點。其實際的字節(jié)偏移量由超級塊的其他字段中的值和操作系統(tǒng)中有關(guān)超級塊節(jié)偏移量由超級塊的其他
30、字段中的值和操作系統(tǒng)中有關(guān)超級塊的內(nèi)部組織的硬性編碼信息一起計算得出。的內(nèi)部組織的硬性編碼信息一起計算得出。 23名稱解析名稱解析n 與名稱解析緊密聯(lián)系的是別名的使用。別名是同一實體的另一與名稱解析緊密聯(lián)系的是別名的使用。別名是同一實體的另一個名稱。環(huán)境變量是別名的一個例子。在命名圖中,主要有兩個名稱。環(huán)境變量是別名的一個例子。在命名圖中,主要有兩種不同的方法來實現(xiàn)別名。種不同的方法來實現(xiàn)別名。n 第一個方法是允許多個絕對路徑名來指向命名圖中的同一節(jié)點第一個方法是允許多個絕對路徑名來指向命名圖中的同一節(jié)點。該方法如圖。該方法如圖4.14.1所示,其中節(jié)點所示,其中節(jié)點n5n5可以由兩個不同的路
31、徑名來可以由兩個不同的路徑名來查詢。在查詢。在UnixUnix術(shù)語中,圖術(shù)語中,圖4.14.1中的兩個路徑名中的兩個路徑名/keys/keys和和/home/steen/keys/home/steen/keys都稱為到節(jié)點都稱為到節(jié)點n5n5的硬鏈接。的硬鏈接。 n 第二種方法是用葉節(jié)點來表示實體第二種方法是用葉節(jié)點來表示實體,例如,例如NN,而不是存儲實體,而不是存儲實體的地址或位置,該節(jié)點存儲絕對路徑名。當(dāng)?shù)谝淮谓馕鲋赶虻牡刂坊蛭恢?,該?jié)點存儲絕對路徑名。當(dāng)?shù)谝淮谓馕鲋赶騈N的絕對路徑名時,名稱解析將返回存儲在的絕對路徑名時,名稱解析將返回存儲在NN中的路徑名,在這中的路徑名,在這點它可以
32、繼續(xù)解析新的路徑名。這個原理對應(yīng)于點它可以繼續(xù)解析新的路徑名。這個原理對應(yīng)于UnixUnix文件系統(tǒng)文件系統(tǒng)中的符號鏈接,圖中的符號鏈接,圖4.34.3所示。在這種情況下,指向包含絕對路徑所示。在這種情況下,指向包含絕對路徑名名/keys/keys的節(jié)點的路徑名的節(jié)點的路徑名/home/steen/keys/home/steen/keys是對節(jié)點是對節(jié)點n5n5的符號鏈的符號鏈接。接。 24名稱解析名稱解析v 圖圖4.3 4.3 命名圖中所講述的符號鏈接的概念命名圖中所講述的符號鏈接的概念 25名稱解析名稱解析n 前面介紹的名稱解析都是在前面介紹的名稱解析都是在單個名稱空間單個名稱空間中進行的
33、。但是,中進行的。但是,名稱解析也可以用來以名稱解析也可以用來以透明方式來合并不同的名稱空間透明方式來合并不同的名稱空間。n 首先,考慮一個已經(jīng)掛載的文件系統(tǒng)。在命名模型中,已經(jīng)首先,考慮一個已經(jīng)掛載的文件系統(tǒng)。在命名模型中,已經(jīng)掛載的文件系統(tǒng)與讓目錄節(jié)點存儲來自不同名稱空間掛載的文件系統(tǒng)與讓目錄節(jié)點存儲來自不同名稱空間( (稱為外稱為外部名稱空間部名稱空間) )的目錄節(jié)點的標識符。存儲節(jié)點標識符的目錄節(jié)的目錄節(jié)點的標識符。存儲節(jié)點標識符的目錄節(jié)點稱為掛接點點稱為掛接點(mount point)(mount point)。因此,外部名稱空間中的目錄。因此,外部名稱空間中的目錄節(jié)點稱為掛載點節(jié)點
34、稱為掛載點(mounting point)(mounting point)。通常,掛載點是名稱空間。通常,掛載點是名稱空間的根。在名稱解析的過程中,掛載點被查詢,并通過訪問目的根。在名稱解析的過程中,掛載點被查詢,并通過訪問目錄表來完成解析。錄表來完成解析。 n 掛載的原理可以推廣到其他名稱空間。值得注意的是,作為掛載的原理可以推廣到其他名稱空間。值得注意的是,作為掛接點的目錄節(jié)點存儲識別和訪問外部名稱空間的掛載點的掛接點的目錄節(jié)點存儲識別和訪問外部名稱空間的掛載點的所有必需的信息。在所有必需的信息。在JadeJade命名系統(tǒng)命名系統(tǒng)(Rao(Rao和和Peterson 1993)Peters
35、on 1993)中遵中遵循的是該方法,在許多分布式文件系統(tǒng)中實際上也是遵循該循的是該方法,在許多分布式文件系統(tǒng)中實際上也是遵循該方法的。方法的。 26名稱解析名稱解析n 考慮分布在多臺計算機上的考慮分布在多臺計算機上的名稱空間的集合名稱空間的集合。特別是,每個名。特別是,每個名稱空間由不同的服務(wù)器來實現(xiàn),每個服務(wù)器可能運行在單獨的稱空間由不同的服務(wù)器來實現(xiàn),每個服務(wù)器可能運行在單獨的計算機上。因此,如果想要將外部名稱空間計算機上。因此,如果想要將外部名稱空間NS2NS2掛載到名稱空掛載到名稱空間間NS1NS1中,可能需要在網(wǎng)絡(luò)上與中,可能需要在網(wǎng)絡(luò)上與NS2NS2的服務(wù)器進行通信,因為服的服務(wù)
36、器進行通信,因為服務(wù)器可能運行在不同的計算機上而不是務(wù)器可能運行在不同的計算機上而不是NS1NS1的服務(wù)器上。在分布的服務(wù)器上。在分布式系統(tǒng)中掛載外部名稱空間至少需要以下信息:式系統(tǒng)中掛載外部名稱空間至少需要以下信息: 訪問協(xié)議的名稱;訪問協(xié)議的名稱; 服務(wù)器的名稱;服務(wù)器的名稱; 外部名稱空間中掛載點的名稱。外部名稱空間中掛載點的名稱。 27名稱解析名稱解析n 這些節(jié)點這些節(jié)點每一個都需要解析每一個都需要解析。訪問協(xié)議的名稱需要解析成協(xié)。訪問協(xié)議的名稱需要解析成協(xié)議的執(zhí)行,通過協(xié)議的執(zhí)行可以與外部名稱空間的服務(wù)器進議的執(zhí)行,通過協(xié)議的執(zhí)行可以與外部名稱空間的服務(wù)器進行通信。行通信。服務(wù)器的名
37、稱需要解析成可以到達服務(wù)器的地址服務(wù)器的名稱需要解析成可以到達服務(wù)器的地址。作為名稱解析中的最后部分,掛載點的名稱需要解析成外部作為名稱解析中的最后部分,掛載點的名稱需要解析成外部名稱空間的節(jié)點標識符。名稱空間的節(jié)點標識符。 28名稱解析名稱解析n 掛載點的名稱由外部名稱空間的服務(wù)器來解析。但是,我們掛載點的名稱由外部名稱空間的服務(wù)器來解析。但是,我們還需要名稱空間,以及訪問協(xié)議的實現(xiàn)和服務(wù)器名稱。一個還需要名稱空間,以及訪問協(xié)議的實現(xiàn)和服務(wù)器名稱。一個可能性是將上面所列的三個名稱表示為一個可能性是將上面所列的三個名稱表示為一個URLURL。 n 假設(shè)使用筆記本電腦的用戶想要訪問遠程文件服務(wù)器
38、上存儲假設(shè)使用筆記本電腦的用戶想要訪問遠程文件服務(wù)器上存儲的文件??蛻粲嬎銠C和文件服務(wù)器都使用的文件。客戶計算機和文件服務(wù)器都使用SunSun公司的網(wǎng)絡(luò)文件公司的網(wǎng)絡(luò)文件系統(tǒng)系統(tǒng)(NFS)(NFS)來配置。來配置。NFSNFS是一種分布式文件系統(tǒng),它使用一種是一種分布式文件系統(tǒng),它使用一種明確描述客戶如何訪問存儲在遠程明確描述客戶如何訪問存儲在遠程NFSNFS文件服務(wù)器上的文件文件服務(wù)器上的文件的協(xié)議。特別是,如果允許的協(xié)議。特別是,如果允許NFSNFS通過通過InternetInternet來工作,那么客來工作,那么客戶可以通過戶可以通過NFS URLNFS URL來確切指定它所要訪問的文件
39、,例如來確切指定它所要訪問的文件,例如nfs:/flits.cs.vu.nl/home/steennfs:/flits.cs.vu.nl/home/steen。該。該URLURL命名命名NFSNFS文件服務(wù)器文件服務(wù)器flits.cs.vu.nlflits.cs.vu.nl上名為上名為/home/steen/home/steen的文件的文件( (對目錄也是一樣對目錄也是一樣) ),客,客戶可以通過戶可以通過NFSNFS協(xié)議來訪問它。協(xié)議來訪問它。29名稱解析名稱解析n 圖圖4.44.4部分顯示了客戶機器上的文件系統(tǒng)的組織方式。根目錄部分顯示了客戶機器上的文件系統(tǒng)的組織方式。根目錄包含許多用戶定
40、義的條目,其中有名為包含許多用戶定義的條目,其中有名為/remote/remote的子目錄。這的子目錄。這個子目錄用來包含外部名稱空間的掛載點,例如個子目錄用來包含外部名稱空間的掛載點,例如Vrije Vrije UniviersityUniviersity上的用戶根目錄。為此,可使用一個名為上的用戶根目錄。為此,可使用一個名為/remote/vu/remote/vu的目錄節(jié)點來存儲的目錄節(jié)點來存儲URL URL nfs:/flits.cs.vu.nl/home/steennfs:/flits.cs.vu.nl/home/steen。 30名稱解析名稱解析v 圖圖4.4 4.4 通過指定的訪問
41、協(xié)議裝配遠程名稱空間通過指定的訪問協(xié)議裝配遠程名稱空間 31名稱解析名稱解析n 考慮名稱考慮名稱 /remote/vu/mbox/remote/vu/mbox。在解析這個名稱時,將從客戶。在解析這個名稱時,將從客戶機器的目錄開始,一直到節(jié)點機器的目錄開始,一直到節(jié)點 /remote/vu/remote/vu為止。然后名稱解為止。然后名稱解析會返回析會返回 URL nfs:/flits.cs.vu.nlURL nfs:/flits.cs.vu.nl,接著會引導(dǎo)客戶機器使用,接著會引導(dǎo)客戶機器使用nfsnfs協(xié)議與文件服務(wù)器協(xié)議與文件服務(wù)器 flits.cs.vu.nlflits.cs.vu.nl
42、聯(lián)系,隨后會訪問目錄聯(lián)系,隨后會訪問目錄 /home/steen/home/steen。接下來的名稱解析將讀取該目錄下的。接下來的名稱解析將讀取該目錄下的mboxmbox文文件。件。 32名稱解析名稱解析n 掛載掛載是合并不同名稱空間時所使用的一種方式,另一種方式是合并不同名稱空間時所使用的一種方式,另一種方式來自來自DECDEC公司的公司的全局名稱服務(wù)器全局名稱服務(wù)器(global name service, GNS)(global name service, GNS)。它的做法是它的做法是添加一個新的根節(jié)點添加一個新的根節(jié)點,然后把現(xiàn)有的根節(jié)點變成,然后把現(xiàn)有的根節(jié)點變成它的子節(jié)點它的子節(jié)
43、點(Lampson 1986)(Lampson 1986)。如圖。如圖4.5 4.5 33名稱解析名稱解析v 圖圖4.54.5 DEC GNSDEC GNS的組織的組織 34名稱解析名稱解析n 這種方式存在一個問題是需要這種方式存在一個問題是需要修改現(xiàn)有的名稱修改現(xiàn)有的名稱。n 在圖在圖4.54.5中,要將名稱空間中,要將名稱空間NSNS1 1下的絕對路徑名下的絕對路徑名 /home/steen/home/steen轉(zhuǎn)轉(zhuǎn)換成一種相對路徑名,這個相對路徑名將從節(jié)點換成一種相對路徑名,這個相對路徑名將從節(jié)點n0n0開始解析,開始解析,它對應(yīng)于絕對路徑名它對應(yīng)于絕對路徑名/vu/home/steen
44、/vu/home/steen。為了解決這些問題并允。為了解決這些問題并允許將來添加其他的名稱空間,許將來添加其他的名稱空間,GNSGNS中的名稱始終隱含地包括節(jié)中的名稱始終隱含地包括節(jié)點的標識符點的標識符,解析通常會從該節(jié)點標識符開始。,解析通常會從該節(jié)點標識符開始。n 例如,在圖例如,在圖4.54.5所示的名稱空間所示的名稱空間NS1NS1中,名稱中,名稱/home/steen/keys/home/steen/keys總是被擴展以包括節(jié)點標識符總是被擴展以包括節(jié)點標識符n0n0,結(jié)果就是,結(jié)果就是n0:/home/steen/keysn0:/home/steen/keys。用戶一般看不到擴展
45、過程。這里假定節(jié)。用戶一般看不到擴展過程。這里假定節(jié)點標識符是全局唯一的。因此,即使是來自不同名稱空間的節(jié)點標識符是全局唯一的。因此,即使是來自不同名稱空間的節(jié)點也被假定為總是包含不同節(jié)點標識符。點也被假定為總是包含不同節(jié)點標識符。 35名稱解析名稱解析n 在不改變現(xiàn)有名稱的情況下合并在不改變現(xiàn)有名稱的情況下合并NS1NS1和和NS2NS2這兩個名稱空間,步這兩個名稱空間,步驟如下。在添加新的根節(jié)點時,新節(jié)點保存了一張表,這張表驟如下。在添加新的根節(jié)點時,新節(jié)點保存了一張表,這張表把把NS1NS1根節(jié)點的標識符映射到該根節(jié)點在新名稱空間中的名稱根節(jié)點的標識符映射到該根節(jié)點在新名稱空間中的名稱,
46、圖,圖4.54.5。NS2NS2根節(jié)點也一樣。通過始終從新名稱空間中的根節(jié)根節(jié)點也一樣。通過始終從新名稱空間中的根節(jié)點開始解析名稱,可以首先把點開始解析名稱,可以首先把n0:/home/steenn0:/home/steen這樣的名稱轉(zhuǎn)換這樣的名稱轉(zhuǎn)換為為/vu/home/steen/vu/home/steen,這是通過在根節(jié)點的表中查找根節(jié)點的標,這是通過在根節(jié)點的表中查找根節(jié)點的標識符識符n0n0來實現(xiàn)的。來實現(xiàn)的。 n GNSGNS存在的一個潛在問題是:在合并后的名稱空間中,根節(jié)點存在的一個潛在問題是:在合并后的名稱空間中,根節(jié)點需要維護原根節(jié)點的標識符到新名稱之間的映射。如果合并了需要
47、維護原根節(jié)點的標識符到新名稱之間的映射。如果合并了幾千個名稱空間,那么這種方式最終將導(dǎo)致性能問題。幾千個名稱空間,那么這種方式最終將導(dǎo)致性能問題。 36名稱空間的實現(xiàn)名稱空間的實現(xiàn)n 名稱空間形成了命名服務(wù)核心,名稱空間形成了命名服務(wù)核心,命名服務(wù)就是一種允許用戶和命名服務(wù)就是一種允許用戶和進程添加、刪除和查找名稱的服務(wù)進程添加、刪除和查找名稱的服務(wù)。命名服務(wù)由名稱服務(wù)器實。命名服務(wù)由名稱服務(wù)器實現(xiàn)。如果一個分布式系統(tǒng)局限于局域網(wǎng),那么可以只使用一臺現(xiàn)。如果一個分布式系統(tǒng)局限于局域網(wǎng),那么可以只使用一臺名稱服務(wù)器實現(xiàn)命名服務(wù)??墒?,大型分布式系統(tǒng)包含許多實名稱服務(wù)器實現(xiàn)命名服務(wù)??墒牵笮头植?/p>
48、式系統(tǒng)包含許多實體,可能會跨越很大的地理區(qū)域,在這樣的系統(tǒng)中,需要使用體,可能會跨越很大的地理區(qū)域,在這樣的系統(tǒng)中,需要使用多臺多臺名稱服務(wù)器來分散名稱空間的實現(xiàn)。名稱服務(wù)器來分散名稱空間的實現(xiàn)。 37名稱空間的實現(xiàn)名稱空間的實現(xiàn)n 在大型的、可能是世界范圍的分布式系統(tǒng)中,名稱空間通常在大型的、可能是世界范圍的分布式系統(tǒng)中,名稱空間通常分層組織。和以前一樣,我們?nèi)匀患俣ㄟ@樣的名稱空間只有分層組織。和以前一樣,我們?nèi)匀患俣ㄟ@樣的名稱空間只有一個根節(jié)點。為了有效地實現(xiàn)這樣的名稱空間,把它分成邏一個根節(jié)點。為了有效地實現(xiàn)這樣的名稱空間,把它分成邏輯上的層會很方便。輯上的層會很方便。(Cheriton
49、 (Cheriton 和和 Mann 1989)Mann 1989)把名稱空間區(qū)把名稱空間區(qū)分為以下三層分為以下三層: : 全局層、行政層、管理層全局層、行政層、管理層。 n 全局層全局層(global layer)(global layer)由最高級別的節(jié)點組成,即由根節(jié)點以由最高級別的節(jié)點組成,即由根節(jié)點以及其他邏輯上靠近根節(jié)點的目錄節(jié)點,也就是根節(jié)點的子節(jié)及其他邏輯上靠近根節(jié)點的目錄節(jié)點,也就是根節(jié)點的子節(jié)點組成。全局層的特點就是它通常是穩(wěn)定的,也就是說目錄點組成。全局層的特點就是它通常是穩(wěn)定的,也就是說目錄表很少改變。這樣的節(jié)點可以代表組織或者組織群,這是因表很少改變。這樣的節(jié)點可以代
50、表組織或者組織群,這是因為它們的名稱被存儲在這個名稱空間中。為它們的名稱被存儲在這個名稱空間中。 38名稱空間的實現(xiàn)名稱空間的實現(xiàn)n 行政層行政層(administrational layer)(administrational layer)由那些在單個組織內(nèi)一起被管由那些在單個組織內(nèi)一起被管理的目錄節(jié)點組成。行政層中的目錄節(jié)點所具有的特點是它理的目錄節(jié)點組成。行政層中的目錄節(jié)點所具有的特點是它們代表屬于同一組織或行政單位的實體組。舉例來說,這樣們代表屬于同一組織或行政單位的實體組。舉例來說,這樣的目錄節(jié)點可能是一個組織中每個部門都擁有的目錄節(jié)點,的目錄節(jié)點可能是一個組織中每個部門都擁有的目錄
51、節(jié)點,或者是通過它可以找到所有主機的目錄節(jié)點。還有可以用來或者是通過它可以找到所有主機的目錄節(jié)點。還有可以用來命名所有用戶起點的目錄節(jié)點,等等。行政層的節(jié)點是相對命名所有用戶起點的目錄節(jié)點,等等。行政層的節(jié)點是相對穩(wěn)定的,盡管說它們的改變一般要比全局節(jié)點頻繁得多。穩(wěn)定的,盡管說它們的改變一般要比全局節(jié)點頻繁得多。 n 管理層管理層(managerial layer)(managerial layer),由那些經(jīng)常改變的節(jié)點組成。例,由那些經(jīng)常改變的節(jié)點組成。例如,代表本地網(wǎng)絡(luò)主機的節(jié)點就屬于這一層。同樣,本層還如,代表本地網(wǎng)絡(luò)主機的節(jié)點就屬于這一層。同樣,本層還包括那些代表共享文件包括那些代表
52、共享文件( (如庫文件或二進制文件如庫文件或二進制文件) )的節(jié)點。另的節(jié)點。另一類重要節(jié)點包括那些代表用戶定義目錄和文件的節(jié)點。與一類重要節(jié)點包括那些代表用戶定義目錄和文件的節(jié)點。與全局層和行政層相比,管理層的節(jié)點不僅要由系統(tǒng)管理員維全局層和行政層相比,管理層的節(jié)點不僅要由系統(tǒng)管理員維護,而且還要由分布式系統(tǒng)的各個最終用戶維護。護,而且還要由分布式系統(tǒng)的各個最終用戶維護。39名稱空間的實現(xiàn)名稱空間的實現(xiàn)n 圖圖4.64.6顯示了一個例子,它說明了把顯示了一個例子,它說明了把DNSDNS名稱空間劃分為若干名稱空間劃分為若干部分的方法,該空間包括了組織內(nèi)文件的名稱,可以通過部分的方法,該空間包括
53、了組織內(nèi)文件的名稱,可以通過InternetInternet訪問這些文件,如訪問這些文件,如WebWeb頁面和可傳輸文件等等。名稱頁面和可傳輸文件等等。名稱空間劃分成不重疊的幾部分,它是由單獨的名稱服務(wù)器實現(xiàn)空間劃分成不重疊的幾部分,它是由單獨的名稱服務(wù)器實現(xiàn)的。圖的。圖4.64.6展示了一些區(qū)域。展示了一些區(qū)域。 40名稱空間的實現(xiàn)名稱空間的實現(xiàn)v 圖圖4.6 DNS4.6 DNS名稱空間劃分示例,該空間包括了可以名稱空間劃分示例,該空間包括了可以從從InternetInternet上訪問的文件、共分三層上訪問的文件、共分三層 41名稱空間的實現(xiàn)名稱空間的實現(xiàn)n 在可用性和性能方面,每層的名
54、稱服務(wù)器都必須滿足不同的要在可用性和性能方面,每層的名稱服務(wù)器都必須滿足不同的要求。求。在全局層中在全局層中,良好的可用性對名稱服務(wù)器特別重要。如果,良好的可用性對名稱服務(wù)器特別重要。如果名稱服務(wù)器發(fā)生故障,那么名稱空間中很大部分將無法到達,名稱服務(wù)器發(fā)生故障,那么名稱空間中很大部分將無法到達,這是因為不能越過發(fā)生故障的服務(wù)器進行名稱解析。這是因為不能越過發(fā)生故障的服務(wù)器進行名稱解析。 n 性能問題有點微妙。根據(jù)全局節(jié)點變化不頻繁的特點,查找操性能問題有點微妙。根據(jù)全局節(jié)點變化不頻繁的特點,查找操作的結(jié)果一般會長期有效。因此,客戶可以有效地緩存作的結(jié)果一般會長期有效。因此,客戶可以有效地緩存(
55、 (也就是也就是本地存儲本地存儲) )這些結(jié)果。當(dāng)再次執(zhí)行同樣的操作時,可以從客戶的這些結(jié)果。當(dāng)再次執(zhí)行同樣的操作時,可以從客戶的緩存中直接獲取結(jié)果,而不用讓名稱服務(wù)器返回結(jié)果。因此,緩存中直接獲取結(jié)果,而不用讓名稱服務(wù)器返回結(jié)果。因此,全局層的名稱服務(wù)器并不需要快速響應(yīng)單一的查詢請求。相反全局層的名稱服務(wù)器并不需要快速響應(yīng)單一的查詢請求。相反,重要的可能是其吞吐能力,特別是擁有上百萬用戶的大型系,重要的可能是其吞吐能力,特別是擁有上百萬用戶的大型系統(tǒng)中。統(tǒng)中。 42名稱空間的實現(xiàn)名稱空間的實現(xiàn)n 在性能方面,行政層的名稱服務(wù)器與全局層的名稱服務(wù)器有類在性能方面,行政層的名稱服務(wù)器與全局層的名
56、稱服務(wù)器有類似的特點。由于節(jié)點的變化不是經(jīng)常發(fā)生,所以似的特點。由于節(jié)點的變化不是經(jīng)常發(fā)生,所以緩存查詢結(jié)果緩存查詢結(jié)果可能是非常有效的可能是非常有效的,這使得性能不那么重要。不過,與全局層,這使得性能不那么重要。不過,與全局層相比,行政層應(yīng)該注意查詢結(jié)果在幾相比,行政層應(yīng)該注意查詢結(jié)果在幾msms內(nèi)返回的情況,不管是內(nèi)返回的情況,不管是直接從服務(wù)器返回,還是從客戶的本地緩存返回。同樣,更新直接從服務(wù)器返回,還是從客戶的本地緩存返回。同樣,更新處理一般比全局層更迅速。舉例來說,需要幾個小時來讓新用處理一般比全局層更迅速。舉例來說,需要幾個小時來讓新用戶帳號生效是不能接受的。戶帳號生效是不能接受
57、的。 n 通過使用高性能的機器來運行名稱服務(wù)器,上述要求一般可以通過使用高性能的機器來運行名稱服務(wù)器,上述要求一般可以得到滿足。另外,應(yīng)該采用客戶端緩存的方法,并與復(fù)制相結(jié)得到滿足。另外,應(yīng)該采用客戶端緩存的方法,并與復(fù)制相結(jié)合,從而提高整體可用性。合,從而提高整體可用性。 43名稱空間的實現(xiàn)名稱空間的實現(xiàn)n 對管理層名稱服務(wù)器的可用性要求一般比較低。特別是,使對管理層名稱服務(wù)器的可用性要求一般比較低。特別是,使用一臺專用的機器運行名稱服務(wù)器來應(yīng)付臨時不可用的風(fēng)險用一臺專用的機器運行名稱服務(wù)器來應(yīng)付臨時不可用的風(fēng)險通常已經(jīng)足夠了。不過,在這里,性能是關(guān)鍵。用戶希望操通常已經(jīng)足夠了。不過,在這里
58、,性能是關(guān)鍵。用戶希望操作能夠立即完成。由于經(jīng)常進行更新,所以客戶端緩存一般作能夠立即完成。由于經(jīng)常進行更新,所以客戶端緩存一般不太有效,除非采用特殊措施。不太有效,除非采用特殊措施。 n 圖圖4.74.7顯示了不同層的名稱服務(wù)器之間的比較。在分布式系統(tǒng)顯示了不同層的名稱服務(wù)器之間的比較。在分布式系統(tǒng)中,中,全局層和行政層全局層和行政層的名稱服務(wù)器非常難以實現(xiàn),困難來自的名稱服務(wù)器非常難以實現(xiàn),困難來自于于復(fù)制和緩存復(fù)制和緩存。n 復(fù)制和緩存對于提高可用性和性能來說是必需的,但它們也復(fù)制和緩存對于提高可用性和性能來說是必需的,但它們也導(dǎo)致一致性問題導(dǎo)致一致性問題的出現(xiàn)??缭綇V域網(wǎng)絡(luò)的緩存和復(fù)制
59、使問題的出現(xiàn)。跨越廣域網(wǎng)絡(luò)的緩存和復(fù)制使問題進一步惡化,這是因為廣域網(wǎng)絡(luò)造成了較長的通信延遲,從進一步惡化,這是因為廣域網(wǎng)絡(luò)造成了較長的通信延遲,從而使同步變得更加困難。第而使同步變得更加困難。第6 6章將全面地討論復(fù)制和緩存。章將全面地討論復(fù)制和緩存。 44名稱空間的實現(xiàn)名稱空間的實現(xiàn)v 圖圖4.7 4.7 為大型名稱空間所屬的全局層、行政層和管理為大型名稱空間所屬的全局層、行政層和管理層實現(xiàn)節(jié)點的名稱服務(wù)器之間的比較層實現(xiàn)節(jié)點的名稱服務(wù)器之間的比較 內(nèi)容內(nèi)容全局層全局層行政層行政層管理層管理層網(wǎng)絡(luò)的地理范圍網(wǎng)絡(luò)的地理范圍世界范圍世界范圍組織組織部門部門節(jié)點數(shù)量節(jié)點數(shù)量少少許多許多極多極多查
60、詢響應(yīng)查詢響應(yīng)s smsms立即立即更新的傳播情況更新的傳播情況延遲延遲立即立即立即立即復(fù)制數(shù)量復(fù)制數(shù)量許多許多沒有或很少沒有或很少沒有沒有是否采用客戶端緩存是否采用客戶端緩存是是是是有時有時45名稱解析的實現(xiàn)名稱解析的實現(xiàn)n 在多個名稱服務(wù)器上名稱空間的分散性影響了名稱解析的實在多個名稱服務(wù)器上名稱空間的分散性影響了名稱解析的實現(xiàn)。為了說明名稱解析在大型名稱服務(wù)中的實現(xiàn),假定不復(fù)現(xiàn)。為了說明名稱解析在大型名稱服務(wù)中的實現(xiàn),假定不復(fù)制名稱服務(wù)器,也不使用客戶端緩存。每個客戶都使用本地制名稱服務(wù)器,也不使用客戶端緩存。每個客戶都使用本地的名稱解析程序,的名稱解析程序,名稱解析程序負責(zé)確保名稱解析
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安吉人事考試及答案
- 2025年南京教招學(xué)前筆試真題及答案
- 2025年廣州商業(yè)銀行筆試及答案
- 2025年銀行筆試精算題及答案
- 2025年城投資本運營部筆試及答案
- 2025年廣實中學(xué)教師筆試及答案
- 2025年珠三角英語教師編制筆試及答案
- 2025年寶雞市事業(yè)單位工人考試及答案
- 美容院衛(wèi)生設(shè)備設(shè)施維護制度
- 乙型肝炎患者感染控制與隔離護理
- 高中體育教師期末教學(xué)工作匯報
- 別克英朗說明書
- 地下管線測繪課件
- 珍稀植物移栽方案
- 新人教版數(shù)學(xué)三年級下冊預(yù)習(xí)學(xué)案(全冊)
- JJG 810-1993波長色散X射線熒光光譜儀
- GB/T 34336-2017納米孔氣凝膠復(fù)合絕熱制品
- GB/T 20077-2006一次性托盤
- GB/T 1335.3-2009服裝號型兒童
- GB/T 10046-2008銀釬料
- GA 801-2019機動車查驗工作規(guī)程
評論
0/150
提交評論