亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于云的分級(jí)系統(tǒng)保存的制作方法

文檔序號(hào):11288486閱讀:189來(lái)源:國(guó)知局
基于云的分級(jí)系統(tǒng)保存的制造方法與工藝



背景技術(shù):

計(jì)算系統(tǒng)經(jīng)常將數(shù)據(jù)組織成分級(jí)結(jié)構(gòu)。例如,文件系統(tǒng)將文件分級(jí)地組織成目錄結(jié)構(gòu)。數(shù)據(jù)庫(kù)是分級(jí)的,其中個(gè)別記錄可以被視為分級(jí)中的葉節(jié)點(diǎn)而分級(jí)中的較高級(jí)是記錄組和/或其它組。然而,許多其它類(lèi)型的數(shù)據(jù)也被分級(jí)地組織。

在文件系統(tǒng)的情況下,分級(jí)結(jié)構(gòu)中的內(nèi)部節(jié)點(diǎn)是目錄,而分級(jí)結(jié)構(gòu)中的葉節(jié)點(diǎn)是文件(或者可能罕見(jiàn)地是空目錄)。文件系統(tǒng)經(jīng)常包括用于由操作系統(tǒng)和/或在其上運(yùn)行的應(yīng)用使用的操作文件(例如,可執(zhí)行文件或者數(shù)據(jù)文件)或者可以包括用戶數(shù)據(jù)文件(例如,字處理文檔、游戲保存文件、圖片、視頻、音樂(lè)等)。

遠(yuǎn)程備份服務(wù)提供遠(yuǎn)程地備份分級(jí)系統(tǒng)的全部或者部分。例如,在文件系統(tǒng)中,可以在本地系統(tǒng)上壓縮、向遠(yuǎn)程位置分派和存儲(chǔ)文件。

這里要求保護(hù)的主題內(nèi)容不限于解決任何缺點(diǎn)或者僅在環(huán)境(比如以上描述的環(huán)境)中操作的實(shí)施例。實(shí)際上,提供這一背景技術(shù)僅舉例說(shuō)明其中可以實(shí)踐這里描述的一些實(shí)施例的一種示例性技術(shù)。



技術(shù)實(shí)現(xiàn)要素:

這里描述的至少一些實(shí)施例涉及云blob存儲(chǔ)裝置中的分級(jí)系統(tǒng)(比如文件系統(tǒng)或者數(shù)據(jù)庫(kù))的高效備份。分級(jí)系統(tǒng)在它在先前時(shí)間時(shí)刻存在的分級(jí)結(jié)構(gòu)被重構(gòu)。這可以使用分級(jí)系統(tǒng)的先前內(nèi)射的表示和用于先前內(nèi)射的表示的先前逆轉(zhuǎn)信息而被實(shí)現(xiàn)。代表自從先前時(shí)間時(shí)刻起出現(xiàn)的分級(jí)系統(tǒng)中的改變的改變?nèi)罩救缓蟊挥脕?lái)制定在它在第二時(shí)間時(shí)刻存在的更新后的分級(jí)系統(tǒng)分級(jí)。分級(jí)系統(tǒng)的更新后的內(nèi)射表示和更新后的分級(jí)系統(tǒng)逆轉(zhuǎn)信息然后被制定并且向云blob存儲(chǔ)裝置提供。

分級(jí)系統(tǒng)的內(nèi)射的表示是分級(jí)系統(tǒng)的內(nèi)容的一對(duì)一函數(shù),因?yàn)槟孓D(zhuǎn)信息可以用來(lái)恢復(fù)分級(jí)系統(tǒng)的內(nèi)容。內(nèi)射的表示通過(guò)使分級(jí)系統(tǒng)的內(nèi)容經(jīng)受內(nèi)射函數(shù)而被獲得。因而,與代表分級(jí)系統(tǒng)的內(nèi)射的表示不同的內(nèi)射的表示因此確信地不是由于將內(nèi)射函數(shù)應(yīng)用于分級(jí)系統(tǒng)的內(nèi)容所產(chǎn)生。反言之,與分級(jí)系統(tǒng)的內(nèi)射的表示相同的內(nèi)射的表示因此在統(tǒng)計(jì)上確信已經(jīng)由于將內(nèi)射的表示應(yīng)用于分級(jí)系統(tǒng)的內(nèi)容所產(chǎn)生。在一些實(shí)施例中,除了分級(jí)系統(tǒng)分級(jí)中的各種節(jié)點(diǎn)的內(nèi)射的表示之外還可以向云blob存儲(chǔ)裝置提供整個(gè)分級(jí)系統(tǒng)的內(nèi)射的表示。因此可以從分級(jí)系統(tǒng)分級(jí)中的較低節(jié)點(diǎn)的內(nèi)射的表示構(gòu)造分級(jí)系統(tǒng)分級(jí)中的較高節(jié)點(diǎn)的較高級(jí)內(nèi)射的表示。

根據(jù)這里描述的原理,為分級(jí)系統(tǒng)中的各種節(jié)點(diǎn)確定內(nèi)射表示。盡管在確定內(nèi)射的表示的順序方面有一些依賴性(例如,在確定母節(jié)點(diǎn)的內(nèi)射的表示之前首先有可用于母節(jié)點(diǎn)的每個(gè)子節(jié)點(diǎn)的內(nèi)射的表示),但是也有高并發(fā)水平的機(jī)會(huì)。例如,所有葉節(jié)點(diǎn)(或者至少最低級(jí)葉節(jié)點(diǎn))在可以確定它們的內(nèi)射的表示之前各自沒(méi)有依賴性。因此,在由云環(huán)境提供的處理中的高效并行(由于許多可用執(zhí)行引擎)實(shí)現(xiàn)對(duì)分級(jí)系統(tǒng)的部分或者甚至全部的內(nèi)射表示的由下至上高效和快速構(gòu)造(這里也被稱為“上卷”)。例如,與在單個(gè)執(zhí)行引擎中在云以外執(zhí)行的單個(gè)線程式操作比較,可以迅速地確定分級(jí)系統(tǒng)中的最低級(jí)的內(nèi)射表示。

改變?nèi)罩驹试S檢測(cè)在系統(tǒng)分級(jí)的葉處的改變,這些改變?nèi)缓罂梢耘c系統(tǒng)分級(jí)中的未改變的節(jié)點(diǎn)的內(nèi)射的表示一起被高效地上卷(由下至上)成新的內(nèi)射的表示。另外,從系統(tǒng)分級(jí)中的根節(jié)點(diǎn)的新根內(nèi)射的表示,關(guān)聯(lián)逆轉(zhuǎn)信息可以用來(lái)發(fā)現(xiàn)系統(tǒng)分級(jí)的下一較低級(jí)的內(nèi)射的表示。這可以繼續(xù),直至遇到葉節(jié)點(diǎn)從而產(chǎn)生對(duì)整個(gè)分級(jí)的“解開(kāi)”。在另一方面,也可以僅關(guān)于感興趣的一個(gè)或者多個(gè)后代路徑實(shí)現(xiàn)對(duì)分級(jí)的解開(kāi)從而避免與分級(jí)中的不感興趣的數(shù)據(jù)關(guān)聯(lián)的工作。因而,與系統(tǒng)分級(jí)結(jié)構(gòu)組合的內(nèi)射的表示允許僅基于根內(nèi)射表示(即,備份版本)和分級(jí)路徑從備份對(duì)任何指明的內(nèi)容的迅速尋址和發(fā)現(xiàn)。

根據(jù)這里描述的一些實(shí)施例,云blob存儲(chǔ)裝置具有與本地系統(tǒng)上的分級(jí)系統(tǒng)布局匹配的分級(jí)系統(tǒng)布局。這樣的分級(jí)匹配允許云直接地從改變?nèi)罩精@益,因?yàn)楦淖內(nèi)罩究梢郧∪缢梢栽诒镜叵到y(tǒng)上一樣應(yīng)用于云存儲(chǔ)裝置上的分級(jí)系統(tǒng)的結(jié)構(gòu)。

內(nèi)射的表示也在密碼上安全而沒(méi)有關(guān)聯(lián)逆轉(zhuǎn)信息??梢酝ㄟ^(guò)簡(jiǎn)單地比較以查看相同內(nèi)射表示是否已經(jīng)存在并且如果是則丟棄重復(fù)來(lái)實(shí)現(xiàn)去重復(fù)。同樣,可以執(zhí)行這一去重復(fù)而未向去重復(fù)機(jī)制顯露內(nèi)容本身,因?yàn)闊o(wú)需逆轉(zhuǎn)信息用于去重復(fù)。這樣的去重復(fù)可以不僅出現(xiàn)在葉節(jié)點(diǎn)(例如,出現(xiàn)在文件或者文件部分或者出現(xiàn)在記錄)而且出現(xiàn)在中間節(jié)點(diǎn)(例如,記錄目錄或者組)。

另外,由于可以高效地獲得分級(jí)結(jié)構(gòu)的任何和所有節(jié)點(diǎn)的內(nèi)射的表示,所以可以比較兩個(gè)分級(jí)結(jié)構(gòu)以確定哪些節(jié)點(diǎn)在兩個(gè)分級(jí)結(jié)構(gòu)之間不同。另外,這可以被完成而甚至沒(méi)有查看在每個(gè)節(jié)點(diǎn)內(nèi)的下層數(shù)據(jù)而實(shí)際上通過(guò)僅比較更小的內(nèi)射的表示是否相同——這是對(duì)少量數(shù)據(jù)的高效和迅速比較操作。這可以在比較分級(jí)結(jié)構(gòu)的版本以確定哪些節(jié)點(diǎn)已經(jīng)在特定時(shí)間間隔中改變時(shí)特別地有用。

提供這一發(fā)明內(nèi)容以用簡(jiǎn)化的形式介紹以下在具體實(shí)施方式中進(jìn)一步描述的概念選集。這一發(fā)明內(nèi)容沒(méi)有旨在于標(biāo)識(shí)要求保護(hù)的主題內(nèi)容的關(guān)鍵特征或者實(shí)質(zhì)特征,它也沒(méi)有旨在于在確定要求保護(hù)的主題內(nèi)容的范圍時(shí)用作輔助。

附圖說(shuō)明

為了描述可以獲得本發(fā)明的以上記載和其它的優(yōu)點(diǎn)和特征的方式,對(duì)以上簡(jiǎn)要地描述的本發(fā)明的更具體描述將通過(guò)參照附圖中所示其具體實(shí)施例而被提供。理解這些附圖僅描繪本發(fā)明的典型實(shí)施例并且因此不會(huì)被視為限制它的范圍,將通過(guò)使用附圖用附加特點(diǎn)和細(xì)節(jié)來(lái)描述和說(shuō)明本發(fā)明,在附圖中:

圖1圖示了根據(jù)這里描述的原理的一個(gè)實(shí)施例的分級(jí)系統(tǒng)備份環(huán)境;

圖2圖示了用于備份分級(jí)系統(tǒng)的方法的流程圖,該方法可以由圖1的備份環(huán)境執(zhí)行;

圖3圖示了用于制定分級(jí)系統(tǒng)中的母節(jié)點(diǎn)的內(nèi)射的表示的方法,該方法可以對(duì)于分級(jí)系統(tǒng)分級(jí)中的每個(gè)非葉節(jié)點(diǎn)而被遞歸地重復(fù);

圖4圖示了示例環(huán)境,該示例環(huán)境示出了形式為文件系統(tǒng)的示例分級(jí)系統(tǒng),分級(jí)被備份到云blob存儲(chǔ)裝置中;

圖5圖示了用于將用于分級(jí)系統(tǒng)節(jié)點(diǎn)的內(nèi)射的表示提供到云中的方法;

圖6圖示了用于響應(yīng)于子節(jié)點(diǎn)中的改變來(lái)更新母節(jié)點(diǎn)的內(nèi)容的方法的流程圖;

圖7圖示了修改的環(huán)境,該環(huán)境代表對(duì)圖4的環(huán)境的修改;

圖8圖示了用于確定特定分級(jí)系統(tǒng)節(jié)點(diǎn)自從特定時(shí)間點(diǎn)起是否已經(jīng)改變的方法的流程圖;以及

圖9圖示了其中可以運(yùn)用這里描述的原理的示例計(jì)算系統(tǒng)。

具體實(shí)施方式

這里描述的至少一些實(shí)施例涉及將分級(jí)系統(tǒng)(比如文件系統(tǒng)或者數(shù)據(jù)庫(kù))高效備份到云blob存儲(chǔ)裝置中。分級(jí)系統(tǒng)的在它在先前時(shí)刻存在的分級(jí)結(jié)構(gòu)被重構(gòu)。這可以使用分級(jí)系統(tǒng)的先前內(nèi)射的表示和用于先前內(nèi)射的表示的先前逆轉(zhuǎn)信息而被實(shí)現(xiàn)。代表自從先前時(shí)間時(shí)刻起出現(xiàn)的分級(jí)系統(tǒng)中的改變的改變?nèi)罩救缓蟊挥脕?lái)制定在它在第二時(shí)間時(shí)刻存在的更新后的分級(jí)系統(tǒng)分級(jí)。然后制定并且向云blob存儲(chǔ)裝置提供分級(jí)系統(tǒng)的更新后的內(nèi)射表示和更新后的分級(jí)系統(tǒng)逆轉(zhuǎn)信息。

分級(jí)系統(tǒng)的內(nèi)射的表示是分級(jí)系統(tǒng)的內(nèi)容的一對(duì)一函數(shù),因?yàn)槟孓D(zhuǎn)信息可以用來(lái)恢復(fù)分級(jí)系統(tǒng)的內(nèi)容。內(nèi)射的表示通過(guò)使分級(jí)系統(tǒng)的內(nèi)容經(jīng)受內(nèi)射函數(shù)而被獲得。因而,與代表分級(jí)系統(tǒng)的內(nèi)射的表示不同的內(nèi)射的表示因此確信地不是由于將內(nèi)射函數(shù)應(yīng)用于分級(jí)系統(tǒng)的內(nèi)容所產(chǎn)生。相反地,與分級(jí)系統(tǒng)的內(nèi)射的表示相同的內(nèi)射的表示因此實(shí)質(zhì)上確信已經(jīng)由于將內(nèi)射函數(shù)應(yīng)用于分級(jí)系統(tǒng)的精確內(nèi)容所產(chǎn)生。在一些實(shí)施例中,除了分級(jí)系統(tǒng)分級(jí)中的各種節(jié)點(diǎn)的內(nèi)射的表示之外還可以向云blob存儲(chǔ)裝置提供整個(gè)分級(jí)系統(tǒng)的內(nèi)射的表示??梢詮姆旨?jí)系統(tǒng)分級(jí)中的較低節(jié)點(diǎn)的內(nèi)射的表示構(gòu)造分級(jí)系統(tǒng)分級(jí)中的較高節(jié)點(diǎn)的較高級(jí)內(nèi)射的表示。

根據(jù)這里描述的原理,為分級(jí)系統(tǒng)中的各種節(jié)點(diǎn)確定內(nèi)射表示。盡管在確定內(nèi)射的表示的順序方面有一些依賴性(例如,在確定母節(jié)點(diǎn)的內(nèi)射的表示之前首先有可用于母節(jié)點(diǎn)的每個(gè)子節(jié)點(diǎn)的內(nèi)射的表示),但是也有高并發(fā)水平的機(jī)會(huì)。例如,所有葉節(jié)點(diǎn)(或者至少最低級(jí)葉節(jié)點(diǎn))在可以確定它們的內(nèi)射的表示之前各自沒(méi)有依賴性。因此,在由云環(huán)境提供的處理中的高效并行(由于許多可用執(zhí)行引擎)實(shí)現(xiàn)對(duì)分級(jí)系統(tǒng)的部分或者甚至全部的內(nèi)射表示的由下至上高效和快速構(gòu)造。例如,與在單個(gè)執(zhí)行引擎中在云以外執(zhí)行的單個(gè)線程式操作比較可以迅速地確定分級(jí)系統(tǒng)中的最低級(jí)的內(nèi)射表示。

改變?nèi)罩驹试S檢測(cè)在系統(tǒng)分級(jí)的葉的改變,這些改變?nèi)缓罂梢耘c系統(tǒng)分級(jí)中的未改變的節(jié)點(diǎn)的內(nèi)射的表示一起被高效地上卷(由下至上)成新的內(nèi)射的表示。另外,從系統(tǒng)分級(jí)中的根節(jié)點(diǎn)的新根內(nèi)射的表示,關(guān)聯(lián)逆轉(zhuǎn)信息可以被用來(lái)發(fā)現(xiàn)系統(tǒng)分級(jí)的下一較低級(jí)的內(nèi)射的表示。這可以繼續(xù),直至遇到葉節(jié)點(diǎn)從而產(chǎn)生對(duì)整個(gè)分級(jí)的“解開(kāi)”。在另一方面,也可以僅關(guān)于感興趣的一個(gè)或者多個(gè)后代路徑來(lái)實(shí)現(xiàn)對(duì)分級(jí)的解開(kāi),從而避免與分級(jí)中的不感興趣的數(shù)據(jù)關(guān)聯(lián)的工作。因而,與系統(tǒng)分級(jí)結(jié)構(gòu)組合的內(nèi)射的表示允許僅基于根內(nèi)射表示(即,備份版本)和分級(jí)路徑從備份對(duì)任何指明的內(nèi)容的迅速尋址和發(fā)現(xiàn)。

根據(jù)這里描述的一些實(shí)施例,云blob存儲(chǔ)裝置具有與本地系統(tǒng)上的分級(jí)系統(tǒng)布局匹配的分級(jí)系統(tǒng)布局。這樣的分級(jí)匹配允許云直接地從改變?nèi)罩精@益,因?yàn)楦淖內(nèi)罩究梢郧∪缢梢栽诒镜叵到y(tǒng)上一樣應(yīng)用于云存儲(chǔ)裝置上的分級(jí)系統(tǒng)的結(jié)構(gòu)。

內(nèi)射的表示也在密碼上安全而沒(méi)有關(guān)聯(lián)逆轉(zhuǎn)信息??梢酝ㄟ^(guò)簡(jiǎn)單地比較以查看相同內(nèi)射表示是否已經(jīng)存在并且如果是則丟棄重復(fù)來(lái)實(shí)現(xiàn)去重復(fù)。同樣,可以執(zhí)行這一去重復(fù)而未向去重復(fù)機(jī)制顯露內(nèi)容本身,因?yàn)闊o(wú)需逆轉(zhuǎn)信息用于去重復(fù)。這樣的去重復(fù)可以不僅出現(xiàn)在葉節(jié)點(diǎn)(例如,出現(xiàn)在文件或者文件部分或者出現(xiàn)在記錄)而且出現(xiàn)在中間節(jié)點(diǎn)(例如,記錄目錄或者組)。

另外,由于可以高效地獲得分級(jí)結(jié)構(gòu)的任何和所有節(jié)點(diǎn)的內(nèi)射的表示,所以可以比較兩個(gè)分級(jí)結(jié)構(gòu)以確定哪些節(jié)點(diǎn)在兩個(gè)分級(jí)結(jié)構(gòu)之間不同。另外,這可以被完成而甚至沒(méi)有查看在每個(gè)節(jié)點(diǎn)內(nèi)的下層數(shù)據(jù)而實(shí)際上通過(guò)僅比較更小的內(nèi)射的表示是否相同——這是對(duì)少量數(shù)據(jù)的高效和迅速比較操作。這可以在比較分級(jí)結(jié)構(gòu)的版本以確定哪些節(jié)點(diǎn)已經(jīng)在特定時(shí)間間隔中改變時(shí)特別地有用。

雖然已經(jīng)和將用結(jié)構(gòu)特征和/或方法動(dòng)作特有的言語(yǔ)描述主題內(nèi)容,但是將理解,在所附權(quán)利要求中定義的主題內(nèi)容未必限于以上描述的特征或者動(dòng)作或者這里描述的動(dòng)作的順序。實(shí)際上,公開(kāi)描述的特征和動(dòng)作作為實(shí)施權(quán)利要求的示例形式。

圖1圖示了根據(jù)這里描述的原理的一個(gè)實(shí)施例的分級(jí)系統(tǒng)備份環(huán)境100。分級(jí)系統(tǒng)備份環(huán)境100包括分級(jí)系統(tǒng)101在其上操作的操作計(jì)算系統(tǒng)110。分級(jí)系統(tǒng)備份環(huán)境100也包括分級(jí)系統(tǒng)101將被備份到的云blob存儲(chǔ)裝置120?!霸芺lob”存儲(chǔ)裝置是領(lǐng)域術(shù)語(yǔ),該術(shù)語(yǔ)描述特定類(lèi)型的云存儲(chǔ)裝置,在該云存儲(chǔ)裝置中,存儲(chǔ)的數(shù)據(jù)主要按名稱而被描述并且主要地在二進(jìn)制格式中被保持。因此,云blob存儲(chǔ)裝置允許用戶在云環(huán)境中存儲(chǔ)二進(jìn)制對(duì)象(或者“blob”)。根據(jù)這里描述的原理,分系統(tǒng)的每個(gè)節(jié)點(diǎn)、包括分級(jí)系統(tǒng)的全部可以由對(duì)應(yīng)的blob代表。

操作計(jì)算系統(tǒng)110也包括快照模塊111、改變?nèi)罩灸K112和分級(jí)備份管理器113。在本描述中和在權(quán)利要求中,術(shù)語(yǔ)“計(jì)算系統(tǒng)”被廣義地定義為包括任何計(jì)算系統(tǒng)設(shè)備或者包括協(xié)作計(jì)算系統(tǒng)的分布式匯集。因而,盡管快照模塊111、改變?nèi)罩?12和分級(jí)備份管理器113中的一些或者全部可以位于與分級(jí)系統(tǒng)101相同的物理系統(tǒng)上,但是無(wú)需是這種情況。另外,甚至分級(jí)系統(tǒng)101本身可以是分布式。

這里描述的原理允許高效地備份和恢復(fù)分級(jí)系統(tǒng)(比如文件系統(tǒng)或者數(shù)據(jù)庫(kù)系統(tǒng)),而允許用于有效和自動(dòng)化的去重復(fù)的機(jī)會(huì)——特別地在共享數(shù)據(jù)時(shí)。實(shí)質(zhì)上,分級(jí)系統(tǒng)的每個(gè)節(jié)點(diǎn)(包括根目錄)可以被表示為節(jié)點(diǎn)的樹(shù)型(例如,名稱)以及該節(jié)點(diǎn)的內(nèi)容的組合的內(nèi)射的表示。

為了定義術(shù)語(yǔ)“內(nèi)射的表示”,本描述將首先討論“內(nèi)射函數(shù)”的特性。內(nèi)射函數(shù)是保存在輸入域與輸出域之間的區(qū)別的函數(shù)。換而言之,對(duì)于來(lái)自輸入域的任何可能輸入內(nèi)容,在輸出域中有僅一個(gè)可能輸出,并且沒(méi)有來(lái)自輸入域的其它區(qū)別內(nèi)容可以在輸出域中生成相同輸出。使用數(shù)學(xué)符號(hào),令f為如下函數(shù),該函數(shù)的域是集合a。如果并且僅如果對(duì)于a中的所有a和b,如果f(a)=f(b)則a=b,那么函數(shù)f為內(nèi)射。等效地,如果a不等于b,則f(a)≠f(b)。

在本描述中和在權(quán)利要求中,“統(tǒng)計(jì)內(nèi)射”函數(shù)是如下函數(shù),其中對(duì)于a中的所有a和b,如果f(a)=f(b),則高概率a=b??梢詮挠梢韵赂黜?xiàng)構(gòu)成的組選擇高概率:1)實(shí)質(zhì)上不可能,2)如此不重要以至于即使在域a中百萬(wàn)次選擇“a”和百萬(wàn)次選擇“b”,比其它方式更少可能存在有任何選擇的“a”和任何選擇的“b”使得f(a)=f(b),3)如此不重要以至于即使在域a中十億次選擇“a”和十億次選擇“b”,比其它方式更少可能存在有任何選擇的“a”和任何選擇的“b”使得f(a)=f(b),4)如此不重要以至于即使在域a中萬(wàn)億次選擇“a”和萬(wàn)億次選擇“b”,比其它方式更少可能存在有任何選擇的“a”和任何選擇的“b”使得f(a)=f(b),5)小于或者等于2-128的任何值,或者6)小于或者等于的于2-256的任何值。

例如,考慮sha-256散列算法。有這樣的算法的2256(在1077這一級(jí))個(gè)可能唯一輸出值。對(duì)于比例,一些估計(jì)讓可觀測(cè)范疇中的原子的數(shù)目在從1078到1082這一級(jí)。因而,兩個(gè)區(qū)別值產(chǎn)生sha-256散列算法的相同輸出值的可能性在可以從可觀測(cè)范疇中的所有原子隨機(jī)選擇原子并且然后在執(zhí)行相同隨機(jī)選擇時(shí)發(fā)現(xiàn)已經(jīng)再次選擇相同原子的可能性這一級(jí)。這樣的可能性可以被視為實(shí)質(zhì)上不可能。事實(shí)上,即使重復(fù)這一過(guò)程千萬(wàn)億(1015)以選擇千萬(wàn)億個(gè)原子,那兩個(gè)原子中的任何原子相同的可能性保持實(shí)質(zhì)上不可能,即使考慮生日悖論。因而,sha-256散列算法可以如這里定義術(shù)語(yǔ)那樣被視為統(tǒng)計(jì)內(nèi)射函數(shù)。因而,在本描述中和在權(quán)利要求中,“統(tǒng)計(jì)內(nèi)射函數(shù)”也可以簡(jiǎn)單地被稱為“內(nèi)射函數(shù)”。在本描述中和在權(quán)利要求中,特定內(nèi)容的“內(nèi)射的表示”意味著對(duì)特定內(nèi)容執(zhí)行統(tǒng)計(jì)內(nèi)射函數(shù)的結(jié)果。

注意,無(wú)需內(nèi)射函數(shù)中的精確理想,因?yàn)橄到y(tǒng)可能已經(jīng)具有缺陷。因而,內(nèi)射函數(shù)中的統(tǒng)計(jì)確信足以使得任何不確信在給定已經(jīng)在任何復(fù)雜系統(tǒng)中存在的少量不確信時(shí)可忽略不計(jì)。

圖2圖示了用于備份分級(jí)系統(tǒng)的方法200的流程圖??蛇x地,可以在圖1的備份環(huán)境100中執(zhí)行方法200。因而,現(xiàn)在將頻繁參照?qǐng)D1的備份環(huán)境100來(lái)描述方法200。在如下情境中執(zhí)行方法200,在該情境中,快照模塊111已經(jīng)取得了文件系統(tǒng)的以前快照,并且改變?nèi)罩?12已經(jīng)跟蹤了自從以前快照起已經(jīng)對(duì)分級(jí)系統(tǒng)施加的至少一些改變。然而,即使在沒(méi)有取得分級(jí)系統(tǒng)101的以前快照時(shí)仍然可以執(zhí)行方法200的變型。以下也將進(jìn)一步描述這樣的變型。

分級(jí)備份管理器113響應(yīng)于確定分級(jí)系統(tǒng)101將被備份來(lái)執(zhí)行備份工作(動(dòng)作201)。這里描述的原理不限于用于分級(jí)備份管理器113如何做出這一確定以備份分級(jí)系統(tǒng)101的任何機(jī)制或者策略。典型備份策略可以響應(yīng)于檢測(cè)到某些事件、時(shí)間間隔自從上次備份起的流逝、它們的組合等等。然而,由于這里描述的原理允許高效地(可能在僅分鐘、秒或者秒的小數(shù)這一級(jí))執(zhí)行對(duì)分級(jí)系統(tǒng)(或者其部分)的備份,所以備份可以比常規(guī)分級(jí)系統(tǒng)備份系統(tǒng)可以正常地允許的備份更頻繁。在一些實(shí)施例中,分級(jí)系統(tǒng)備份可以如在編輯之后保存分級(jí)(由用戶顯式地保存或者通過(guò)自動(dòng)保存操作)那樣經(jīng)常。這也可以被視為檢查對(duì)源控制系統(tǒng)的改變。

作為備份操作的部分,快照模塊111可以取得分級(jí)系統(tǒng)在它在確定發(fā)起備份的時(shí)間存在的快照(動(dòng)作202)。備份將出現(xiàn)的確定(動(dòng)作201)也觸發(fā)改變?nèi)罩疽员4嫠脑谒刂列驴煺盏臅r(shí)間存在的狀態(tài)(動(dòng)作203)。這一狀態(tài)代表自從分級(jí)系統(tǒng)的先前快照起直至新快照的點(diǎn)已經(jīng)出現(xiàn)的改變。在取得新快照(動(dòng)作202)并且保存改變?nèi)罩?動(dòng)作203)之后,改變?nèi)罩鹃_(kāi)始記錄自從取得新快照起已經(jīng)出現(xiàn)的新改變(動(dòng)作204)。新改變可以用于在對(duì)將來(lái)備份迭代執(zhí)行方法200時(shí)的后續(xù)備份。

分級(jí)備份管理器113確定分級(jí)系統(tǒng)分級(jí)在它在取得備份快照(在動(dòng)作202中)的時(shí)間存在的狀態(tài)(動(dòng)作210)。如果沒(méi)有取得分級(jí)系統(tǒng)101的先前備份(判決塊211中的“否”),則可能快照(在動(dòng)作202中取得)可以直接地用來(lái)(動(dòng)作212)確定分級(jí)系統(tǒng)分級(jí)。備選地,可能分級(jí)備份管理器113通過(guò)跟蹤目錄和文件創(chuàng)建、刪除以及修改而具有對(duì)在任何時(shí)間點(diǎn)的分級(jí)系統(tǒng)分級(jí)的持續(xù)了解。

在另一方面,如果取得了分級(jí)系統(tǒng)101的先前備份(判決塊211中的“是”),則獲得與先前分級(jí)系統(tǒng)快照對(duì)應(yīng)的分級(jí)系統(tǒng)的先前內(nèi)射的分級(jí)系統(tǒng)表示(動(dòng)作213)。也獲得與先前文件系統(tǒng)快照對(duì)應(yīng)的先前文件系統(tǒng)逆轉(zhuǎn)信息(動(dòng)作214)。

參照?qǐng)D1,分級(jí)系統(tǒng)的先前內(nèi)射的表示131a和先前分級(jí)系統(tǒng)逆轉(zhuǎn)信息132a被圖示為已經(jīng)被存儲(chǔ)在云blob存儲(chǔ)裝置120中。另外,操作計(jì)算系統(tǒng)110對(duì)先前內(nèi)射的分級(jí)系統(tǒng)表示131a和先前分級(jí)系統(tǒng)逆轉(zhuǎn)信息132a的訪問(wèn)由箭頭141代表??梢詿o(wú)需從云取回這一信息。一個(gè)優(yōu)化是從新近地向云寫(xiě)入(或者從云讀取)的某些內(nèi)射的表示(和關(guān)聯(lián)逆轉(zhuǎn)信息)的高速緩存更高效地取回這一信息。這些內(nèi)射表示(并且包含逆轉(zhuǎn)信息)按照定義為等冪而沒(méi)有相干性問(wèn)題或者正確性的風(fēng)險(xiǎn)。因此,如果內(nèi)射表示在價(jià)內(nèi)(inthecash),則可以使用內(nèi)射表示而沒(méi)有它不正確的風(fēng)險(xiǎn)。

如將從以下描述中所見(jiàn),內(nèi)射的分級(jí)系統(tǒng)表示和分級(jí)系統(tǒng)逆轉(zhuǎn)信息的生成作為備份方法200的結(jié)果而出現(xiàn)。因而,經(jīng)由對(duì)方法200的先前實(shí)行生成并且在云blob存儲(chǔ)裝置120中存儲(chǔ)先前內(nèi)射的分級(jí)系統(tǒng)表示131a和先前分級(jí)系統(tǒng)逆轉(zhuǎn)信息132a。

分級(jí)備份管理器113然后使用先前內(nèi)射的分級(jí)系統(tǒng)表示131和先前分級(jí)系統(tǒng)逆轉(zhuǎn)信息132來(lái)制定分級(jí)系統(tǒng)分級(jí)作為在先前分級(jí)系統(tǒng)快照中存在的該分級(jí)系統(tǒng)(動(dòng)作215)。以下將進(jìn)一步描述關(guān)于這如何可以被完成的細(xì)節(jié)。然而,回顧內(nèi)射的分級(jí)系統(tǒng)表示131是分級(jí)系統(tǒng)的先前狀態(tài)的區(qū)別一對(duì)一函數(shù)(即,內(nèi)射函數(shù)結(jié)果)。分級(jí)系統(tǒng)逆轉(zhuǎn)信息是任何如下信息,該信息將允許對(duì)分級(jí)系統(tǒng)的內(nèi)射的表示執(zhí)行內(nèi)射函數(shù)的反函數(shù)以由此再次取回分級(jí)系統(tǒng)的先前內(nèi)容。然而,這時(shí),僅制定分級(jí)系統(tǒng)分級(jí)(例如,目錄結(jié)構(gòu),該目錄結(jié)構(gòu)以目錄的名稱和文件的名稱代表分級(jí)系統(tǒng)分級(jí)的葉節(jié)點(diǎn))。

分級(jí)備份管理器113然后使用在先前快照與當(dāng)前快照之間的那些改變來(lái)制定改變的分級(jí)系統(tǒng)分級(jí)(動(dòng)作216)。回顧在動(dòng)作203中捕獲截至當(dāng)前快照時(shí)間的那些改變。那些改變?nèi)缓蟊火佀徒o分級(jí)備份管理器113?;旧希撨^(guò)程在最低級(jí)目錄的葉節(jié)點(diǎn)開(kāi)始、重新計(jì)算注入的表示,并且然后可以確定它們的母節(jié)點(diǎn)的較高級(jí)內(nèi)射的表示。然后該分析上移至下一較低級(jí)節(jié)點(diǎn)并且并入新內(nèi)射表示以及在先前較低級(jí)計(jì)算的新內(nèi)射表示。然后上移至下一較高級(jí)等等。因此,應(yīng)用改變的順序在給定的級(jí)內(nèi)任意而在級(jí)之間“由最低至最高”。出于這一相同原因,改變?nèi)罩旧踔翢o(wú)需按時(shí)間記錄改變。

如果日志條目指示葉節(jié)點(diǎn)已經(jīng)被變更,則使該葉節(jié)點(diǎn)無(wú)效,這意味著葉節(jié)點(diǎn)被標(biāo)記為需要備份。如果日志條目指示添加葉節(jié)點(diǎn),則該葉節(jié)點(diǎn)也被標(biāo)記為待備份。如果刪除文件或者目錄,則該刪除也被標(biāo)記為在備份中待反映。這些操作中的任何操作也產(chǎn)生所影響的葉節(jié)點(diǎn)的前代鏈中的節(jié)點(diǎn)中的任何節(jié)點(diǎn)的內(nèi)容改變。因而,為了捕獲前代鏈中的那些目錄的當(dāng)前狀態(tài),那些目錄的內(nèi)容被備份。然而,由于這里描述的原理,對(duì)這樣的目錄的備份沒(méi)有在計(jì)算上密集、無(wú)需在操作計(jì)算系統(tǒng)110與云blob存儲(chǔ)裝置120之間的大量帶寬并且無(wú)需在云blob存儲(chǔ)裝置120內(nèi)的大量存儲(chǔ)空間。在一個(gè)備選實(shí)施例中,改變?nèi)罩緵](méi)有用來(lái)檢測(cè)節(jié)點(diǎn)添加、刪除或者重命名。取而代之,在先前和當(dāng)前備份中遍歷分級(jí)結(jié)果(而沒(méi)有檢查內(nèi)容本身)。節(jié)點(diǎn)標(biāo)識(shí)符然后用來(lái)在重命名葉節(jié)點(diǎn)時(shí)保存而從未被重用以確定哪些葉節(jié)點(diǎn)是新的而哪些是舊的以及哪些被重命名,從而從一個(gè)備份移至下一備份。這等效于使用完美改變?nèi)罩疽杂涗浫~節(jié)點(diǎn)添加、刪除和重命名。然而,這一備選實(shí)施例確實(shí)避免在多個(gè)備份之間多次重命名葉節(jié)點(diǎn)時(shí)存在的一些競(jìng)態(tài)條件,并且允許改變?nèi)罩颈苊庑枰磿r(shí)間記錄改變。

這時(shí),無(wú)論分級(jí)系統(tǒng)備份是正在被第一次執(zhí)行(判決塊211中的“否”)還是僅為更新后的分級(jí)系統(tǒng)備份(判決塊212中的“是”),更新后的分級(jí)系統(tǒng)分級(jí)已經(jīng)被制定(動(dòng)作212或者動(dòng)作216)。在任一情況下,分級(jí)備份管理器113通過(guò)將統(tǒng)計(jì)內(nèi)射函數(shù)應(yīng)用于分級(jí)系統(tǒng)內(nèi)容來(lái)生成分級(jí)系統(tǒng)的更新后的內(nèi)射的表示(動(dòng)作221)。盡管這可能看似是繁瑣和處理密集的任務(wù),但是使用以下進(jìn)一步描述的原理可以迅速地和高效地執(zhí)行對(duì)更新后的內(nèi)射的文件系統(tǒng)表示的這一制定,尤其在以前已經(jīng)為先前狀態(tài)備份了文件系統(tǒng)時(shí)。如果該節(jié)點(diǎn)尚未改變,因?yàn)樗郧氨淮_定并且不能已經(jīng)改變,則無(wú)需執(zhí)行對(duì)內(nèi)射函數(shù)的計(jì)算(無(wú)論是在葉節(jié)點(diǎn)還是任何其它節(jié)點(diǎn))。分級(jí)備份管理器113也使用改變的分級(jí)系統(tǒng)分級(jí)來(lái)制定(動(dòng)作222)更新后的分級(jí)系統(tǒng)逆轉(zhuǎn)信息。

分級(jí)備份管理器113然后使得更新后的內(nèi)射的分級(jí)系統(tǒng)表示和更新后的分級(jí)系統(tǒng)逆轉(zhuǎn)信息被提供給云blob存儲(chǔ)裝置120(動(dòng)作223)。例如,在圖1中,操作計(jì)算系統(tǒng)110提供更新后的內(nèi)射的分級(jí)系統(tǒng)表示131b和更新后的分級(jí)系統(tǒng)逆轉(zhuǎn)信息132b由箭頭142代表。在這一提供(由箭頭142代表)之后,更新后的內(nèi)射的分級(jí)系統(tǒng)表示131b和更新后的分級(jí)系統(tǒng)逆轉(zhuǎn)信息132b被圖示為被存儲(chǔ)在云blob存儲(chǔ)裝置120中。

注意,可以對(duì)于分級(jí)系統(tǒng)的每個(gè)備份重復(fù)這一方法200。在分級(jí)系統(tǒng)的下一備份中,更新后的內(nèi)射的分級(jí)系統(tǒng)表示131b和更新后的分級(jí)系統(tǒng)逆轉(zhuǎn)信息132b將分別發(fā)揮先前內(nèi)射的文件系統(tǒng)表示131a和先前分級(jí)系統(tǒng)逆轉(zhuǎn)信息132a的作用。另外,來(lái)自改變?nèi)罩镜母淖儗⒖甲詮男聜浞荻皇窍惹皞浞萜鸬母淖?。因此,橢圓131c代表可以在云blob存儲(chǔ)裝置120內(nèi)存在分級(jí)系統(tǒng)101的內(nèi)射的分級(jí)系統(tǒng)表示的多個(gè)版本。類(lèi)似地,橢圓132c代表可以在云blob存儲(chǔ)裝置120內(nèi)存在分級(jí)系統(tǒng)逆轉(zhuǎn)信息的多個(gè)版本,每個(gè)版本允許恢復(fù)到不同備份的版本。

如以前提到的那樣,分級(jí)備份管理器為分級(jí)系統(tǒng)在它在備份時(shí)間的整個(gè)狀態(tài)制定內(nèi)射分級(jí)系統(tǒng)表示(動(dòng)作221)和分級(jí)系統(tǒng)逆轉(zhuǎn)信息(動(dòng)作222)。在一個(gè)實(shí)施例中,為了這樣做,分級(jí)備份管理器為在分級(jí)系統(tǒng)內(nèi)的每個(gè)節(jié)點(diǎn)制定內(nèi)射分級(jí)系統(tǒng)表示。取代對(duì)在文件系統(tǒng)分級(jí)中的每級(jí)的全部?jī)?nèi)容執(zhí)行統(tǒng)計(jì)內(nèi)射函數(shù)(例如,sha-256散列),分級(jí)備份管理器在分級(jí)系統(tǒng)分級(jí)中的最低葉節(jié)點(diǎn)開(kāi)始并且使用特定目錄中的子節(jié)點(diǎn)的內(nèi)射的表示以便更快地制定母節(jié)點(diǎn)的內(nèi)射的表示。

圖3圖示了用于制定分級(jí)系統(tǒng)中的母節(jié)點(diǎn)(例如,目錄)的內(nèi)射的表示的方法300,該方法可以對(duì)于文件系統(tǒng)分級(jí)中的每個(gè)非葉節(jié)點(diǎn)而被遞歸地重復(fù)。圖4圖示了示例環(huán)境400,該環(huán)境示出了形式為文件系統(tǒng)分級(jí)401的示例分級(jí)系統(tǒng)分級(jí)被備份到云blob存儲(chǔ)裝置420中。因而,現(xiàn)在將頻繁參照示例環(huán)境400來(lái)描述方法300。示例文件系統(tǒng)分級(jí)401為了在描述這里描述的原理時(shí)清楚而是簡(jiǎn)單的。然而,這里描述的原理不限于文件系統(tǒng)分級(jí)的結(jié)構(gòu)或者復(fù)雜性。一些文件系統(tǒng)分級(jí)可以具有數(shù)千個(gè)或者甚至數(shù)百萬(wàn)個(gè)節(jié)點(diǎn)(即,目錄或者文件)。

由于哈細(xì)化是用于執(zhí)行統(tǒng)計(jì)內(nèi)射函數(shù)的有效機(jī)制,所以統(tǒng)計(jì)內(nèi)射函數(shù)的執(zhí)行在下文有時(shí)將被稱為“散列化”,并且內(nèi)射的內(nèi)容表示在下文有時(shí)將被稱為“散列化”的表示。在圖4的所圖示的示例中,散列化的表示是sha-256散列。

現(xiàn)在假設(shè)這是文件系統(tǒng)分級(jí)401已經(jīng)第一次被備份。在為每個(gè)非葉節(jié)點(diǎn)執(zhí)行方法300之前,用于葉節(jié)點(diǎn)中的每個(gè)葉節(jié)點(diǎn)的散列被獲得。更一般而言,用于給定的節(jié)點(diǎn)的散列直至已知用于它的所有子節(jié)點(diǎn)的散列才能被確定,因此導(dǎo)致遍歷分級(jí)的由上至下散列化。通常地,文件系統(tǒng)分級(jí)中的葉節(jié)點(diǎn)是文件,除了在空目錄的獨(dú)特情況下之外。在示例文件系統(tǒng)分級(jí)401中,有分別由名稱“c”、“d”和“e”調(diào)用的三個(gè)葉節(jié)點(diǎn)文件413、414、415。

由于方法300被由上至下遞歸地執(zhí)行,所以方法300將首先關(guān)于目錄414(名稱為“b”)而被執(zhí)行以便獲得目錄“b”的內(nèi)射的表示。因此,目錄“b”在方法300的這一遞歸迭代中是“母目錄”。

根據(jù)方法300,對(duì)于母目錄“b”的每個(gè)子節(jié)點(diǎn),對(duì)子節(jié)點(diǎn)執(zhí)行(動(dòng)作301)統(tǒng)計(jì)內(nèi)射函數(shù)(例如,散列)以獲得子節(jié)點(diǎn)的內(nèi)射的表示(例如,散列)。因此,文件“d”的內(nèi)容被散列化以獲得散列化的結(jié)果0x1875,并且文件“e”的內(nèi)容被散列化以獲得散列化的結(jié)果0x8367。此外,可用來(lái)將內(nèi)射的表示逆轉(zhuǎn)回到原有內(nèi)容的逆轉(zhuǎn)信息被制定(動(dòng)作302)。逆轉(zhuǎn)信息可以在與形成內(nèi)射的表示相似的過(guò)程中被生成。

在一個(gè)實(shí)施例中,為了將文件散列化,在小文件與更大文件之間做出區(qū)別。例如,對(duì)于小文件,文件散列可以確切地是文件內(nèi)容的散列。然而,對(duì)于較大的文件,可以將那些文件劃分成可以由頁(yè)面表尋址的部分。對(duì)于更較大的文件,頁(yè)面表可以具有若干級(jí)。在這一情況下,文件散列可以是頂級(jí)頁(yè)面表的散列。頂級(jí)頁(yè)面表包含下一較低級(jí)頁(yè)面表的頁(yè)面的散列等等。以這一方式,較大文件一次一個(gè)部分地被處理,并且頁(yè)面表分級(jí)在邏輯上活在文件系統(tǒng)分級(jí)以下。例如,如果參照?qǐng)D4,假設(shè)文件“e”是大文件??梢砸呀?jīng)通過(guò)散列化頁(yè)面表中的頂級(jí)來(lái)獲得了散列值0x8367。因此,子節(jié)點(diǎn)415可以被視為在該相同點(diǎn)嫁接到文件系統(tǒng)分級(jí)中的頁(yè)面表樹(shù)。在這一情況下,為了實(shí)現(xiàn)嫁接,內(nèi)射表示在圖形的該點(diǎn)的內(nèi)容將代表節(jié)點(diǎn)指向頁(yè)面表。存在用于其它節(jié)點(diǎn)的相似標(biāo)志,該標(biāo)志指示節(jié)點(diǎn)是否為中間節(jié)點(diǎn)(比如目錄)、葉節(jié)點(diǎn)(比如文件)、單級(jí)頁(yè)面表或者多級(jí)頁(yè)面表(與級(jí)數(shù)目一起)。

一旦用于所有子節(jié)點(diǎn)的散列被獲得,統(tǒng)計(jì)內(nèi)射函數(shù)就對(duì)每個(gè)子節(jié)點(diǎn)內(nèi)射的表示(例如,每個(gè)子散列)與該子節(jié)點(diǎn)的至少屬性(例如,文件系統(tǒng)名稱,該文件系統(tǒng)名稱的表示將被保存在云中)一起被執(zhí)行(動(dòng)作311)。例如,在圖4中,分級(jí)備份管理器可以執(zhí)行以下串“d=0x1875,e=0x8367”的散列,該串包括文件“d”和“e”的散列以及文件的對(duì)應(yīng)名稱。在這一情況下,用于目錄“b”的所得散列是0x4808。因而,現(xiàn)在存在目錄“b”的內(nèi)射的表示。另外,可用來(lái)取回每個(gè)子節(jié)點(diǎn)的內(nèi)射的表示及其屬性的逆轉(zhuǎn)信息被定制(動(dòng)作312)。例如,該逆轉(zhuǎn)信息可以用來(lái)在給定輸入0x4808時(shí)獲得串“d=0x1875,e=0x8367”。

該遞歸然后可以前移一個(gè)迭代以被應(yīng)用于文件系統(tǒng)的根目錄“a”。因此,目錄“a”在方法300的這一下一遞歸迭代中是“母目錄”。

根據(jù)方法300,對(duì)于母目錄“a”的每個(gè)子節(jié)點(diǎn),對(duì)子節(jié)點(diǎn)執(zhí)行統(tǒng)計(jì)內(nèi)射函數(shù)(動(dòng)作301)以獲得子節(jié)點(diǎn)的內(nèi)射的表示。因此,將獲得目錄“b”的內(nèi)射的表示。然而,回顧已經(jīng)通過(guò)方法300的先前迭代而獲得目錄“b”的內(nèi)射的表示(0x7481),因此遞歸。因而,文件“c”被散列化以獲得它的內(nèi)射的表示0x1277。此外,可用來(lái)將內(nèi)射的表示逆轉(zhuǎn)回到原有內(nèi)容的逆轉(zhuǎn)信息被定制(動(dòng)作302)。

然后,對(duì)每個(gè)子代內(nèi)射的表示與該子節(jié)點(diǎn)的至少屬性(例如,名稱)一起執(zhí)行統(tǒng)計(jì)內(nèi)射函數(shù)(動(dòng)作311)。例如,在圖4中,分級(jí)備份管理器可以執(zhí)行以下串“b/=0x4808,c=0x1277”的散列,該串包括在方法300的先前迭代中獲得的目錄“b”的內(nèi)射的表示以及文件“c”的散列以及子目錄和文件的對(duì)應(yīng)名稱。在這一情況下,用于目錄“a”的所得散列是0x7481。因而,現(xiàn)在存在根目錄“a”的內(nèi)射的表示。另外,可用來(lái)取回每個(gè)子節(jié)點(diǎn)的內(nèi)射的表示及其屬性的逆轉(zhuǎn)信息被定制(動(dòng)作312)。例如,該逆轉(zhuǎn)信息可以用來(lái)在給定輸入0x7481時(shí)獲得串“b/=0x4808,c=0x1277”。

根據(jù)動(dòng)作223,可以向云blob存儲(chǔ)裝置提供用于文件系統(tǒng)節(jié)點(diǎn)中的至少一些文件系統(tǒng)節(jié)點(diǎn)中的每個(gè)文件系統(tǒng)節(jié)點(diǎn)的內(nèi)射的表示。圖5圖示了用于將用于文件系統(tǒng)節(jié)點(diǎn)的內(nèi)射的表示提供到云blob存儲(chǔ)裝置中的方法500。雖然不是需要的,但是可以從文件系統(tǒng)分級(jí)的頂部下至文件系統(tǒng)分級(jí)的葉節(jié)點(diǎn)遞歸地執(zhí)行方法500。因而,在那些實(shí)施例中,直至向云blob存儲(chǔ)裝置提供用于母節(jié)點(diǎn)的散列,才向云blob存儲(chǔ)裝置提供用于給定的文件系統(tǒng)節(jié)點(diǎn)的散列。這可以在其中云blob存儲(chǔ)裝置垃圾箱通過(guò)確定內(nèi)射的表示是否由另一內(nèi)射的表示引用來(lái)收集的情形中有幫助。如果在母節(jié)點(diǎn)的散列之前沒(méi)有首先提供子節(jié)點(diǎn)的散列,則這可能造成這樣的垃圾收集算法將子散列裁決為不再被引用并且被標(biāo)記用于處置。

因而,首先在根目錄(a)是“母”目錄開(kāi)始執(zhí)行方法500。首先向云blob存儲(chǔ)裝置提供母內(nèi)射的表示(例如,目錄“a”的散列0x7481)(和關(guān)聯(lián)逆轉(zhuǎn)信息)(動(dòng)作501)以在云blob存儲(chǔ)裝置420中制定條目421。然后向云blob存儲(chǔ)裝置提供所有子代內(nèi)射的表示(例如,目錄b的散列0x4804和文件c的散列0x1277)(和關(guān)聯(lián)逆轉(zhuǎn)信息)(動(dòng)作511)。例如,動(dòng)作511可以在云blob存儲(chǔ)裝置中將條目422和423與它們的逆轉(zhuǎn)信息一起產(chǎn)生(動(dòng)作511)。

然后關(guān)于目錄“b”是母目錄再次執(zhí)行方法500。當(dāng)然,已經(jīng)在方法500的先前執(zhí)行中在云blob存儲(chǔ)裝置中保持了目錄b的散列0x4808及其逆轉(zhuǎn)信息(見(jiàn)條目422)作為動(dòng)作511和512的一個(gè)實(shí)例。因而,方法500直接地前進(jìn)到用于子節(jié)點(diǎn)“d”和“e”的動(dòng)作511和512。因此,在云blob存儲(chǔ)裝置中將用于文件“d”的散列0x1875和用于文件“e”的散列0x8367與它們的逆轉(zhuǎn)信息一起保持(動(dòng)作512)。例如,動(dòng)作511和512可以在云blob存儲(chǔ)裝置420中產(chǎn)生條目424和425。

這一以上描述構(gòu)成用于如何可以初始地備份文件系統(tǒng)的細(xì)節(jié)。然而,一旦文件系統(tǒng)被初始地備份,則將存在對(duì)文件系統(tǒng)目錄的內(nèi)容的進(jìn)一步更新。例如,無(wú)論何時(shí)添加或者刪除目錄以及無(wú)論何時(shí)創(chuàng)建、更新或者刪除文件,文件系統(tǒng)的內(nèi)容都改變。

圖6圖示了用于響應(yīng)于子節(jié)點(diǎn)中的改變來(lái)更新母目錄的內(nèi)容的方法600的流程圖。方法600可以在初始地改變的節(jié)點(diǎn)開(kāi)始一路直至文件系統(tǒng)的根目錄而被遞歸地執(zhí)行。這在分級(jí)中被由上至下完成。

參照?qǐng)D4,在特定示例中,文件“c”已經(jīng)被編輯。當(dāng)然,文件“c”的內(nèi)容因此已經(jīng)改變,并且散列“0x1277”不再是更新后的文件“c”的內(nèi)射的表示。同樣地,在文件“c”的前代鏈中一路通向根目錄的任何目錄也已經(jīng)讓它的內(nèi)容改變。因而,那些內(nèi)射的表示也不再有效。

圖7圖示了修改的環(huán)境700,該修改的環(huán)境代表圖4的環(huán)境400的修改?,F(xiàn)在將關(guān)于圖4的原有環(huán)境400和圖7的修改的環(huán)境700來(lái)描述方法600。

在檢測(cè)到特定母目錄中的子節(jié)點(diǎn)已經(jīng)改變時(shí)方法600被觸發(fā)(動(dòng)作601)。在方法600的第一實(shí)例中,該方法檢測(cè)到文件“c”已經(jīng)改變。因而,在方法600的這一第一實(shí)例中,文件“c”是“子節(jié)點(diǎn)”并且根目錄“a/”是母目錄。

在檢測(cè)到子節(jié)點(diǎn)(文件“c”)的內(nèi)容的更新時(shí),統(tǒng)計(jì)內(nèi)射函數(shù)對(duì)文件系統(tǒng)的子節(jié)點(diǎn)的修正的內(nèi)容被執(zhí)行以制定子節(jié)點(diǎn)的修正的子代內(nèi)射的表示(動(dòng)作602)以及可用來(lái)將修正的子代內(nèi)射的表示逆轉(zhuǎn)回到子節(jié)點(diǎn)的修正的內(nèi)容的修正的子代逆轉(zhuǎn)信息(動(dòng)作603)。動(dòng)作602和603可以被視為分別與動(dòng)作301和302完全地相同,但是關(guān)于子節(jié)點(diǎn)的修正的內(nèi)容和僅關(guān)于該子節(jié)點(diǎn)(而不是母目錄的所有子節(jié)點(diǎn))而被執(zhí)行。

例如,在圖7中,文件“c”的內(nèi)容被散列化以獲得新散列0x5444。如果文件“c”是由頁(yè)面表分級(jí)代表的大文件,則方法600實(shí)際地首先在頁(yè)面表的葉節(jié)點(diǎn)被執(zhí)行。然后,方法600將被遞歸地執(zhí)行直至它對(duì)頁(yè)面表樹(shù)中的母節(jié)點(diǎn)散列化。注意,用于節(jié)點(diǎn)412、414和415的內(nèi)射的表示和逆轉(zhuǎn)信息無(wú)需重新計(jì)算。

然后對(duì)修正的子代內(nèi)射的表示和修正的子節(jié)點(diǎn)的屬性重新執(zhí)行統(tǒng)計(jì)內(nèi)射函數(shù)以制定母目錄的修正的母代內(nèi)射的表示(動(dòng)作611)和可用來(lái)將目錄的母代表示逆轉(zhuǎn)成修正的子代內(nèi)射的表示和修正的子節(jié)點(diǎn)的屬性的修正的母逆轉(zhuǎn)信息(動(dòng)作612)。動(dòng)作611和612可以被視為分別與動(dòng)作311和312完全地相同,但是也使用子節(jié)點(diǎn)413的改變的內(nèi)射的表示而被執(zhí)行。在圖7中,例如,串“b/=0x4808,c=0x5444”被散列化以獲得根目錄“a”的新內(nèi)射的表示0x4489。如果目錄“a”不是根目錄,則方法600可以被遞歸地執(zhí)行,從而使得為從文件(或者從文件部分)沿著文件系統(tǒng)分級(jí)(以及也可能沿著頁(yè)面表分級(jí))的前代鏈一路直至根目錄的每個(gè)節(jié)點(diǎn)重新制定內(nèi)射的表示和逆轉(zhuǎn)信息。

方法500然后可以被遞歸地重新執(zhí)行以將那些改變節(jié)點(diǎn)更新到云blob存儲(chǔ)裝置中。例如,可以首先在云blob存儲(chǔ)裝置中創(chuàng)建用于根目錄“a/”的條目421’,繼而是用于改變的文件“c”的條目423’。注意,用于根目錄“a/”的先前條目421和用于文件“c”的先前條目423仍然保留在云blob存儲(chǔ)裝置中。這可以被完成,因?yàn)樯⒘斜旧?和關(guān)聯(lián)逆轉(zhuǎn)信息)相對(duì)地小,尤其地與云blob存儲(chǔ)裝置能力比較。這也允許通過(guò)簡(jiǎn)單地恢復(fù)回到先前條目421和423來(lái)容易地撤消文件系統(tǒng)改變。

以上描述了以保存版本化的方式備份文件系統(tǒng)。然而,備份操作的反過(guò)程可以被執(zhí)行以恢復(fù)內(nèi)容。例如,假設(shè)文件“c”在操作計(jì)算系統(tǒng)110上以某種方式丟失。分級(jí)備份管理器113因此可以取回條目423(或者如果恢復(fù)到更新后的版本則為423’)并且使用逆轉(zhuǎn)信息以從文件“c”的內(nèi)射的表示重新制定文件“c”的內(nèi)容。分級(jí)備份管理器113也可以已經(jīng)通過(guò)取回條目421(或者如果恢復(fù)到更新后的版本則為421’)來(lái)開(kāi)始并且使用逆轉(zhuǎn)信息以由此恢復(fù)串“b/=0x4808,c=0x5444”。為了這樣做,也將存在用于到達(dá)文件的興趣路徑的一些標(biāo)識(shí)。這給定了文件“c”的如下子代內(nèi)射的表示,可以從該子代內(nèi)射的表示(也使用用于文件“c”的逆轉(zhuǎn)信息)恢復(fù)文件“c”的內(nèi)容。如果整個(gè)文件系統(tǒng)被丟失,則可以由上至下重復(fù)這一過(guò)程,因?yàn)榭梢詮哪腹?jié)點(diǎn)的內(nèi)射的表示獲得目錄的每個(gè)子節(jié)點(diǎn)的子代內(nèi)射的表示(以及名稱)。

也可以使用這里描述的原理來(lái)簡(jiǎn)化差異化。例如,為了確定特定文件系統(tǒng)節(jié)點(diǎn)自從特定時(shí)間點(diǎn)起是否已經(jīng)改變,可以遵循圖8的方法800。例如,特定文件系統(tǒng)節(jié)點(diǎn)的內(nèi)射的表示被制定(動(dòng)作801)。這可以通過(guò)使用標(biāo)識(shí)的路徑從文件系統(tǒng)分級(jí)的頂部向下遞歸地執(zhí)行方法300直至制定特定文件系統(tǒng)節(jié)點(diǎn)的內(nèi)射的表示而被實(shí)現(xiàn)。

然后比較(動(dòng)作802)重新制定的內(nèi)射的表示與代表該文件系統(tǒng)節(jié)點(diǎn)在特定先前時(shí)間時(shí)刻的內(nèi)容的先前內(nèi)射的表示。如果沒(méi)有匹配(判決塊803中的“否”),則內(nèi)容已經(jīng)改變(判決804)。如果有確切匹配(判決塊803中的“是”),則內(nèi)容尚未改變(判決805)。

計(jì)算系統(tǒng)對(duì)這里描述的原理的實(shí)施是重要的。例如,以上描述的操作計(jì)算系統(tǒng)110可以是計(jì)算系統(tǒng)本身。另外,快照模塊111、改變?nèi)罩灸K112和分級(jí)備份管理器可以各自是在計(jì)算系統(tǒng)上操作的模塊。例如,這樣的模塊可以響應(yīng)于計(jì)算系統(tǒng)的一個(gè)或者多個(gè)處理器運(yùn)行形成由計(jì)算系統(tǒng)訪問(wèn)的計(jì)算機(jī)程序產(chǎn)品的在一個(gè)或者多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上被體現(xiàn)的一個(gè)或者多個(gè)計(jì)算機(jī)可執(zhí)行指令而被操作和/或?qū)嵗?。因而,現(xiàn)在將關(guān)于圖9描述一般計(jì)算系統(tǒng)。

計(jì)算系統(tǒng)現(xiàn)在越來(lái)越多地采用廣泛多種形式。計(jì)算系統(tǒng)可以例如是手持設(shè)備、電器、膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、大型機(jī)、分布式計(jì)算系統(tǒng)或者甚至常規(guī)地沒(méi)有視為計(jì)算系統(tǒng)的設(shè)備。在本描述中和在權(quán)利要求中,術(shù)語(yǔ)“計(jì)算系統(tǒng)”被廣義地定義為包括任何如下設(shè)備或者系統(tǒng)(或者其組合),該設(shè)備或者系統(tǒng)包括至少一個(gè)物理有形處理器以及能夠在其上具有可以由處理器執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的物理有形存儲(chǔ)器。計(jì)算系統(tǒng)可以被分布在網(wǎng)絡(luò)環(huán)境之上并且可以包括多個(gè)構(gòu)成計(jì)算系統(tǒng)。

如圖9中所示,在它的最基本配置中,計(jì)算系統(tǒng)900通常地包括至少一個(gè)處理單元902和存儲(chǔ)器904。存儲(chǔ)器904可以是物理系統(tǒng)存儲(chǔ)器,該物理系統(tǒng)存儲(chǔ)器可以是易失性、非易失性或者二者的某個(gè)組合。術(shù)語(yǔ)“存儲(chǔ)器”這里也可以用來(lái)指代非易失性海量存儲(chǔ)裝置,比如物理存儲(chǔ)介質(zhì)。如果計(jì)算系統(tǒng)為分布式,則處理、存儲(chǔ)器和/或存儲(chǔ)能力也可以為分布式。

如這里所用,術(shù)語(yǔ)“可執(zhí)行模塊”或者“可執(zhí)行部件”可以指代可以在計(jì)算系統(tǒng)上倍執(zhí)行的軟件對(duì)象、例程或者方法。這里描述的不同部件、模塊、引擎和服務(wù)可以被實(shí)施為在計(jì)算系統(tǒng)上執(zhí)行的對(duì)象或者過(guò)程(例如,被實(shí)施為分離的線程)。

在以下描述中,實(shí)施例參照由一個(gè)或者多個(gè)計(jì)算系統(tǒng)執(zhí)行的動(dòng)作而被描述。如果這樣的動(dòng)作在軟件中被實(shí)施,則執(zhí)行動(dòng)作的關(guān)聯(lián)計(jì)算系統(tǒng)的一個(gè)或者多個(gè)處理器響應(yīng)于已經(jīng)執(zhí)行了計(jì)算機(jī)可執(zhí)行指令來(lái)指引計(jì)算系統(tǒng)的操作。例如,這樣的計(jì)算機(jī)可執(zhí)行指令可以在形成計(jì)算機(jī)程序產(chǎn)品的一個(gè)或者多個(gè)計(jì)算機(jī)可讀介質(zhì)上被體現(xiàn)。這樣的操作的示例涉及數(shù)據(jù)的操縱。可以在計(jì)算系統(tǒng)900的存儲(chǔ)器904中存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令(和被操縱的數(shù)據(jù))。計(jì)算系統(tǒng)900也可以包含允許計(jì)算系統(tǒng)900例如通過(guò)網(wǎng)絡(luò)910來(lái)與其它消息處理器通信的通信信道908。計(jì)算系統(tǒng)900也可以具有用于向用戶進(jìn)行顯示的顯示器912。

這里描述的實(shí)施例可以如以下更具體討論的那樣包括或者利用專用或者通用計(jì)算機(jī)系統(tǒng),該專用或者通用計(jì)算機(jī)系統(tǒng)包括計(jì)算機(jī)硬件,如例如一個(gè)或者多個(gè)處理器和系統(tǒng)存儲(chǔ)器??梢栽诳偞鎯?chǔ)器904內(nèi)包括系統(tǒng)存儲(chǔ)器。系統(tǒng)存儲(chǔ)器也可以被稱為“主存儲(chǔ)器”并且包括可由至少一個(gè)處理單元902通過(guò)存儲(chǔ)器總線尋址的存儲(chǔ)器位置,在該情況下,地址位置在存儲(chǔ)器總線本身上被確立。系統(tǒng)存儲(chǔ)器已經(jīng)是傳統(tǒng)易失性,但是這里描述的原理也在其中系統(tǒng)存儲(chǔ)器部分地或者甚至完全地非易失性的境況中適用。

在本發(fā)明的范圍內(nèi)的實(shí)施例也包括用于攜帶或者存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理和其它計(jì)算機(jī)可讀介質(zhì)。這樣的計(jì)算機(jī)可讀介質(zhì)可以是可以由通用或者專用計(jì)算機(jī)系統(tǒng)訪問(wèn)的任何可用介質(zhì)。存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的計(jì)算機(jī)可讀介質(zhì)是計(jì)算機(jī)存儲(chǔ)介質(zhì)。攜帶計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的計(jì)算機(jī)可讀介質(zhì)是傳輸介質(zhì)。因此,舉例而言而沒(méi)有限制,本發(fā)明的實(shí)施例可以包括至少兩個(gè)截然不同種類(lèi)的計(jì)算機(jī)可讀介質(zhì):計(jì)算機(jī)存儲(chǔ)介質(zhì)和傳輸介質(zhì)。

計(jì)算機(jī)存儲(chǔ)介質(zhì)是存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理硬件存儲(chǔ)介質(zhì)。物理硬件存儲(chǔ)介質(zhì)包括計(jì)算機(jī)硬件,比如ram、rom、eeprom、固態(tài)驅(qū)動(dòng)(“ssd”)、閃存、相變存儲(chǔ)器(“pcm”)、光盤(pán)存儲(chǔ)裝置、磁盤(pán)存儲(chǔ)裝置或者其它磁存儲(chǔ)設(shè)備或者可以用來(lái)以計(jì)算機(jī)可執(zhí)行指令或者數(shù)據(jù)結(jié)構(gòu)的形式存儲(chǔ)程序代碼的任何其它硬件存儲(chǔ)設(shè)備,這些計(jì)算機(jī)可執(zhí)行指令或者數(shù)據(jù)結(jié)構(gòu)可以由通用或者專用計(jì)算機(jī)系統(tǒng)訪問(wèn)和執(zhí)行以實(shí)施本發(fā)明的公開(kāi)的功能。

傳輸介質(zhì)可以包括可以用來(lái)以計(jì)算機(jī)可執(zhí)行指令或者數(shù)據(jù)結(jié)構(gòu)的形式攜帶程序代碼并且可以由通用或者專用計(jì)算機(jī)系統(tǒng)訪問(wèn)的網(wǎng)絡(luò)和/或數(shù)據(jù)鏈路。“網(wǎng)絡(luò)”被定義為實(shí)現(xiàn)電子數(shù)據(jù)在計(jì)算機(jī)系統(tǒng)和/或模塊和/或其它電子設(shè)備之間的傳送的一個(gè)或者多個(gè)數(shù)據(jù)鏈路。在信息通過(guò)網(wǎng)絡(luò)或者另一通信連接(硬接線、無(wú)線或者硬接線或者無(wú)線的組合)向計(jì)算機(jī)系統(tǒng)被傳送或者提供時(shí),計(jì)算機(jī)系統(tǒng)可以將連接視為傳輸介質(zhì)。以上示例的組合也應(yīng)當(dāng)被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。

另外,在到達(dá)各種計(jì)算機(jī)系統(tǒng)部件時(shí),可以從傳輸介質(zhì)向計(jì)算機(jī)存儲(chǔ)介質(zhì)自動(dòng)地傳送形式為計(jì)算機(jī)可執(zhí)行指令或者數(shù)據(jù)結(jié)構(gòu)的程序代碼(或者相反)。例如,通過(guò)網(wǎng)絡(luò)或者數(shù)據(jù)鏈路而被接收的計(jì)算機(jī)可執(zhí)行指令或者數(shù)據(jù)結(jié)構(gòu)可以被緩存在網(wǎng)絡(luò)接口模塊(例如,“nic”)內(nèi)的ram中,并且然后最終地被傳送給計(jì)算機(jī)系統(tǒng)ram和/或在計(jì)算機(jī)系統(tǒng)處的更少易失性的計(jì)算機(jī)存儲(chǔ)介質(zhì)。因此,應(yīng)當(dāng)理解,計(jì)算機(jī)存儲(chǔ)介質(zhì)可以被包括在也(或者甚至主要地)利用傳輸介質(zhì)的計(jì)算機(jī)系統(tǒng)部件中。

計(jì)算機(jī)可執(zhí)行指令例如包括如下指令和數(shù)據(jù),這些指令和數(shù)據(jù)當(dāng)在一個(gè)或者多個(gè)處理器處被執(zhí)行時(shí)使得通用計(jì)算機(jī)系統(tǒng)、專用計(jì)算機(jī)系統(tǒng)或者專用處理設(shè)備執(zhí)行某個(gè)功能或者某組功能。計(jì)算機(jī)可執(zhí)行指令可以例如是二進(jìn)制文件、中間格式指令(比如匯編語(yǔ)言)或者甚至源代碼。

本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,可以在具有許多類(lèi)型的計(jì)算機(jī)系統(tǒng)配置的網(wǎng)絡(luò)計(jì)算環(huán)境中實(shí)踐這里描述的原理,這些計(jì)算機(jī)系統(tǒng)配置包括個(gè)人計(jì)算機(jī)、按提示計(jì)算機(jī)、膝上型計(jì)算機(jī)、消息處理器、手持設(shè)備、多處理器系統(tǒng)、基于微處理器的或者可編程的消費(fèi)者電子裝置、網(wǎng)絡(luò)pc、小型計(jì)算機(jī)、大型機(jī)計(jì)算機(jī)、移動(dòng)電話、pda、平板計(jì)算機(jī)、尋呼機(jī)、路由器、交換機(jī)等。也可以在分布式系統(tǒng)環(huán)境中實(shí)踐本發(fā)明,在這些分布式系統(tǒng)環(huán)境處,通過(guò)網(wǎng)絡(luò)而被鏈接(由硬接線數(shù)據(jù)鏈路、無(wú)線數(shù)據(jù)鏈路或者由硬接線和無(wú)線數(shù)據(jù)鏈路的組合而被鏈接)的本地和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)二者執(zhí)行任務(wù)。這樣,在分布式系統(tǒng)環(huán)境中,計(jì)算機(jī)系統(tǒng)可以包括多個(gè)構(gòu)成計(jì)算機(jī)系統(tǒng)。在分布式系統(tǒng)環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備二者中。

本領(lǐng)域技術(shù)人員也將認(rèn)識(shí)到,可以在云計(jì)算環(huán)境中實(shí)踐本發(fā)明。云計(jì)算環(huán)境可以為分布式,但是這不是必需的。在為分布式時(shí),云計(jì)算環(huán)境可以有意地被分布在組織內(nèi)和/或讓部件跨多個(gè)組織而被擁有。在本描述和以下權(quán)利要求中,“云計(jì)算”被定義為用于實(shí)現(xiàn)對(duì)可配置計(jì)算資源(例如,網(wǎng)絡(luò)、服務(wù)器、存儲(chǔ)裝置、應(yīng)用和服務(wù))的共享池的按需網(wǎng)絡(luò)訪問(wèn)的模型?!霸朴?jì)算”的定義不限于可以在被恰當(dāng)?shù)夭渴饡r(shí)從這樣的模型獲得的其它許多優(yōu)點(diǎn)中的任何優(yōu)點(diǎn)。

可以在其它具體形式中體現(xiàn)本發(fā)明而沒(méi)有脫離它的精神或者實(shí)質(zhì)特點(diǎn)。所描述的實(shí)施例將在所有方面中僅被視為說(shuō)明性而非限制性。本發(fā)明的范圍因此由所附權(quán)利要求而不是由前文描述所指示。落在權(quán)利要求的等效含義和范圍內(nèi)的所有改變將被涵蓋在它們的范圍內(nèi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1