欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于復(fù)制內(nèi)容可尋址存儲(chǔ)集群的異步分布式去重的制作方法

文檔序號(hào):6596329閱讀:137來(lái)源:國(guó)知局

專(zhuān)利名稱(chēng)::用于復(fù)制內(nèi)容可尋址存儲(chǔ)集群的異步分布式去重的制作方法用于復(fù)制內(nèi)容可尋址存儲(chǔ)集群的異步分布式去重
背景技術(shù)
:企業(yè)計(jì)算局面經(jīng)歷了存儲(chǔ)體系結(jié)構(gòu)的根本性轉(zhuǎn)變,因?yàn)橹醒敕?wù)體系結(jié)構(gòu)已經(jīng)讓位于分布式存儲(chǔ)集群。隨著企業(yè)尋求增加存儲(chǔ)效率的方式,從商品計(jì)算機(jī)構(gòu)建的存儲(chǔ)集群可以以與龐大盤(pán)陣列相比的成本的一小部分,為新的數(shù)據(jù)密集型應(yīng)用提供高性能、可用性和可伸縮性。為了開(kāi)啟存儲(chǔ)集群的全部潛力,跨多個(gè)地理位置復(fù)制數(shù)據(jù),從而增加可用性,并且減少距客戶端的網(wǎng)絡(luò)距離。數(shù)據(jù)去重(de-duplication)可以識(shí)別重復(fù)的對(duì)象,并且通過(guò)移除副本來(lái)減少所需的存儲(chǔ)空間。結(jié)果,數(shù)據(jù)去重對(duì)于存儲(chǔ)業(yè)變得日益重要,并且正由會(huì)包含許多副本的大型系統(tǒng)的需求推動(dòng)。
發(fā)明內(nèi)容根據(jù)一個(gè)實(shí)施方式,一種方法可以由分布式數(shù)據(jù)復(fù)制系統(tǒng)中的設(shè)備組中的設(shè)備執(zhí)行。該方法可以包括將對(duì)象的索引存儲(chǔ)在分布式數(shù)據(jù)復(fù)制系統(tǒng)中,所述索引是在對(duì)象的復(fù)制品由分布式數(shù)據(jù)復(fù)制系統(tǒng)中的多個(gè)設(shè)備本地存儲(chǔ)時(shí)被復(fù)制。該方法還可以包括進(jìn)行對(duì)索引的至少一部分的掃描,以及基于對(duì)索引的掃描來(lái)識(shí)別對(duì)象中的至少一個(gè)的冗余復(fù)制品。該方法可以進(jìn)一步包括通過(guò)將去重記錄寫(xiě)入索引的一部分來(lái)對(duì)冗余復(fù)制品進(jìn)行去重。根據(jù)另一個(gè)實(shí)施方式,分布式數(shù)據(jù)復(fù)制系統(tǒng)中的設(shè)備組中的設(shè)備可以包括用于將對(duì)象的索引存儲(chǔ)在分布式數(shù)據(jù)復(fù)制系統(tǒng)中的裝置;用于將改變寫(xiě)入索引以指定對(duì)象中的一個(gè)的復(fù)制品的狀態(tài)的裝置;用于將對(duì)索引的改變復(fù)制到分布式數(shù)據(jù)復(fù)制系統(tǒng)中的多個(gè)設(shè)備的裝置;用于進(jìn)行對(duì)索引的至少一部分的掃描的裝置;用于基于對(duì)索引的掃描來(lái)識(shí)別對(duì)象中的一個(gè)的冗余復(fù)制品的裝置;以及用于對(duì)冗余復(fù)制品進(jìn)行去重的裝置。根據(jù)又一個(gè)實(shí)施方式,一種系統(tǒng)可以包括存儲(chǔ)器,其用來(lái)存儲(chǔ)指令、對(duì)象的數(shù)據(jù)存儲(chǔ)以及數(shù)據(jù)存儲(chǔ)中的對(duì)象的索引;以及處理器。處理器可以執(zhí)行存儲(chǔ)器中的指令來(lái)識(shí)別數(shù)據(jù)存儲(chǔ)中的對(duì)象的狀態(tài),所述狀態(tài)與對(duì)象是否具有復(fù)制品以及刪除請(qǐng)求是否與對(duì)象相關(guān)聯(lián)有關(guān);基于對(duì)象的狀態(tài)將去重指定記錄寫(xiě)入索引;將具有去重指定記錄的索引復(fù)制到一個(gè)或多個(gè)設(shè)備;以及從一個(gè)或多個(gè)設(shè)備中的一個(gè)接收與對(duì)象相關(guān)聯(lián)的其它去重指定記錄,其中去重指定記錄和其它去重指定記錄為對(duì)對(duì)象的一個(gè)或多個(gè)復(fù)制品的刪除提供基礎(chǔ)。根據(jù)又一個(gè)實(shí)施方式,一種由一個(gè)或多個(gè)設(shè)備執(zhí)行的方法可以包括將對(duì)象的索引存儲(chǔ)在分布式數(shù)據(jù)復(fù)制系統(tǒng)內(nèi)的多個(gè)設(shè)備中,以及在本地存儲(chǔ)對(duì)象時(shí)遍及分布式數(shù)據(jù)復(fù)制系統(tǒng)復(fù)制索引,其中每一個(gè)設(shè)備對(duì)索引的特定子集內(nèi)的對(duì)象的去重負(fù)責(zé);進(jìn)行對(duì)索引的子集中的每一個(gè)的掃描以基于掃描來(lái)識(shí)別冗余復(fù)制品;對(duì)冗余進(jìn)行去重;以及自動(dòng)將對(duì)象從帶有具有正在進(jìn)行的刪除請(qǐng)求的復(fù)制品的設(shè)備拷貝到帶有先前已被去重的復(fù)制品的設(shè)備。根據(jù)進(jìn)一步實(shí)施方式,一種計(jì)算機(jī)可讀存儲(chǔ)器可以包括計(jì)算機(jī)可執(zhí)行的指令。該計(jì)算機(jī)可讀存儲(chǔ)器可以包括用來(lái)進(jìn)行對(duì)分布式數(shù)據(jù)復(fù)制系統(tǒng)中的對(duì)象的索引的一部分的掃描的一個(gè)或多個(gè)指令;用來(lái)基于對(duì)索引的一部分的掃描來(lái)識(shí)別對(duì)象中的一個(gè)的冗余復(fù)制品的一個(gè)或多個(gè)指令;用來(lái)對(duì)冗余復(fù)制品進(jìn)行去重的一個(gè)或多個(gè)指令。合并入并且構(gòu)成本說(shuō)明書(shū)的一部分的附示了在此描述的一個(gè)或多個(gè)實(shí)施例,并且與描述一起說(shuō)明了這些實(shí)施例。在附圖中圖1是在其中可以實(shí)現(xiàn)在此描述的系統(tǒng)和方法的示例性網(wǎng)絡(luò)的圖;圖2是圖1的文件系統(tǒng)的示例性配置的圖;圖3是圖1的存儲(chǔ)集群的示例性組件的圖;圖4是圖1的示例性存儲(chǔ)集群的功能框圖;圖5是可以在分布式多主站數(shù)據(jù)復(fù)制系統(tǒng)的索引內(nèi)使用的示例性記錄結(jié)構(gòu)的圖;圖6A-6B是用于管理客戶端發(fā)起的上載/刪除操作的示例性過(guò)程的流程圖;圖7是用于在分布式多主站數(shù)據(jù)復(fù)制系統(tǒng)中執(zhí)行去重的示例性過(guò)程的流程圖;圖8是用于管理刪除請(qǐng)求的示例性過(guò)程的流程圖;圖9是用于移除重復(fù)復(fù)制品的示例性過(guò)程的流程圖;圖10是用于在分布式多主站數(shù)據(jù)復(fù)制系統(tǒng)中優(yōu)化帶寬消耗以及減少時(shí)延的示例性過(guò)程的流程圖;以及圖11是根據(jù)在此描述的一個(gè)實(shí)施方式圖示了示例性全局索引的一部分的圖。具體實(shí)施例方式下面的詳細(xì)描述參考附圖。在不同附圖中的相同參考數(shù)字可以識(shí)別相同或相似元素。并且,下面的詳細(xì)描述不限制本發(fā)明。在此描述的系統(tǒng)和/或方法可以為復(fù)制的存儲(chǔ)集群提供異步分布式去重算法,其為不可變對(duì)象提供可用性、活性以及一致性保證。在此描述的實(shí)施方式可以使用分布式多主站數(shù)據(jù)復(fù)制系統(tǒng)的基礎(chǔ)復(fù)制層來(lái)在不同的存儲(chǔ)集群之間復(fù)制內(nèi)容可尋址索引(在此也被稱(chēng)為“全局索引”)。全局索引的每一個(gè)對(duì)象可以具有唯一內(nèi)容句柄(例如,哈希值或數(shù)字簽名)。在此描述的實(shí)施方式中,對(duì)冗余復(fù)制品的移除過(guò)程可以保持至少一個(gè)復(fù)制品存活。示例性網(wǎng)絡(luò)配置圖1是在其中可以實(shí)現(xiàn)在此描述的系統(tǒng)和方法的示例性系統(tǒng)100的圖。系統(tǒng)100可以包括經(jīng)由網(wǎng)絡(luò)130連接的客戶端110-1至110-N(統(tǒng)稱(chēng)為客戶端110,以及分別稱(chēng)為客戶端110)以及存儲(chǔ)集群120-1至120-M(統(tǒng)稱(chēng)為存儲(chǔ)集群120,以及分別稱(chēng)為存儲(chǔ)集群120)。存儲(chǔ)集群120可以形成文件系統(tǒng)140(如圖1中虛線所示)。網(wǎng)絡(luò)130可以包括一個(gè)或多個(gè)網(wǎng)絡(luò),諸如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、電話網(wǎng)絡(luò)(例如,公共交換電話網(wǎng)絡(luò)(PSTN))、內(nèi)聯(lián)網(wǎng)、因特網(wǎng)、相似或相異網(wǎng)絡(luò)、或網(wǎng)絡(luò)的組合。客戶端110和存儲(chǔ)集群120可以經(jīng)由有線和/或無(wú)線連接連接到網(wǎng)絡(luò)130??蛻舳?10可以包括一種或多種類(lèi)型的設(shè)備,諸如個(gè)人計(jì)算機(jī)、無(wú)線電話、個(gè)人數(shù)字助理(PDA)、膝上型計(jì)算機(jī)或另一種類(lèi)型的通信設(shè)備、和/或運(yùn)行于這些設(shè)備中的一個(gè)上的線程或進(jìn)程。在一個(gè)實(shí)施方式中,客戶端110包括或被聯(lián)接到應(yīng)用,在所述應(yīng)用代表下客戶端110與存儲(chǔ)集群120通信以讀取或修改(例如,寫(xiě))文件數(shù)據(jù)。存儲(chǔ)集群120可以包括一個(gè)或多個(gè)服務(wù)器設(shè)備、或其它類(lèi)型的計(jì)算或通信設(shè)備,6其可以以在此描述的方式存儲(chǔ)、處理、搜索和/或提供信息。在一個(gè)實(shí)施方式中,存儲(chǔ)集群120可以包括能夠?yàn)槲募S護(hù)大型、隨機(jī)讀/寫(xiě)訪問(wèn)數(shù)據(jù)存儲(chǔ)的一個(gè)或多個(gè)服務(wù)器(例如,計(jì)算機(jī)系統(tǒng)和/或應(yīng)用)。如果發(fā)生改變,則存儲(chǔ)集群120的數(shù)據(jù)存儲(chǔ)可以允許索引系統(tǒng)快速更新索引的部分。存儲(chǔ)集群120的數(shù)據(jù)存儲(chǔ)可以包括一個(gè)或多個(gè)表(例如,可以包括每統(tǒng)一資源定位符(URL)—行的文檔表、由URL之外的值作為鍵的輔助表等)。在一個(gè)示例中,存儲(chǔ)集群120可以被包括在用于管理結(jié)構(gòu)化數(shù)據(jù)(例如,文檔的隨機(jī)存取存儲(chǔ)集群)的分布式存儲(chǔ)系統(tǒng)(例如,如在第七屆OSDI論文集(2006年11月)、第205-218頁(yè)、Chang等人白勺“BigtableDistributedStorageSystemforStructuredData(Bigtable于結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng))”中闡述的"Bigtable")中,所述結(jié)構(gòu)化數(shù)據(jù)可以被設(shè)計(jì)為縮放到非常大的大小(例如,跨數(shù)千服務(wù)器的千兆兆字節(jié)的數(shù)據(jù))。盡管在圖1中未示出,但是系統(tǒng)100可以包括多種其它組件,諸如一個(gè)或多個(gè)專(zhuān)用客戶服務(wù)器或集線器。客戶服務(wù)器例如可以存儲(chǔ)來(lái)自一個(gè)或多個(gè)存儲(chǔ)集群120的數(shù)據(jù)存儲(chǔ)的只讀副本以供客戶端110訪問(wèn)。集線器例如可以存儲(chǔ)來(lái)自一個(gè)或多個(gè)存儲(chǔ)集群120的數(shù)據(jù)存儲(chǔ)的只讀副本以分發(fā)到一個(gè)或多個(gè)客戶服務(wù)器。示例性存儲(chǔ)集群配置圖2是文件系統(tǒng)140的示例性配置的圖。如圖2中所示,文件系統(tǒng)140可以包括存儲(chǔ)集群120-1、120-2、120-3以及120-4。在一個(gè)實(shí)施方式中,文件系統(tǒng)140可以是分布式多主站數(shù)據(jù)復(fù)制系統(tǒng),其中存儲(chǔ)集群120-1、120-2、120-3以及120-4中的每一個(gè)對(duì)于其它存儲(chǔ)集群可以充任主服務(wù)器。在文件系統(tǒng)140中,可以跨存儲(chǔ)集群120-1、120-2、120-3以及120-4(例如,在多個(gè)地理位置)復(fù)制數(shù)據(jù)以增加數(shù)據(jù)可用性以及減少距客戶端(例如,客戶端110)的網(wǎng)絡(luò)距離。通常,可以在不同的存儲(chǔ)集群120中動(dòng)態(tài)地創(chuàng)建、變異、克隆以及刪除分布式對(duì)象和引用,以及基礎(chǔ)數(shù)據(jù)復(fù)制層(未示出)維護(hù)寫(xiě)順序保真度以確保所有存儲(chǔ)集群120以數(shù)據(jù)的相同版本結(jié)束。因此,數(shù)據(jù)復(fù)制層重視對(duì)單個(gè)對(duì)象的相同復(fù)制品的寫(xiě)順序??梢詫⒎植际蕉嘀髡緮?shù)據(jù)復(fù)制系統(tǒng)中的所有對(duì)象的全局索引與每一個(gè)存儲(chǔ)集群120進(jìn)行關(guān)聯(lián)。每一個(gè)已存儲(chǔ)的對(duì)象可以由全局索引中的唯一內(nèi)容句柄(諸如哈希值、數(shù)字簽名等)列出。所選擇的存儲(chǔ)集群每一個(gè)可以被分配為負(fù)責(zé)全局索引中的不同范圍的內(nèi)容句柄。例如,單個(gè)存儲(chǔ)集群120可以負(fù)責(zé)對(duì)與特定內(nèi)容句柄相關(guān)聯(lián)的對(duì)象的去重??梢詫⒁粋€(gè)存儲(chǔ)集群作出的對(duì)全局索引的改變復(fù)制到其它存儲(chǔ)集群。盡管圖2示出了文件系統(tǒng)140的示例性功能組件,但是在其它實(shí)施方式中,文件系統(tǒng)140可以包含比在圖2中所描繪的更少、另外、不同或不同布置的組件。在另外其它實(shí)施方式中,文件系統(tǒng)140的一個(gè)或多個(gè)組件可以執(zhí)行被描述為由文件系統(tǒng)140的一個(gè)或多個(gè)其它組件執(zhí)行的一個(gè)或多個(gè)任務(wù)。圖3是存儲(chǔ)集群120的示例性組件的圖。存儲(chǔ)集群120可以包括總線310、處理器320、主存儲(chǔ)器330、只讀存儲(chǔ)器(R0M);340、存儲(chǔ)設(shè)備;350、輸入設(shè)備360、輸出設(shè)備370以及通信接口380??偩€310可以包括允許在存儲(chǔ)集群120的組件之間的通信的一個(gè)或多個(gè)導(dǎo)線。處理器320可以包括可以解釋并且執(zhí)行指令的任何類(lèi)型的處理器或微處理器。主存儲(chǔ)器330可以包括可以存儲(chǔ)用于處理器320執(zhí)行的信息和指令的隨機(jī)存取存儲(chǔ)器(RAM)或另一種類(lèi)型的動(dòng)態(tài)存儲(chǔ)設(shè)備。ROM340可以包括可以存儲(chǔ)用于處理器320使用的靜態(tài)信息和指令的ROM設(shè)備或另一種類(lèi)型的靜態(tài)存儲(chǔ)設(shè)備。存儲(chǔ)設(shè)備350可以包括磁和/或光記錄介質(zhì)以及其對(duì)應(yīng)的驅(qū)動(dòng)。例如,存儲(chǔ)設(shè)備350可以包括提供持久存儲(chǔ)的一個(gè)或多個(gè)本地盤(pán)355。在一個(gè)實(shí)施方式中,存儲(chǔ)集群120可以在諸如主存儲(chǔ)器330和/或存儲(chǔ)設(shè)備350的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)內(nèi)為存儲(chǔ)在文件系統(tǒng)140中的對(duì)象維護(hù)元數(shù)據(jù)。例如,存儲(chǔ)集群120可以將用于存儲(chǔ)在分布式多主站數(shù)據(jù)復(fù)制系統(tǒng)內(nèi)的所有對(duì)象的全局索引存儲(chǔ)在存儲(chǔ)設(shè)備350內(nèi)。輸入設(shè)備360可以包括允許操作者向存儲(chǔ)集群120輸入信息的一個(gè)或多個(gè)機(jī)制,諸如鍵盤(pán)、鍵區(qū)、按鈕、鼠標(biāo)、筆等。輸出設(shè)備370可以包括向操作者輸出信息的一個(gè)或多個(gè)機(jī)制,包括顯示、發(fā)光二極管(LED)等。通信接口380可以包括使存儲(chǔ)集群120能夠與其它設(shè)備和/或系統(tǒng)通信的任何類(lèi)收發(fā)器機(jī)制。例如,通信接口380可以包括用于與其它存儲(chǔ)集群120和/或客戶端110通信的機(jī)制。圖4圖示了存儲(chǔ)集群120的功能框圖。如圖4中所示,存儲(chǔ)集群120可以包括數(shù)據(jù)存儲(chǔ)410和去重邏輯420。在一個(gè)實(shí)施方式中,如圖4中所圖示的,數(shù)據(jù)存儲(chǔ)410可以在存儲(chǔ)集群120內(nèi)提供。在其它實(shí)施方式中,數(shù)據(jù)存儲(chǔ)410中的部分或全部可以被存儲(chǔ)在與存儲(chǔ)集群120通信的系統(tǒng)100的一個(gè)或多個(gè)其它設(shè)備內(nèi),諸如外部存儲(chǔ)器設(shè)備或與索引系統(tǒng)(未示出)相關(guān)聯(lián)的設(shè)備。數(shù)據(jù)存儲(chǔ)410可以包括復(fù)制的索引存儲(chǔ)412和本地對(duì)象存儲(chǔ)414。復(fù)制的索引存儲(chǔ)412可以作為分布式多主站數(shù)據(jù)復(fù)制系統(tǒng)的復(fù)制層的一部分被包括。復(fù)制的索引存儲(chǔ)412可以存儲(chǔ)與全局索引相關(guān)聯(lián)的信息。復(fù)制的索引存儲(chǔ)412的至少一部分可以在多個(gè)存儲(chǔ)集群120上被復(fù)制。每一個(gè)復(fù)制的索引存儲(chǔ)412的復(fù)制品的數(shù)量可以是用戶可配置的。本地對(duì)象存儲(chǔ)414可以將對(duì)象本地存儲(chǔ)在存儲(chǔ)集群120內(nèi)。本地對(duì)象存儲(chǔ)414可以包括文件,諸如客戶端(例如,客戶端110)上載的圖像或視頻。去重邏輯420可以包括從分布式多主站數(shù)據(jù)復(fù)制系統(tǒng)內(nèi)的存儲(chǔ)集群(例如,存儲(chǔ)集群120-1、120-2、120-3以及120-4)移除冗余復(fù)制品的邏輯。用于每一個(gè)參與的存儲(chǔ)集群的去重邏輯420可以被分配為負(fù)責(zé)全局索引的特定部分。例如,去重邏輯420可以被分配給全局索引的特定范圍的內(nèi)容句柄。因此,分布式多主站數(shù)據(jù)復(fù)制系統(tǒng)內(nèi)的僅僅一個(gè)存儲(chǔ)集群可以能夠?qū)ο到y(tǒng)內(nèi)的復(fù)制對(duì)象執(zhí)行破壞性操作(例如,對(duì)復(fù)制品的刪除)。為了便于去重,記錄可以由去重邏輯420生成,并且附于與特定內(nèi)容句柄相關(guān)聯(lián)的全局索引的一部分。記錄例如可以包括用于啟用活復(fù)制品的“Data”指定符、用于指示對(duì)復(fù)制品的正在進(jìn)行的刪除請(qǐng)求的“DeleteRequest”指定符以及用于指示已為去重選擇的復(fù)制品的“Deduped”指定符。在下面更加詳細(xì)地描述了記錄格式和用途。盡管圖4示出了存儲(chǔ)集群120的示例性功能組件,但是在其它實(shí)施方式中,存儲(chǔ)集群120可以包含比在圖4中所描繪的更少、另外、不同或不同布置的功能組件。在另外其它實(shí)施方式中,存儲(chǔ)集群120的一個(gè)或多個(gè)功能組件可以執(zhí)行被描述為由一個(gè)或多個(gè)其它功能組件執(zhí)行的一個(gè)或多個(gè)其它任務(wù)。示例性記錄結(jié)構(gòu)圖5提供了在一個(gè)示例性實(shí)施方式中,可以被寫(xiě)入全局索引的去重指定記錄的示例性記錄結(jié)構(gòu)500的圖示。在全局索引中,可以將去重指定記錄與對(duì)象復(fù)制品的特定內(nèi)容句柄進(jìn)行關(guān)聯(lián)。如圖5中所示,記錄結(jié)構(gòu)500可以包括存儲(chǔ)集群標(biāo)識(shí)符(“ID”)部分510、存儲(chǔ)位置部分520以及指定部分530。存儲(chǔ)集群標(biāo)識(shí)部分510可以包括存儲(chǔ)為之寫(xiě)記錄的對(duì)象復(fù)制品的存儲(chǔ)集群120的唯一標(biāo)識(shí)(例如,“集群ID”)。位置部分520可以包括復(fù)制品在存儲(chǔ)集群標(biāo)識(shí)部分510所識(shí)別的存儲(chǔ)集群120內(nèi)的位置的地址。指定部分530例如可以包括"Data"指定符、“DeleteRequest"指定符或〃Deduped"指定符。記錄結(jié)構(gòu)5OO可以以“ClusterID:Location:Designation(集群ID:位置指定)"的形式列出。例如,復(fù)制品的記錄可以由存儲(chǔ)集群120-1以記錄〃01:234523/2000:DeleteRequest〃添加到全局索弓丨,其中“01”是存儲(chǔ)集群120-1的集群ID,“234523/2000”是在存儲(chǔ)集群120-1內(nèi)的存儲(chǔ)復(fù)制品的位置,以及“DeleteRequest”是指定符。存儲(chǔ)集群120_2中的相同對(duì)象的另一個(gè)復(fù)制品的記錄可以是〃02:234544/1000:Data",其中“02”是存儲(chǔ)集群120-2的集群ID,“234544/1000”是在存儲(chǔ)集群120-2內(nèi)的位置,以及“Data”是指定符。示例性過(guò)程流程圖6A-6B是用于管理客戶端發(fā)起的上載/刪除操作的示例性過(guò)程的流程圖。圖6A描繪了從客戶端上載對(duì)象的示例性過(guò)程600的流程圖。圖6B描繪了移除客戶端所刪除的對(duì)象的示例性過(guò)程650的流程圖。在一個(gè)實(shí)施方式中,過(guò)程600和650可以由存儲(chǔ)集群120中的一個(gè)來(lái)執(zhí)行。過(guò)程600和650可以響應(yīng)于客戶端(例如,客戶端110)活動(dòng)來(lái)實(shí)現(xiàn)。對(duì)于在下面描述的過(guò)程600和650的特定示例,可以參考文件系統(tǒng)140的存儲(chǔ)集群120-1,其中存儲(chǔ)集群120-1包括集群ID“01”。參考圖6A,當(dāng)從客戶端接收上載的文件(塊610)時(shí),過(guò)程600可以開(kāi)始。例如,存儲(chǔ)集群120-1可以從客戶端110中的一個(gè)接收新的文件??梢源鎯?chǔ)上載的文件(塊620),以及可以將用于上載的文件的“Data”指定符寫(xiě)入全局索引(塊630)。例如,存儲(chǔ)集群120-1可以將上載的文件存儲(chǔ)在存儲(chǔ)器(例如,存儲(chǔ)設(shè)備350)中,并且將對(duì)象的內(nèi)容句柄添加到全局索引。存儲(chǔ)集群120-1還可以將數(shù)據(jù)記錄(例如,"OliLocationiData")寫(xiě)入由對(duì)象的內(nèi)容句柄尋址的復(fù)制的全局索引。參考圖6B,當(dāng)接收刪除的文件的通知(塊660)時(shí),過(guò)程650可以開(kāi)始。例如,存儲(chǔ)集群120-1可以接收客戶端110中的一個(gè)刪除了文件的指示??梢园l(fā)起刪除請(qǐng)求(塊670),以及可以將用于刪除的文件的“DeleteRequest”指定符寫(xiě)入全局索引(塊680)。例如,存儲(chǔ)集群120-1可以發(fā)起刪除請(qǐng)求以從文件系統(tǒng)140異步移除刪除的文件。存儲(chǔ)設(shè)備120-1還可以將〃DeleteRequest〃記錄(例如,“01Location:DeleteReqeust〃)寫(xiě)入由對(duì)象的內(nèi)容句柄尋址的復(fù)制的全局索引。圖7是用于在分布式多主站數(shù)據(jù)復(fù)制系統(tǒng)(例如,文件系統(tǒng)140)中執(zhí)行去重的示例性過(guò)程700的流程圖。在一個(gè)實(shí)施方式中,過(guò)程700可以由存儲(chǔ)集群120中的一個(gè)來(lái)執(zhí)行。在另一個(gè)實(shí)施方式中,過(guò)程700的部分或全部可以由另一個(gè)設(shè)備或設(shè)備組一包括或排除存儲(chǔ)集群120-來(lái)執(zhí)行。過(guò)程700可以在每一個(gè)存儲(chǔ)集群120中周期性實(shí)現(xiàn),以及可以包括對(duì)存儲(chǔ)集群120中的對(duì)象的全部或一部分的掃描。對(duì)于在下面描述的過(guò)程700的特定示例,可以參考文件系統(tǒng)140的存儲(chǔ)集群120-1和120-2,其中存儲(chǔ)集群120-1包括集群ID“01”,以及存儲(chǔ)集群120-2包括集群ID“02”。如圖7中所圖示的,過(guò)程700可以以進(jìn)行對(duì)全局索引的掃描(塊710)開(kāi)始。例如,(例如,使用去重邏輯420的)存儲(chǔ)集群120-1可以進(jìn)行對(duì)在全局索引中列出的對(duì)象的全部或一部分的掃描。掃描可以識(shí)別例如被標(biāo)記用于刪除的多個(gè)復(fù)制品和/或?qū)ο蟆?梢源_定是否遇到刪除請(qǐng)求(塊720)。例如,存儲(chǔ)集群120-1可以遇到全局索引中的包括來(lái)自另一個(gè)存儲(chǔ)集群(例如,來(lái)自存儲(chǔ)集群120-的刪除請(qǐng)求指定符(例如,“02:Location:DeleteReqeust")的對(duì)象。如果確定遇到刪除請(qǐng)求(塊720-是),則可以對(duì)刪除請(qǐng)求進(jìn)行處理(塊730)。例如,存儲(chǔ)集群120-1可以如參考圖8更加詳細(xì)描述的來(lái)對(duì)刪除請(qǐng)求進(jìn)行處理。如果確定沒(méi)有遇到刪除請(qǐng)求(塊720-否),則可以確定是否存在冗余復(fù)制品(塊740)。冗余復(fù)制品可以是在不同位置的沒(méi)有對(duì)對(duì)象的未解決的(outstanding)刪除請(qǐng)求的復(fù)制對(duì)象。例如,存儲(chǔ)集群120-1可以識(shí)別與存儲(chǔ)集群120-1負(fù)責(zé)的內(nèi)容句柄相對(duì)應(yīng)的相同對(duì)象的多個(gè)復(fù)制品。例如,多個(gè)復(fù)制品可以被存儲(chǔ)在不同的存儲(chǔ)集群(例如,存儲(chǔ)集群120-1和存儲(chǔ)集群120-2)中或在相同存儲(chǔ)集群內(nèi)的不同位置中。如果確定存在冗余復(fù)制品(塊740-是),則可以移除冗余復(fù)制品(塊750)。例如,存儲(chǔ)集群120-1可以如參考圖9更加詳細(xì)描述的來(lái)移除冗余復(fù)制品。如果確定不存在冗余復(fù)制品(塊740-否),則過(guò)程可以返回到塊710,其中可以進(jìn)行對(duì)全局索引的另一個(gè)掃描(塊710)。圖8圖示了與圖6的塊660的對(duì)刪除請(qǐng)求的處理相關(guān)聯(lián)的示例性操作??梢杂龅綄?duì)對(duì)象的刪除請(qǐng)求(塊810)。例如,存儲(chǔ)集群120-1進(jìn)行的掃描可以識(shí)別全局索引中的帶有先前由存儲(chǔ)集群120-1寫(xiě)入、刪除某一存儲(chǔ)集群中的復(fù)制品的刪除請(qǐng)求指定符(例如,“02:Location:DeleteRequest")的內(nèi)容句柄。假設(shè)存儲(chǔ)集群120-1負(fù)責(zé)該內(nèi)容句柄,則存儲(chǔ)集群120-1可以應(yīng)用操作來(lái)確定現(xiàn)在是否可以對(duì)復(fù)制品進(jìn)行去重??梢源_定是否存在去重指定符(塊820)。例如,存儲(chǔ)集群120-1可以查看全局索引中的與內(nèi)容句柄相關(guān)聯(lián)的其它記錄來(lái)確定是否存在去重指定符(例如,〃02!Location:Deduped")。如果確定存在去重指定符(塊820-是),則可以對(duì)復(fù)制品和全局索引中的相關(guān)記錄進(jìn)行去重(塊830)。例如,存儲(chǔ)集群120-1可以發(fā)起刪除請(qǐng)求以刪除存儲(chǔ)集群120-2中的復(fù)制品(如果存在的話),以及從全局索引刪除與關(guān)于刪除的復(fù)制品的內(nèi)容句柄有關(guān)的任何記錄(例如,“02:LOCation:*",其中“*”可以是任何指定符)。如果確定不存在去重指定符(塊820-否),則可以確定是否存在另一個(gè)活復(fù)制品(塊840)。例如,存儲(chǔ)集群120-1可以查看用于全局索引的內(nèi)容句柄以確定對(duì)于該對(duì)象,是否存在另一個(gè)活復(fù)制品。全局索引例如可以包括關(guān)于該內(nèi)容句柄的來(lái)自另一個(gè)存儲(chǔ)集群的數(shù)據(jù)記錄(例如,“03!Location:Data")。如果存在另一個(gè)活復(fù)制品(塊840-是),則可以如在上面參考?jí)K830所描述地對(duì)復(fù)制品進(jìn)行去重。如果不存在另一個(gè)活復(fù)制品(塊840-否),則可以確定所有復(fù)制品是否具有刪除請(qǐng)求(塊850)。例如,存儲(chǔ)集群120-1可以查看用于全局索引的內(nèi)容句柄以確定與內(nèi)容句柄相關(guān)聯(lián)的所有復(fù)制品是否具有未解決的刪除請(qǐng)求(例如,"*:*:DeleteRequest",其中“*”分別可以是任何集群ID和任何位置)。如果確定所有復(fù)制品具有刪除請(qǐng)求(塊850-是),則可以如在上面參考?jí)K830所描述地對(duì)復(fù)制品進(jìn)行去重。如果確定所有復(fù)制品均沒(méi)有刪除請(qǐng)求(塊850-否),則可以CN102317938A說(shuō)明書(shū)7/10頁(yè)將對(duì)象從發(fā)起刪除請(qǐng)求的存儲(chǔ)集群拷貝到不同的存儲(chǔ)集群,以及可以更新全局索引(塊860)。例如,響應(yīng)于記錄〃02:Location:DeleteRequest",存儲(chǔ)集群120-1可以將對(duì)象從存儲(chǔ)集群120-2拷貝到另一個(gè)存儲(chǔ)集群120-3,對(duì)于存儲(chǔ)集群120-3存在去重記錄(例如,“OSiLocationiDeduped")并且沒(méi)有未解決的刪除請(qǐng)求。存儲(chǔ)集群120-1可以刪除與復(fù)制品相關(guān)聯(lián)的先前去重記錄(例如,"OSiLocationiDeduped"),并且將數(shù)據(jù)指定符(例如,“03:Location:Data")寫(xiě)入全局索引中的對(duì)象的對(duì)應(yīng)內(nèi)容句柄。圖9圖示了與圖7的塊750的對(duì)重復(fù)引用的移除相關(guān)聯(lián)的示例性操作??梢宰R(shí)別不帶刪除請(qǐng)求的多個(gè)復(fù)制品(塊910)。例如,存儲(chǔ)集群120-1可以查看全局索引,并且識(shí)別沒(méi)有與存儲(chǔ)集群120-1負(fù)責(zé)的內(nèi)容句柄相對(duì)應(yīng)的未解決的刪除請(qǐng)求的兩個(gè)或多個(gè)復(fù)制品??梢詰?yīng)用確定復(fù)制品待被去重的標(biāo)準(zhǔn)(塊920)。例如,存儲(chǔ)集群120-1可以應(yīng)用標(biāo)準(zhǔn)來(lái)對(duì)可以被存儲(chǔ)在存儲(chǔ)集群120-1內(nèi)的冗余復(fù)制品進(jìn)行去重。對(duì)冗余復(fù)制品進(jìn)行去重的標(biāo)準(zhǔn)可以基于多種因素,諸如復(fù)制品的地理接近性、在存儲(chǔ)集群處的可用存儲(chǔ)能力或其它因素。(例如,使用去重邏輯420的)存儲(chǔ)集群120-1可以將標(biāo)準(zhǔn)應(yīng)用于在上面識(shí)別的沒(méi)有未解決的刪除請(qǐng)求的兩個(gè)或多個(gè)復(fù)制品。在一些實(shí)施方式中,多個(gè)復(fù)制品可以被識(shí)別來(lái)待被去重。在其它實(shí)施方式中,存儲(chǔ)集群120-1可以留下多于一個(gè)活復(fù)制品(例如,未被標(biāo)記用于去重的復(fù)制品)。可以對(duì)全局索引進(jìn)行更新以將去重的復(fù)制品指定為"Deduped"(塊930)。例如,對(duì)于每一個(gè)去重的復(fù)制品,存儲(chǔ)集群120-1可以刪除與復(fù)制品相關(guān)聯(lián)的先前數(shù)據(jù)記錄(例如,“02!Location:Data"),并且將去重指定符(例如,“02:Location:Deduped")寫(xiě)入全局索弓I中的對(duì)應(yīng)的內(nèi)容句柄。對(duì)冗余復(fù)制品的去重可以使用被復(fù)制為全局索引的一部分的去重消息來(lái)完成。被標(biāo)記用于去重的復(fù)制品可以被存儲(chǔ)在存儲(chǔ)集群120-1或另一個(gè)存儲(chǔ)集群(例如,存儲(chǔ)集群120-2、120-3、120-4等)內(nèi)。在一個(gè)實(shí)施方式中,存儲(chǔ)集群120-1可以刪除本地存儲(chǔ)的復(fù)制品以及從全局索引刪除對(duì)應(yīng)的〃OLLocatiorKData"記錄,并且將〃OliLocationiDeduped"添加到全局索引。存儲(chǔ)集群120-1還可以使用復(fù)制的全局索引,發(fā)起刪除消息來(lái)刪除存儲(chǔ)在其它集群中的復(fù)制品。圖10提供了用于在分布式多主站數(shù)據(jù)復(fù)制系統(tǒng)(例如,文件系統(tǒng)140)中優(yōu)化帶寬消耗以及減少時(shí)延的示例性過(guò)程1000的流程圖。在一個(gè)實(shí)施方式中,過(guò)程1000可以由存儲(chǔ)集群120中的一個(gè)來(lái)執(zhí)行。在另一個(gè)實(shí)施方式中,過(guò)程1000的部分或全部可以由另一個(gè)設(shè)備或設(shè)備組一包括或排除存儲(chǔ)集群120-來(lái)執(zhí)行。對(duì)于在下面描述的過(guò)程1000的特定示例,可以參考文件系統(tǒng)140的存儲(chǔ)集群120-1,其中存儲(chǔ)集群120-1包括集群ID“01”。如圖1000中所圖示,過(guò)程1000可以以接收對(duì)對(duì)象的請(qǐng)求(塊1010)開(kāi)始。例如,存儲(chǔ)集群120-1可以從客戶端(例如,客戶端110-1)接收獲取對(duì)象的請(qǐng)求??梢栽谌炙饕胁檎覍?duì)象位置(塊1020)。例如,存儲(chǔ)集群120-1可以使用對(duì)象的內(nèi)容句柄來(lái)在復(fù)制的全局索引中查找對(duì)象的復(fù)制品位置??梢宰R(shí)別“最佳”復(fù)制品位置(塊1030)。例如,假設(shè)多于一個(gè)復(fù)制品可用,存儲(chǔ)集群120-1可以確定待檢索的“最佳”復(fù)制品以最小化網(wǎng)絡(luò)資源。例如,“最佳”復(fù)制品可以是具有與存儲(chǔ)集群120-1最接近的地理位置的復(fù)制品。在其它實(shí)施方式中,“最佳”復(fù)制品可以基于可用網(wǎng)絡(luò)連通性、地理位置和/或其它標(biāo)準(zhǔn)的組合。因此,在一些實(shí)施方式中,對(duì)象11的“最佳”復(fù)制品可以被本地存儲(chǔ)在存儲(chǔ)集群120-1內(nèi)??梢詮乃R(shí)別的位置檢索對(duì)象(塊1040)。例如,存儲(chǔ)集群120-1可以向最接近的可用存儲(chǔ)集群請(qǐng)求“最佳”復(fù)制品,并且接收滿足客戶端請(qǐng)求的復(fù)制品。存儲(chǔ)集群120-1然后可以將復(fù)制品發(fā)送給客戶端。示例圖11提供了根據(jù)在此描述的一個(gè)實(shí)施方式的示例性全局索引的一部分1100。除其它信息外,索引可以包括內(nèi)容句柄列1110和去重指定記錄列1120。假設(shè),在示例性索引部分1100中,分布式多主站數(shù)據(jù)復(fù)制系統(tǒng)包括三個(gè)存儲(chǔ)集群XX、YY和ZZ。去重算法可以在存儲(chǔ)集群XX、YY和TL的每一個(gè)中周期性地運(yùn)行,以及可以掃描全局索引的全部或一部分。并且,與特定對(duì)象內(nèi)容句柄相關(guān)聯(lián)的記錄(例如,Data、DeleteRequest和Deduped)可以由存儲(chǔ)集群XX、YY和TL中的一個(gè)寫(xiě)入全局索引。對(duì)全局索引的修改可以被復(fù)制到所有其它參與的集群(例如,存儲(chǔ)集群XX、YY和TL的剩余者)。如圖11中所示,索引部分1100包括四個(gè)對(duì)象的內(nèi)容句柄和相關(guān)聯(lián)的刪除指定記錄?!癏andlell”具有分別指示復(fù)制品被存儲(chǔ)在存儲(chǔ)集群XX處的記錄(“XXlocationOLData“)和被存儲(chǔ)在存儲(chǔ)集群YY處的記錄(“YYiLocationOliData")?!癏andle21”具有指示復(fù)制品被存儲(chǔ)在存儲(chǔ)集群XX處的記錄("XX:Location02:Data//)以及指示在存儲(chǔ)集群YY處的另一個(gè)復(fù)制品具有正在進(jìn)行的刪除請(qǐng)求的記錄(“YY:Location02:DeleteRequest)。"Handle31”具有分別指示復(fù)制品被存儲(chǔ)在存儲(chǔ)集群YY處的記錄(〃XX:LocationOSiData")和被存儲(chǔ)在存儲(chǔ)集群U處的記錄(“ZZ:Location01:Data")。“Handle31,,還具有以下兩個(gè)記錄指示在存儲(chǔ)集群YY處的復(fù)制品具有正在進(jìn)行的刪除請(qǐng)求的記錄(〃YY:Location03DeleteRequest”)和指示在存儲(chǔ)集群ZZ處的復(fù)制品具有正在進(jìn)行的刪除請(qǐng)求的記錄(”ZZiLocationOIiDeleteRequest")?!癏andle41“具有指示復(fù)制品被存儲(chǔ)在存儲(chǔ)集群YY處的記錄(“XX:Location04:Data//)以及指示在存儲(chǔ)集群YY處的復(fù)制品具有正在進(jìn)行的刪除請(qǐng)求的記錄(〃YYLocation04DeleteRequest“)。Handle41還具有一個(gè)指示對(duì)復(fù)制品的去重已經(jīng)發(fā)生的記錄(“ZZ:LOCatiOn02:Deduped)。存儲(chǔ)集群所使用的去重算法可以使用與在此描述的原理一致的導(dǎo)則來(lái)操作。假設(shè)存儲(chǔ)集群XX被分配為負(fù)責(zé)包括"Handlell"、“Handle21"、“Handle31"以及〃Handle41"的全局索引的部分。當(dāng)對(duì)象被完全上載于存儲(chǔ)集群中時(shí),存儲(chǔ)集群可以將數(shù)據(jù)記錄(例如,“ClusterID:Location:Data〃)寫(xiě)入由對(duì)象的內(nèi)容句柄尋址的復(fù)制的全局索引。例如,“XX:Location01:Data"和〃YY:Location01:Data"說(shuō)明了關(guān)于〃Handlell"的復(fù)制品的數(shù)據(jù)記錄。并且,“XX:Location02:Data//說(shuō)明了關(guān)于〃Handle21"的復(fù)制品的數(shù)據(jù)記錄。對(duì)于〃HandleSl"和〃Handle41",可以看到類(lèi)似的數(shù)據(jù)記錄。當(dāng)在存儲(chǔ)集群中請(qǐng)求對(duì)象時(shí),存儲(chǔ)集群可以使用對(duì)象的內(nèi)容句柄來(lái)在復(fù)制的全局索引中查找復(fù)制品位置,并且從“最佳”(例如,最接近)集群取得復(fù)制品。例如,假設(shè)在存儲(chǔ)集群U處請(qǐng)求與"Handlell"相對(duì)應(yīng)的對(duì)象,以及存儲(chǔ)集群YY比存儲(chǔ)集群XX更接近于存儲(chǔ)集群U,存儲(chǔ)集群U可以向存儲(chǔ)集群YY請(qǐng)求對(duì)應(yīng)于"Handlell"的對(duì)象復(fù)制品。當(dāng)在存儲(chǔ)集群中刪除對(duì)象時(shí),存儲(chǔ)集群可以將〃ClusterID=Location:DeleteRequest‘‘寫(xiě)入由對(duì)象的內(nèi)容句柄尋址的復(fù)制的全局索弓丨。例如,“YY:Location02:DeleteRequest〃說(shuō)明了關(guān)于在存儲(chǔ)集群YY中的〃Handle21“的刪除的復(fù)制品的記錄。類(lèi)似地,“YY:Location03:DeleteRequest“和“ZZLocationOlDeleteRequest“分別說(shuō)明了關(guān)于對(duì)存儲(chǔ)集群YY和ZZ而言的"HandleSl"的刪除的復(fù)制品的記錄。如果在存儲(chǔ)集群中的掃描遇到?jīng)]有與存儲(chǔ)集群負(fù)責(zé)的內(nèi)容句柄相對(duì)應(yīng)的未解決的刪除請(qǐng)求的多個(gè)復(fù)制品,則存儲(chǔ)集群可以刪除對(duì)象的冗余復(fù)制品(可能留下多于一個(gè)活復(fù)制品)。對(duì)于另一個(gè)存儲(chǔ)集群中的每一個(gè)刪除的復(fù)制品,存儲(chǔ)集群可以刪除數(shù)據(jù)記錄并且寫(xiě)入去重記錄。例如,在存儲(chǔ)集群XX中的掃描可以識(shí)別"Handlell"具有分別指示復(fù)制品被存儲(chǔ)在存儲(chǔ)集群XX的記錄(“XXiLocationOliData")和被存儲(chǔ)在存儲(chǔ)集群YY的記錄(〃YYiLocationOliData")。基于為移除冗余引用而提供的標(biāo)準(zhǔn),存儲(chǔ)集群XX可以發(fā)起刪除在存儲(chǔ)集群YY處的復(fù)制品。存儲(chǔ)集群XX可以刪除圖11中所示的記錄〃YY:Location01:Data〃,并且替代地寫(xiě)入〃YY:Location01:Deduped〃。如果在存儲(chǔ)集群XX中的掃描遇到與存儲(chǔ)集群XX負(fù)責(zé)的內(nèi)容句柄相對(duì)應(yīng)的、對(duì)另一個(gè)存儲(chǔ)集群(例如,存儲(chǔ)集群¥¥或以)中的復(fù)制品的刪除請(qǐng)求(例如,“ClusterID:Location:DeleteRequest“),則存儲(chǔ)集群XX可以應(yīng)用下面的分析。如果對(duì)于與刪除請(qǐng)求相同的存儲(chǔ)集群和位置,存在"Deduped"記錄,如果存在對(duì)象的另一個(gè)活復(fù)制品、或如果所有的復(fù)制品均具有未解決的刪除請(qǐng)求,則存儲(chǔ)集群XX可以刪除存儲(chǔ)集群¥¥或以中的對(duì)象的復(fù)制品(如果存在的話),并且刪除記錄"YY=Location:*"或〃ZZiLocation:*“0例如,在存儲(chǔ)集群YY中的〃Handle21“的復(fù)制品和記錄〃YY:Location02:DeleteRequest〃可以由存儲(chǔ)集群XX刪除,因?yàn)榇嬖诹硪粋€(gè)活對(duì)象(由記錄"XX:Location02:Data〃指示)。類(lèi)似地,在存儲(chǔ)集群YY中的"Handle31"的復(fù)制品和記錄“YY:Location03DeleteRequest“可以由存儲(chǔ)集群XX刪除,因?yàn)榇鎯?chǔ)集群YY和存儲(chǔ)集群TL中的兩個(gè)復(fù)制品均具有未解決的刪除請(qǐng)求。如果存儲(chǔ)集群XX不能刪除存儲(chǔ)集群YY或U中的對(duì)象的復(fù)制品(例如,不存在"Deduped"記錄或?qū)ο蟮牧硪粋€(gè)活復(fù)制品、以及所有的復(fù)制品均沒(méi)有未解決的刪除請(qǐng)求),則存儲(chǔ)集群XX可以將對(duì)象從YY或TL拷貝到另一個(gè)存儲(chǔ)集群,對(duì)于該另一個(gè)存儲(chǔ)集群存在去重記錄并且沒(méi)有未解決的刪除請(qǐng)求、刪除去重記錄以及寫(xiě)入數(shù)據(jù)記錄。例如,存儲(chǔ)集群YY中的〃Handle41"的復(fù)制品(〃YYLocation04DeleteRequest“)可以觸發(fā)存儲(chǔ)集群XX將與"Handle41"相關(guān)聯(lián)的對(duì)象拷貝到存儲(chǔ)集群以。存儲(chǔ)集群XX可以更新全局索引以將〃ZZ:Location02:Deduped"改變?yōu)椤╖Z:Location02:Data〃。算法的正確性是直截了當(dāng)?shù)?,因?yàn)閷?duì)對(duì)象的所有刪除操作僅僅由在負(fù)責(zé)其內(nèi)容句柄的存儲(chǔ)集群中的掃描過(guò)程來(lái)執(zhí)行。算法還透明地處理相同集群中的、具有不同位置(例如,XX:Locationl和XX:Location2)的多個(gè)對(duì)象復(fù)制品。結(jié)論在此描述的系統(tǒng)和/或方法可以將對(duì)象的全局索引存儲(chǔ)在分布式數(shù)據(jù)復(fù)制系統(tǒng)中,以及遍及分布式數(shù)據(jù)復(fù)制系統(tǒng)復(fù)制全局索引和部分對(duì)象。存儲(chǔ)集群可以被分配為在全局索引的特定子集內(nèi)的去重的責(zé)任實(shí)體。存儲(chǔ)集群可以進(jìn)行對(duì)全局索引的子集的掃描,并且基于掃描來(lái)識(shí)別冗余復(fù)制品。存儲(chǔ)集群可以對(duì)本地存儲(chǔ)或存儲(chǔ)在遠(yuǎn)程存儲(chǔ)集群中的冗余復(fù)制品進(jìn)行去重。對(duì)實(shí)施方式的前面的描述提供了說(shuō)明和描述,但是并不意在窮舉或?qū)⒈景l(fā)明限制在所公開(kāi)的精確形式。修改和變化根據(jù)上述教導(dǎo)是可能的或可以從本發(fā)明的實(shí)踐獲得。例如,在另一個(gè)實(shí)施方式中,可以使用去重算法的同步版本,其中不同的存儲(chǔ)集群直接而不是使用在分布式數(shù)據(jù)復(fù)制系統(tǒng)內(nèi)的復(fù)制層來(lái)通信。并且,雖然關(guān)于圖6A-10來(lái)描述了塊系列,但是在其它實(shí)施方式中,可以修改塊的順序。此外,可以并行執(zhí)行非依賴(lài)性的塊。將顯而易見(jiàn)的是,在此描述的實(shí)施例可以以在附圖中所圖示的實(shí)施方式中的軟件、固件以及硬件的許多不同形式實(shí)現(xiàn)。用于實(shí)現(xiàn)在此描述的實(shí)施例的實(shí)際軟件代碼或?qū)S每刂朴布⒉皇菍?duì)本發(fā)明的限制。因此,沒(méi)有參考特定軟件代碼描述了實(shí)施例的操作和行為一應(yīng)該理解的是,軟件和控制硬件可以基于在此的描述被設(shè)計(jì)來(lái)實(shí)現(xiàn)實(shí)施例。此外,在此描述的某些實(shí)施方式可以被實(shí)現(xiàn)為執(zhí)行一個(gè)或多個(gè)功能的“邏輯”或“組件”。該邏輯或組件可以包括硬件,諸如處理器、微處理器、專(zhuān)用集成電路或現(xiàn)場(chǎng)可編程門(mén)陣列;或硬件和軟件(例如,由處理器執(zhí)行的軟件)的組合。應(yīng)當(dāng)強(qiáng)調(diào)的是,詞語(yǔ)“包括”在本說(shuō)明書(shū)中使用時(shí)被采用來(lái)明確說(shuō)明所述特征、完整物、步驟或組件的存在,但是并不排除一個(gè)或多個(gè)其它特征、完整物、步驟、組件或其組群的存在或添加。盡管在權(quán)利要求書(shū)中記載和/或在說(shuō)明書(shū)中公開(kāi)了特征的特定組合,但是這些組合并不意在限制本發(fā)明的公開(kāi)。實(shí)際上,可以以未在權(quán)利要求書(shū)中明確記載和/或未在說(shuō)明書(shū)中明確公開(kāi)的方式對(duì)這些特征中的許多特征進(jìn)行組合。除非明確描述如此,在本申請(qǐng)的描述中使用的元素、動(dòng)作或指令均不應(yīng)當(dāng)被解釋為對(duì)本發(fā)明是關(guān)鍵的或至關(guān)重要的。同時(shí),如在此所使用的,不加數(shù)量詞的項(xiàng)意指包括一個(gè)或多個(gè)項(xiàng)。在意指僅僅一個(gè)項(xiàng)時(shí),使用詞語(yǔ)“一個(gè)”或類(lèi)似語(yǔ)言。此外,除非另外明確說(shuō)明,如在此所使用的,短語(yǔ)“基于”意在表示“至少部分基于”。權(quán)利要求1.一種由分布式數(shù)據(jù)復(fù)制系統(tǒng)中的多個(gè)設(shè)備中的設(shè)備執(zhí)行的方法,所述方法包括將對(duì)象的索引存儲(chǔ)在所述分布式數(shù)據(jù)復(fù)制系統(tǒng)中,所述索引是在所述對(duì)象的復(fù)制品由所述分布式數(shù)據(jù)復(fù)制系統(tǒng)中的所述多個(gè)設(shè)備本地存儲(chǔ)時(shí)被復(fù)制的;進(jìn)行對(duì)所述索引的至少一部分的掃描;基于對(duì)所述索引的所述掃描來(lái)識(shí)別所述對(duì)象中的至少一個(gè)的冗余復(fù)制品;以及通過(guò)將去重記錄寫(xiě)入所述索引的一部分來(lái)對(duì)所述冗余復(fù)制品進(jìn)行去重。2.根據(jù)權(quán)利要求1所述的方法,其中使用所述分布式數(shù)據(jù)復(fù)制系統(tǒng)的基礎(chǔ)復(fù)制層來(lái)復(fù)制對(duì)所述索引的改變。3.根據(jù)權(quán)利要求1所述的方法,其中所述設(shè)備是負(fù)責(zé)減少在所述索引的特定子集內(nèi)的對(duì)象的冗余復(fù)制品的專(zhuān)門(mén)設(shè)備。4.根據(jù)權(quán)利要求1所述的方法,其中所述索引是包括在所述索引內(nèi)的每一個(gè)對(duì)象的內(nèi)容句柄的內(nèi)容可尋址索引。5.根據(jù)權(quán)利要求4所述的方法,進(jìn)一步包括將數(shù)據(jù)記錄或刪除請(qǐng)求記錄寫(xiě)入與所述對(duì)象的所述內(nèi)容句柄相關(guān)聯(lián)的所述索引的一部分;以及將與所述對(duì)象的所述內(nèi)容句柄相關(guān)聯(lián)的所述索引的一部分復(fù)制到所述多個(gè)設(shè)備中的一個(gè)或多個(gè)其它設(shè)備。6.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括接收對(duì)包括在所述索引中的另一個(gè)對(duì)象的請(qǐng)求;基于所述索引來(lái)確定從其檢索所述另一個(gè)對(duì)象的復(fù)制品的設(shè)備,所述設(shè)備從所述多個(gè)設(shè)備中選擇;以及從所選擇的設(shè)備檢索所述另一個(gè)對(duì)象的所述復(fù)制品。7.根據(jù)權(quán)利要求1所述的方法,其中所述識(shí)別所述冗余復(fù)制品進(jìn)一步基于區(qū)別兩個(gè)或多個(gè)復(fù)制品之間的偏好的標(biāo)準(zhǔn)。8.根據(jù)權(quán)利要求1所述的方法,其中所述索引獨(dú)立于所述設(shè)備內(nèi)的所述復(fù)制品被存儲(chǔ)。9.一種在分布式數(shù)據(jù)復(fù)制系統(tǒng)中的多個(gè)設(shè)備中的設(shè)備,所述設(shè)備包括用于將對(duì)象的索引存儲(chǔ)在所述分布式數(shù)據(jù)復(fù)制系統(tǒng)中的裝置;用于將改變寫(xiě)入所述索引以指定所述對(duì)象中的一個(gè)的復(fù)制品的狀態(tài)的裝置;用于將對(duì)所述索引的所述改變復(fù)制到所述分布式數(shù)據(jù)復(fù)制系統(tǒng)中的所述多個(gè)設(shè)備的裝置;用于進(jìn)行對(duì)所述索引的至少一部分的掃描的裝置;用于基于對(duì)所述索引的所述掃描來(lái)識(shí)別所述對(duì)象中的所述一個(gè)的冗余復(fù)制品的裝置;以及用于對(duì)所述冗余復(fù)制品進(jìn)行去重的裝置。10.根據(jù)權(quán)利要求9所述的系統(tǒng),進(jìn)一步包括用于對(duì)所述索引進(jìn)行更新以反映去重復(fù)制品的所述狀態(tài)的裝置。11.一種系統(tǒng),包括存儲(chǔ)器,所述存儲(chǔ)器用來(lái)存儲(chǔ)指令、對(duì)象的數(shù)據(jù)存儲(chǔ)以及所述數(shù)據(jù)存儲(chǔ)中的所述對(duì)象的索引;以及處理器,所述處理器用來(lái)執(zhí)行所述存儲(chǔ)器中的所述指令來(lái)識(shí)別所述數(shù)據(jù)存儲(chǔ)中的對(duì)象的狀態(tài),所述狀態(tài)與所述對(duì)象是否具有復(fù)制品以及刪除請(qǐng)求是否與所述對(duì)象相關(guān)聯(lián)有關(guān),基于所述對(duì)象的所述狀態(tài)將去重指定記錄寫(xiě)入所述索引,將具有所述去重指定記錄的所述索引復(fù)制到一個(gè)或多個(gè)設(shè)備,以及從所述一個(gè)或多個(gè)設(shè)備中的一個(gè)接收與所述對(duì)象相關(guān)聯(lián)的其它去重指定記錄,其中所述去重指定記錄和所述其它去重指定記錄為對(duì)所述對(duì)象的一個(gè)或多個(gè)復(fù)制品的刪除提供基礎(chǔ)。12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述去重指定記錄和所述其它去重指定記錄使用分布式多主站數(shù)據(jù)復(fù)制環(huán)境中的復(fù)制層來(lái)交換。13.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述處理器被進(jìn)一步配置為進(jìn)行對(duì)所述索引的一部分的掃描以識(shí)別所述對(duì)象的冗余復(fù)制品。14.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述設(shè)備單獨(dú)負(fù)責(zé)對(duì)所述索引內(nèi)的對(duì)象的子集的去重。15.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述去重指定記錄包括存儲(chǔ)所述對(duì)象的所述設(shè)備的集群標(biāo)識(shí);所述對(duì)象在所述設(shè)備內(nèi)的存儲(chǔ)位置的位置標(biāo)識(shí);以及所述對(duì)象的去重狀態(tài)的指定部分。16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述指定部分包括以下的一個(gè)指示所述對(duì)象的活復(fù)制品的數(shù)據(jù)指定;指示對(duì)復(fù)制品的正在進(jìn)行的刪除請(qǐng)求的刪除請(qǐng)求指定;以及指示已被選擇用于去重的復(fù)制品的去重指定符。17.一種由一個(gè)或多個(gè)設(shè)備執(zhí)行的方法,包括將對(duì)象的索引存儲(chǔ)在分布式數(shù)據(jù)復(fù)制系統(tǒng)內(nèi)的多個(gè)設(shè)備中,以及在本地存儲(chǔ)所述對(duì)象時(shí)遍及所述分布式數(shù)據(jù)復(fù)制系統(tǒng)復(fù)制所述索引,其中每一個(gè)設(shè)備負(fù)責(zé)所述索引的特定子集內(nèi)的所述對(duì)象的去重;進(jìn)行對(duì)所述索引的所述子集中的每一個(gè)的掃描以基于所述掃描來(lái)識(shí)別冗余復(fù)制品;對(duì)所述冗余復(fù)制品進(jìn)行去重;以及自動(dòng)將對(duì)象從帶有具有正在進(jìn)行的刪除請(qǐng)求的復(fù)制品的設(shè)備拷貝到帶有先前已被去重的復(fù)制品的設(shè)備。18.根據(jù)權(quán)利要求17所述的方法,進(jìn)一步包括將改變寫(xiě)入與所述對(duì)象中的一個(gè)相關(guān)聯(lián)的所述索引的一部分,所述改變包括所述對(duì)象的復(fù)制品的數(shù)據(jù)記錄、刪除請(qǐng)求記錄或去重記錄。19.根據(jù)權(quán)利要求17所述的方法,進(jìn)一步包括使用所述分布式數(shù)據(jù)復(fù)制系統(tǒng)的基礎(chǔ)復(fù)制層來(lái)對(duì)所述索引的所述改變進(jìn)行復(fù)制。20.根據(jù)權(quán)利要求17所述的方法,其中所述索引是包括在所述索引內(nèi)的每一個(gè)對(duì)象的內(nèi)容句柄的內(nèi)容可尋址索引。21.一種包括計(jì)算機(jī)可執(zhí)行的指令的計(jì)算機(jī)可讀存儲(chǔ)器,所述計(jì)算機(jī)可讀存儲(chǔ)器包括用來(lái)進(jìn)行對(duì)分布式數(shù)據(jù)復(fù)制系統(tǒng)中的對(duì)象的索引的一部分的掃描的一個(gè)或多個(gè)指令;用來(lái)基于對(duì)所述索引的所述一部分的所述掃描來(lái)識(shí)別所述對(duì)象中的一個(gè)的冗余復(fù)制品的一個(gè)或多個(gè)指令;以及用來(lái)對(duì)所述冗余復(fù)制品進(jìn)行去重的一個(gè)或多個(gè)指令。22.根據(jù)權(quán)利要求21所述的計(jì)算機(jī)可讀存儲(chǔ)器,進(jìn)一步包括用來(lái)將改變寫(xiě)入與所述冗余復(fù)制品相關(guān)聯(lián)的所述索引的一部分的一個(gè)或多個(gè)指令,所述改變包括所述冗余復(fù)制品的去重記錄。23.根據(jù)權(quán)利要求21所述的計(jì)算機(jī)可讀存儲(chǔ)器,進(jìn)一步包括用來(lái)接收對(duì)包括在所述索引中的另一個(gè)對(duì)象的請(qǐng)求的一個(gè)或多個(gè)指令;用來(lái)基于所述索引來(lái)選擇從其檢索所述另一個(gè)對(duì)象的復(fù)制品的存儲(chǔ)集群的一個(gè)或多個(gè)指令;以及用來(lái)從所選擇的存儲(chǔ)集群檢索所述另一個(gè)對(duì)象的所述復(fù)制品的一個(gè)或多個(gè)指令。全文摘要一種方法由分布式數(shù)據(jù)復(fù)制系統(tǒng)中的設(shè)備組中的設(shè)備執(zhí)行。該方法包括將對(duì)象的索引存儲(chǔ)在分布式數(shù)據(jù)復(fù)制系統(tǒng)中,所述索引在對(duì)象由分布式數(shù)據(jù)復(fù)制系統(tǒng)中的多個(gè)設(shè)備本地存儲(chǔ)時(shí)被復(fù)制。該方法還包括進(jìn)行對(duì)索引的至少一部分的掃描,以及基于對(duì)索引的掃描來(lái)識(shí)別對(duì)象中的至少一個(gè)的冗余復(fù)制品。該方法進(jìn)一步包括對(duì)冗余復(fù)制品進(jìn)行去重,以及對(duì)索引進(jìn)行更新以反映冗余復(fù)制品的狀態(tài)。文檔編號(hào)G06F17/30GK102317938SQ200980156970公開(kāi)日2012年1月11日申請(qǐng)日期2009年12月22日優(yōu)先權(quán)日2008年12月22日發(fā)明者亞歷山大·克塞爾曼,亞歷山大·德羅貝切夫,賈·達(dá)圖阿什維利申請(qǐng)人:谷歌公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
孟州市| 忻城县| 南昌县| 建湖县| 山丹县| 体育| 通道| 久治县| 朔州市| 铁力市| 布拖县| 德惠市| 安顺市| 乌什县| 泽普县| 广昌县| 安化县| 郸城县| 滦平县| 陵水| 双城市| 栖霞市| 高要市| 盐亭县| 巴青县| 库尔勒市| 临湘市| 苍溪县| 济南市| 旬邑县| 镇沅| 西昌市| 洛隆县| 五台县| 涞水县| 凭祥市| 淮滨县| 揭阳市| 临海市| 治多县| 凤山县|