專利名稱:文件索引處理的制作方法
技術領域:
本發(fā)明涉及計算機環(huán)境,尤其是數(shù)據(jù)備份。
背景技術:
慣例是在計算機環(huán)境中備份數(shù)據(jù)。當數(shù)據(jù)被備份到備份介質(例如磁帶驅動器、硬驅動器)時,附加信息(這里被稱為索引)也可以從正在備份其數(shù)據(jù)的計算機系統(tǒng)被傳送。索引提供關于正在被備份的數(shù)據(jù)的信息,諸如備份數(shù)據(jù)如何被組織的。索引經(jīng)常以隨機順序被接收,并且所接收的索引典型地需要被重組。對于大量的索引而言,在備份結束時對索引的組織可能花費很長時間并且耗費高的系統(tǒng)資源。應該值得期望的是能夠以一種避免為重建索引所典型需要的極長的時間周期的方式來組織索引。
在以下的詳細描述和附圖中公開了本發(fā)明的不同實施例。
圖1是適用于執(zhí)行本發(fā)明的系統(tǒng)的框圖。
圖2A-2B是根據(jù)用于處理索引的一些實施例的方法的流程圖。
圖3是根據(jù)一些實施例用于處理索引的方法的流程圖。
圖4是根據(jù)本發(fā)明的一些實施例的結合圖3所討論的具有由索引節(jié)點號所標識的索引項的索引樹的例子。
圖5是根據(jù)一些實施例的用于索引處理的方法的流程圖。
具體實施例方式
可以以各種方式實施本分明,包括如過程、裝置、系統(tǒng)、合成物質(composition of matter)、計算機可讀介質(諸如計算機可讀存儲介質)或者計算機網(wǎng)絡,其中程序指令經(jīng)由光或者電子通信鏈路被發(fā)送。在該說明書中,這些實施或者本分明可以采取的任何其它形式可以被稱為技術。通常,在本分明的范圍內可以改變所公開的處理的步驟順序。
下面,與示出本分明原理的附圖一起提供本分明的一個或者多個實施例的詳細描述。關于這些實施例描述本分明,但是本分明并不局限于任一實施例。本分明的范圍只由權利要求限制并且本分明包含各種替代方案、修改和等價物。在下面的描述中闡明許多特定的細節(jié),以便提供對本分明的徹底理解。為了實例的目的提供這些細節(jié),并且可以在沒有一些或者全部這些特定細節(jié)的情況下根據(jù)權利要求實施本分明。為了清楚的目的,在與本分明有關的技術領域中所公知的技術資料未被詳細描述,使得本分明有必要地晦澀。
圖1是適用于執(zhí)行本發(fā)明的系統(tǒng)的框圖。在本例中,數(shù)據(jù)服務器100被示出用以發(fā)送數(shù)據(jù)到備份介質102。數(shù)據(jù)服務器100也發(fā)送索引到備份服務器104。
圖2是根據(jù)一些實施例的用于處理索引的方法的流程圖。在本例中,索引以塊(piece)的方式被接收。例如,用于特定數(shù)據(jù)塊的索引也可以有DIR組件(component)和NODE組件,其中DIR包括索引節(jié)點(inode)號、父索引節(jié)點號和索引名稱。在本實施例中,索引節(jié)點號是標識索引的唯一號碼。索引的NODE組件也包括與DIR索引節(jié)點號相匹配的索引節(jié)點號、以及索引屬性(例如統(tǒng)計信息(statinfo.))。統(tǒng)計信息的例子包括關于索引的信息,比如大小、類型、許可、創(chuàng)建和修改日期。
在本例中,索引組件被接收(200)。這里所使用的索引組件是索引的一部分,例如DIR組件或NODE組件。然后確定索引組件的索引節(jié)點號是否已經(jīng)被存儲(202)。在一實施例中,索引節(jié)點號被存儲在磁盤上(on-disk)平衡樹結構中,如B+樹。B+樹結構可以以與搜索庫(諸如Legato公司、EMC的分公司的WISS)相結合的方式被使用。在一些實施例中,索引節(jié)點號可以是標識索引的唯一號碼并且該索引的所有索引組件都與該號碼相關。
如果這個特定索引的索引節(jié)點號未被發(fā)現(xiàn)被存儲,那么所接收的索引組件作為新的項被存儲(208)。例如,如果NODE組件被接收并且這個特定索引的索引節(jié)點號未被發(fā)現(xiàn)被存儲于磁盤上的平衡樹中,那么該所接收的索引組件作為新的項被存儲在平衡樹中。
如果這個特定索引的索引節(jié)點號被發(fā)現(xiàn)被存儲,那么就確定被接收的索引組件是否是DIR(204)。如果不是DIR,那么假設是NODE組件并且被寫入與所有匹配索引節(jié)點號的匹配存儲索引節(jié)點號(matching stored inode number)相同的項中(210)。如果被接收到的索引組件是DIR(204),那么確定匹配存儲索引項是否包括NODE(206)。如果不包括,那么被接收到的DIR作為新的項被存儲(212)。
如果匹配存儲索引項包括NODE(206),那么確定匹配存儲索引項中的一個是否是DIR(220)。如果帶有匹配索引節(jié)點號的DIR組件還未被存儲但是有NODE項,那么匹配的NODE項用該所接收到的DIR組件更新(224)。然而,如果匹配存儲索引項中的一個是DIR(220),那NODE屬性從匹配項之一中被復制并且在接收DIR組件時被存儲在新的項中(222)。
圖3是根據(jù)一些實施例用于處理索引的方法的流程圖。在本例中,索引的塊已經(jīng)被重構,作為索引項被存儲在平衡樹中,并且索引樹正在被重建。當與圖4結合起來被討論時可以最好地理解圖3。
圖4是根據(jù)一些實施例結合圖3所討論的具有由索引節(jié)點號所標識的索引的索引樹的例子。在本例中,該樹被示出包括具有頂端索引的索引結構,所述頂端索引具有索引節(jié)點號2。具有索引節(jié)點號3和4的索引被示出為節(jié)點索引號2的子;并且索引節(jié)點號5、6、7和8為索引節(jié)點號3和4的子。索引節(jié)點號2這里被稱為索引節(jié)點號3和索引節(jié)點號4的父;并且索引節(jié)點號3這里被稱為索引節(jié)點號5和索引節(jié)點號6的父。在本例中,索引節(jié)點號2可以是一目錄,該目錄包括具有索引節(jié)點號3的目錄和具有索引節(jié)點號4的另一目錄。索引節(jié)點號3是一目錄,該目錄包括帶有索引節(jié)點號5的文件和帶有索引節(jié)點號6的另一文件。
在圖3所示的實施例中,最頂端的索引節(jié)點號從所存儲的索引節(jié)點號中被尋找(300)。例如,可以預先確定樹中的最頂端的索引節(jié)點號是索引節(jié)點號2。因此,可以在平衡樹(例如B+樹)中執(zhí)行搜尋來尋找索引節(jié)點號2。
然后,其父是最頂端的索引節(jié)點號的索引項被尋找(302)。例如,在圖4所示的例子中,其父是最頂端的索引節(jié)點號的索引是索引節(jié)點號3和索引節(jié)點號4。因此,可以在平衡樹中基于父信息執(zhí)行搜索來尋找具有等同于索引節(jié)點號2的父的索引項。在一些實施例中,父索引節(jié)點號被存儲在索引的DIR組件中。
這些索引項被標識為索引樹的下一級(304)。然后確定是否存在具有作為父的這些索引節(jié)點號的項(306)。如果不存在具有作為父的這些索引節(jié)點號的索引項,那么重構完成。然而,如果存在具有作為父的這些索引節(jié)點號的項,那么最新發(fā)現(xiàn)的索引項被標識為索引樹的下一級(304)。
圖5是根據(jù)一些實施例的用于處理索引的方法的流程圖。在本例中,索引以單一塊而不是以接收索引的多個塊的方式從數(shù)據(jù)服務器被傳送到備份服務器。這里,索引節(jié)點號不被接收,而是索引的路徑被接收。例如,索引d可以與路徑a/b/c/d一起被接收,其中c是d的父,b是c的父,a是b的父。另外,另一索引d與其路徑一起可以被接收,其中索引d不同于索引d。具有相同名稱的文件可以出現(xiàn)在不同的目錄下,例如a/c/b/d,其中這些文件不具有相同的路徑。因此,按名稱(例如d)的搜索在本例中是無用的。在一些實施例中,在路徑中為項產(chǎn)生偽索引節(jié)點號。在一些實施例中,該索引節(jié)點號是唯一的。目錄樹可以在存儲器中被產(chǎn)生,所述目錄樹包括索引名稱、其被分配的索引節(jié)點號、以及其父被分配的索引節(jié)點號,使得可以通過搜索索引節(jié)點號或父索引節(jié)點號來執(zhí)行快速搜索。
在圖5所示的例子中,索引與該索引的路徑(例如a/b/c/d)一起被接收(500)。確定路徑項是否從路徑中被找回(502)。如果路徑項不從路徑中被找回,那么處理完成。如果路徑項(例如“b”)從路徑中被找回,那么父索引節(jié)點號從目錄樹中被找回(504)。目錄樹包括目錄列表。在一些實施例中,目錄樹被存儲在存儲器中而索引樹被存儲在磁盤上。然后確定路徑項是否處于目錄樹中(506)。如果路徑項已經(jīng)存在于目錄樹中,那么下一項從所接收到的路徑中被找回(502)。在一些實施例中,路徑項從左到右、從父到子被找回,在路徑a/b/c/d的例子中例如a,然后b,然后c,然后d。
如果路徑項不存在于目錄樹中(506),那么在該例中唯一的索引節(jié)點號被分配給該路徑項(508)。確定路徑項是否是目錄(510)。在一些實施例中,文件不被保存在目錄樹中而是目錄被保存。目錄具有至少一個子而文件沒有。如果路徑項是目錄,那么該路徑項被添加到目錄樹(512)。在一些實施例中,目錄名稱、其被分配的索引節(jié)點號和其父被分配的索引節(jié)點號被存儲在目錄樹中。例如,如果路徑a/b/c/d已經(jīng)為索引“d”被接收,并且“c”已經(jīng)被分配索引節(jié)點號4,并且“d”被分配索引節(jié)點號5,那么“d”的父索引節(jié)點號是4。不管路徑項被加到目錄樹(512)還是路徑項是目錄(510),索引被存儲在磁盤上的平衡樹中(514)。如果一個是可用的,那么下一路徑項被找回(502)。
其后,在一些實施例中根據(jù)與圖3所例示的方法相類似的方法,索引樹可以被重建。在該實施例中,搜索存儲在存儲器的目錄樹而不是平衡樹,以找到索引節(jié)點號和父索引節(jié)點號。
盡管為了清楚理解的目的已經(jīng)稍詳細地描述了前述的實施例,但是本發(fā)明不局限于所提供的細節(jié)。有許多實現(xiàn)本發(fā)明的可替代方式。公開的實施例是示例性的并且不是限制性的。
權利要求
1.處理索引的方法,包括接收索引,其中索引包括路徑,并且其中路徑包括元素;確定路徑元素是否與標識符相關;并且如果路徑元素被確定與標識符不相關,則使標識符與路徑元素相關聯(lián)。
2.根據(jù)權利要求1所述的方法,進一步包括把標識符存儲到存儲器。
3.根據(jù)權利要求1所述的方法,進一步包括把父標識符存儲到存儲器,其中父標識符與路徑元素的父相關。
4.根據(jù)權利要求1所述的方法,進一步包括更新具有相關的標識符的列表。
5.根據(jù)權利要求4所述的方法,其中列表被存儲在存儲器中。
6.根據(jù)權利要求1所述的方法,其中路徑包括上一元素,并且進一步包括確定上一元素是否是目錄。
7.根據(jù)權利要求6所述的方法,進一步包括如果上一元素是目錄,則使標識符與上一元素相關聯(lián)。
8.根據(jù)權利要求1所述的方法,其中使標識符相關聯(lián)包括把標識符分配給路徑元素。
9.根據(jù)權利要求1所述的方法,進一步包括把索引存儲到磁盤。
10.根據(jù)權利要求1所述的方法,其中標識符是唯一的。
11.根據(jù)權利要求1所述的方法,其中標識符是索引節(jié)點號。
12.根據(jù)權利要求1所述的方法,進一步包括尋找第一標識符以及尋找具有與第一標識符匹配的父標識符的列表項。
13.根據(jù)權利要求12所述的方法,其中具有匹配父標識符的列表項被標識為索引樹的下一級。
14.根據(jù)權利要求1所述的方法,其中如果路徑元素被確定與標識符不相關并且路徑元素是目錄,則關聯(lián)發(fā)生。
15.處理索引的系統(tǒng),包括處理器,其被配置用以接收索引,其中索引包括路徑,并且其中路徑包括元素;確定路徑元素是否是與標識符相關;并且如果路徑元素被確定與標識符不相關,則使標識符與路徑元素相關聯(lián);和與處理器耦合的存儲器,其中存儲器為處理器提供指令。
16.根據(jù)權利要求1所述的方法,進一步包括把標識符存儲到存儲器。
17.根據(jù)權利要求1所述的方法,進一步包括把父標識符存儲到存儲器,其中父標識符與路徑元素的父相關。
18.根據(jù)權利要求1所述的方法,進一步包括尋找第一標識符以及尋找具有與第一標識符匹配的父標識符的列表項。
19.根據(jù)權利要求18所述的方法,其中具有匹配父標識符的列表項被標識為索引樹的下一級。
20.根據(jù)權利要求1所述的方法,其中如果路徑元素被確定與標識符不相關并且路徑元素是目錄,則關聯(lián)發(fā)生。
21.用于處理索引的計算機程序產(chǎn)品,該計算機程序產(chǎn)品在計算機可讀介質中被實施并且包括計算機指令用于接收索引,其中索引包括路徑,并且其中路徑包括元素;確定路徑元素是否與標識符相關;并且如果路徑元素被確定與標識符不相關,則使標識符與路徑元素相關聯(lián)。
22.根據(jù)權利要求21所述的計算機程序產(chǎn)品,進一步包括把標識符存儲到存儲器。
23.根據(jù)權利要求21所述的計算機程序產(chǎn)品,進一步包括把父標識符存儲到存儲器,其中父標識符與路徑元素的父相關。
24.根據(jù)權利要求21所述的計算機程序產(chǎn)品,進一步包括尋找第一標識符以及尋找具有與第一標識符匹配的父標識符的列表項。
25.根據(jù)權利要求24所述的計算機程序產(chǎn)品,其中具有匹配父標識符的列表項被標識為索引樹的下一級。
26.根據(jù)權利要求21所述的計算機程序產(chǎn)品,其中如果路徑元素被確定與標識符不相關并且路徑元素是目錄,則關聯(lián)發(fā)生。
全文摘要
根據(jù)一些實施例,用于處理索引的技術包括接收索引,其中索引包括路徑,并且其中路徑包括元素;確定路徑元素是否與標識符相關;并且如果路徑元素被確定與標識符不相關,則使標識符與路徑元素相關聯(lián)。
文檔編號G06F17/00GK101031908SQ200580033141
公開日2007年9月5日 申請日期2005年9月29日 優(yōu)先權日2004年9月30日
發(fā)明者R·帕拉波圖 申請人:Emc公司