亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

在容錯數(shù)據庫管理系統(tǒng)中聚集查詢結果的系統(tǒng)和方法

文檔序號:6361771閱讀:165來源:國知局
專利名稱:在容錯數(shù)據庫管理系統(tǒng)中聚集查詢結果的系統(tǒng)和方法
技術領域
本發(fā)明通常涉及存儲系統(tǒng),尤其涉及用以在容錯數(shù)據庫管理系統(tǒng)中聚集查詢結果的系統(tǒng)和方法。
背景技術
基于客戶的因公需要和情景,他們對內容平臺可能具有不同的聚集需求。一個常見的主題圍繞著檢索對象列表和這些對象的信息,以傳遞到在他們設施中的另一個應用實現(xiàn)特定功能(例如,搜索數(shù)據或備份數(shù)據)。為了這樣做,可能需要應用做更多的工作以檢索該信息。例如,集成應用可能必須遍歷目錄、子目錄、次-子目錄等等來檢索對象的列表和給定規(guī)則的系統(tǒng)元數(shù)據。對于獨立節(jié)點的冗余陣列被聯(lián)網在一起并且每個節(jié)點群組(cluster) /系統(tǒng)被分區(qū)為租戶(tenant)和命名空間的情況,這可能必須對于命名空間中的所有目錄、相關的所有命名空間、相關的所有租戶等進行操作。命名空間是群組的邏輯分區(qū),并且基本上作為特定于至少一個限定應用的對象集。每個命名空間具有相對于其他命名空間私有的文件系統(tǒng)。此外,訪問一個命名空間不允許用戶訪問其他命名空間。租戶是一組命名空間以及可能是其他子租戶。群組/系統(tǒng)是物理存檔實例。見共同授權的美國專利申請N0.12/609,804,其在2009年10月30日遞交,名稱為使用命名空間的分區(qū)內容平臺中的固定內容存儲(Fixed Content Storage Within a Partitioned Content PlatformUsing Namespaces),以引用的方式將其合并入本文中。

發(fā)明內容
本發(fā)明的示例性實施例允許REST (表象化狀態(tài)轉換)客戶對符合給定條件的元數(shù)據和對象的列表查詢內容平臺而不需要集成應用來遍歷目錄、子目錄、次子目錄等等,以檢索給定條件的對象列表和系統(tǒng)元數(shù)據。例如,客戶應用可以通過改變時間查詢、通過目錄查詢、通過處理(生成、刪除、清除)查詢、通過命名空間查詢、或在結果中標記頁面。使用本發(fā)明,單個內容平臺節(jié)點將查詢分布到內容平臺系統(tǒng)中的所有節(jié)點上的所有區(qū)域,并且相同的節(jié)點在將列表返回給客戶應用之前分類結果。通過這種方法,內容平臺系統(tǒng)通過在內容平臺系統(tǒng)中所有節(jié)點上查詢、篩選和分類結果并且然后將結果返回給客戶應用而承擔了該工作的更多負擔。本發(fā)明的一個方面是針對被聯(lián)網在一起的獨立節(jié)點的冗余陣列,其中每個節(jié)點運行提供基于對象存儲的應用的實例,其中元數(shù)據對象被存儲在分布在陣列上節(jié)點中的區(qū)域的集合中,其中通過哈希元數(shù)據對象屬性并提取得出的哈希值的比特的給定集合來識別給定區(qū)域。一種管理查詢結果的方法包括:由多個獨立節(jié)點的第一節(jié)點從客戶應用接收通過條件對于對象列表的請求;由第一節(jié)點基于所接收到的請求將查詢發(fā)布給所有節(jié)點;由每個節(jié)點在節(jié)點中的所述區(qū)域上使用存儲在區(qū)域中的元數(shù)據對象來處理所述查詢;由第一節(jié)點聚集并篩選來自所有節(jié)點的查詢結果;以及由第一節(jié)點將聚集的和篩選的結果返回給客戶應用。
在一些實施例中,由每個節(jié)點處理查詢包括向第一節(jié)點以集合提供查詢結果,以及來自所有節(jié)點的查詢結果被以集合聚集和篩選并被返回給客戶應用。該方法還包括在由第一節(jié)點將聚集的和篩選結果的當前集合返回給客戶應用之后,在請求和檢索來自所有節(jié)點的下一結果集合之前,等候來自客戶應用的對于下一結果集合的請求。將查詢結果以集合提供給第一節(jié)點包括提供來自每個區(qū)域的預定數(shù)量的對象作為處理查詢的結果。該方法還包括由第一節(jié)點分類所聚集和篩選的結果以產生預定的順序。請求包括通過改變時間查詢、通過目錄查詢、通過處理查詢、通過命名空間查詢、以及在結果中標記頁面中一個或多個。本發(fā)明的另一方面針對用以在聯(lián)網在一起的獨立節(jié)點的冗余陣列中管理查詢結果的裝置,其中每個節(jié)點運行提供基于對象存儲的應用的實例,其中元數(shù)據對象被存儲在分布在陣列上節(jié)點中的區(qū)域的集合中,其中通過哈希元數(shù)據對象屬性并提取得出的哈希值的比特的給定集合來識別給定區(qū)域。該裝置包括為每個節(jié)點提供的處理器、存儲器、以及查詢結果管理模塊。該查詢結果管理模塊被配置為:如果具有查詢結果管理模塊的節(jié)點是從客戶應用接收通過條件對于對象列表的請求的第一節(jié)點,則基于所接收到的請求將查詢發(fā)布給所有節(jié)點;在節(jié)點中的所述區(qū)域上使用存儲在區(qū)域中的元數(shù)據對象來處理所述查詢;以及如果具有查詢結果管理模塊的節(jié)點是第一節(jié)點,則聚集并篩選來自所有節(jié)點的查詢結果,將聚集的和篩選的結果返回給客戶應用。在特定實施例中,節(jié)點包括用于管理節(jié)點中的元數(shù)據對象的元數(shù)據管理器,該元數(shù)據管理器包括組織和提供對元數(shù)據對象的訪問,其中,元數(shù)據管理器包括節(jié)點的查詢結果管理模塊。本發(fā)明的另一個方面針對計算機可讀存儲介質,其存儲多個指令用以在聯(lián)網在一起的獨立節(jié)點的冗余陣列中控制數(shù)據處理器以管理查詢結果,其中每個節(jié)點運行提供基于對象存儲的應用的實例,其中元數(shù)據對象被存儲在分布在陣列上節(jié)點中的區(qū)域的集合中,其中通過哈希元數(shù)據對象屬性并提取得出的哈希值的給定字節(jié)組來識別給定區(qū)域,其中計算機可讀存儲介質被提供在每個節(jié)點中。多個指令包括:如果具有計算機可讀存儲介質的節(jié)點是從客戶應用接收通過條件對于對象列表的請求的第一節(jié)點,則使得所述數(shù)據處理器基于接收到的請求將查詢發(fā)布給所有節(jié)點的指令;使得所述數(shù)據處理器在節(jié)點的區(qū)域上使用存儲在區(qū)域中的元數(shù)據對象處理所述查詢的指令;如果具有計算機可讀存儲介質的節(jié)點是第一節(jié)點,則導致數(shù)據處理器通過第一節(jié)點聚集并篩選來自所有節(jié)點的查詢結果,將聚集的和篩選的結果返回給客戶應用的指令。在以下特定實施例的詳細描述中,本發(fā)明的這些和其他特征和優(yōu)勢將對本領域技術人員變得清楚。


圖1是可以應用本發(fā)明的方法和裝置的固定內容存儲器存檔系統(tǒng)的簡化方框圖。圖2是獨立節(jié)點的冗余陣列的簡化表示,其中每個節(jié)點都是對稱的并且支持存檔系統(tǒng)群組應用。圖3是在給定節(jié)點上運行的存檔系統(tǒng)群組應用的不同組件的高層表示。圖4示出了在群組的給定節(jié)點上的元數(shù)據管理系統(tǒng)的組件示例。
圖5是內容平臺的簡化方框圖,示出了通過單個節(jié)點將來自客戶應用的查詢分發(fā)到所有其他節(jié)點并且聚集將要返回給客戶應用的查詢結果。圖6是流程圖的示例,示出了通過單個節(jié)點將來自客戶應用的查詢分發(fā)到所有其他節(jié)點,聚集查詢結果并通過單個節(jié)點將其返回給客戶應用的過程。
具體實施例方式以下將參照形成了公開一部分的附圖詳細描述本發(fā)明,并且在其中通過例證而非限制的方法顯示了可以實現(xiàn)本發(fā)明的示例性實施例。在附圖中,貫穿多個視圖,相似的數(shù)字描述基本相似的組件。另外,應當注意的是,在如以下所描述的和如在附圖中所示出的,具體實施方式
提供了各種示例性實施例的同時,本發(fā)明不限于本文中所描述和顯示的實施例,而是可以擴展到其他實施例,如同本領域技術人員所知或將會知道的那樣。在說明書中提及的“一個實施例”、“這個實施例”、或“這些實施例”意為本發(fā)明的至少一個實施例中包括結合實施例所描述的特定特征、結構或特點,并且在說明書中的不同位置出現(xiàn)的這些短語不必全部指代相同的實施例。此外,在以下具體實施方式
中,為了提供對本發(fā)明透徹的理解,闡明了數(shù)個特定細節(jié)。然而,對于本領域普通技術人員來說,實現(xiàn)本發(fā)明并不完全需要這些特定細節(jié)。在其他環(huán)境下,眾所周知的結構、材料、電路、處理和接口沒有被詳細描述,和/或可以以方框圖的形式示出,以便不會不必要的模糊本發(fā)明。此外,以下詳細描述的一些部分被呈現(xiàn)為計算機內運行的算法和符號表達的形式。這些算法描述和符號表達是數(shù)據處理領域技術人員使用的手段,來最有效地將他們的創(chuàng)新實質傳達給本領域其他技術人員。算法是導致所期望的結束狀態(tài)或結果的一系列限定的步驟。在本發(fā)明中,為了實現(xiàn)有形結果,所執(zhí)行的步驟需要有形量的物理操縱。雖然不是必要地,但通常來說,這些量表現(xiàn)為能夠被存儲、傳送、組合、比較、和其他形式操縱的電或磁信號。主要因為通用的原因,已經證明將這些信號指代為位(bits)、值(values)、兀素(elements)、符號(symbols)、字符(characters)、術語(terms)、數(shù)(numbers)、指令(instructions)等有時是方便的。然而,應當記住,全部這些和相似術語應當與適當?shù)奈锢砹肯嚓P聯(lián)并且只不過是用在這些量上的方便的標簽。除非特別做出與以下討論明顯相反的闡述,否則應當理解為在描述、討論的通篇,使用諸如“處理”、“計算”、“算出”、“確定”、“顯示”等術語,可以包括計算機系統(tǒng)或其他信息處理設備的動作和過程,他們將在計算機系統(tǒng)的注冊表和存儲器中表現(xiàn)為物理(電子)量的數(shù)據操縱和變換為在計算機系統(tǒng)存儲器或注冊表或其他這種信息存儲器、傳輸或顯示設備中相似地表現(xiàn)為物理量的其他數(shù)據。本發(fā)明還涉及用以執(zhí)行本文中操作的裝置。該裝置可以是為所需目的而特定構造的,或者可以包含由一個或多個計算機程序選擇性觸發(fā)或重新配置的一個或多個通用計算機。這種計算機程序可以被存儲在計算機可讀存儲器介質中,例如但不限制于光盤、磁盤、只讀存儲器、隨機存取存儲器、固態(tài)設備和驅動器、或適于存儲電子信息的任何其他類型的介質。本文中所呈現(xiàn)的算法和顯示不是固有地與任何特定計算機或其他裝置相關聯(lián)的。根據本文中的教導,各種通用系統(tǒng)都可以與程序一起使用,或者可以證實構造更專業(yè)的裝置來執(zhí)行所期望的方法步驟是方便的。此外,本發(fā)明不參照任何特定編程語言進行描述。將會理解的是,如本文中所描述的,多種編程語言可以被用來實現(xiàn)發(fā)明的教導。程序語言的指令可以由一個或多個處理設備運行,例如,中央處理單元(CPU )、處理器或控制器。
如同以下將更詳細描述的,本發(fā)明的示例性實施例提供了用以在容錯數(shù)據庫管理系統(tǒng)中聚集查詢結果的裝置、方法和計算機程序。1.固定內容分布式數(shù)據存儲器已經發(fā)展了這種需要:對于“固定內容”的高度可用、可靠和持久方式的存檔存儲代替或補充傳統(tǒng)的磁帶或光學存儲方案。術語“固定內容”典型的是指為了參考或其他目的,希望不進行修改而保存的任何類型的數(shù)字信息。這種固定內容的示例包括電子郵件、文檔、診斷圖像、檢測圖像、聲音記錄、影片和視頻等等,還有許多其他示例。已經出現(xiàn)了傳統(tǒng)的獨立節(jié)點冗余陣列(RAIN)存儲手段,作為為了存儲這種固定內容信息資產而產生大型在線存檔的選擇架構。通過允許節(jié)點按需接入或退出群組,RAIN架構將存儲器群組隔離于一個或多個節(jié)點的故障。通過在多個節(jié)點上復制數(shù)據,RAIN型存檔能夠自動補償節(jié)點故障或移除。典型地,RAIN系統(tǒng)主要被生產為從封閉系統(tǒng)中的相同組件設計的硬件器件。圖1顯示了一個這種可擴展的基于磁盤的存檔存儲器管理系統(tǒng)。節(jié)點可以包括不同硬件,并且因此可以被認為是“異構的”(heterogeneous)。節(jié)點典型地具有至存儲區(qū)域網絡(SAN)中的一個或多個存儲磁盤的通路,該存儲磁盤可以是實際物理存儲器磁盤或者虛擬存儲器磁盤。在每個節(jié)點上支持的存檔群組應用(并且,可選地,運行應用的下層操作系統(tǒng)),可以是相同的或基本上相同的。每個節(jié)點上的軟件棧(可以包括操作系統(tǒng))是對稱的,而硬件可以是異構的。如圖1所示,企業(yè)能夠使用系統(tǒng),產生對于許多不同類型的固定內容信息的永久存儲,所述固定內容信息諸如文檔、電子郵件、衛(wèi)星圖像、診斷圖像、檢測圖像、聲音記錄、視頻等等,以及其他信息。這些類型當然僅僅是示例。通過在獨立服務器或者稱為存儲節(jié)點上復制數(shù)據,實現(xiàn)了高度可靠性。優(yōu)選地,每個節(jié)點與其對等點(peer)對稱。這樣,因為優(yōu)選地任何給定節(jié)點能夠執(zhí)行所有功能,因此任何一個節(jié)點的故障在存檔的可用性上產生很少的影響。如同在共同擁有的美國專利N0.7,155,466中所描述的,已知在基于RAIN的存檔系統(tǒng)中,并入在每個節(jié)點上運行的捕捉、保存、管理和檢索數(shù)字資產的分布式軟件應用。圖2顯示了一個這種系統(tǒng)。將單獨存檔的物理范圍指代為群組(或系統(tǒng))。典型地,群組不是單個設備,而是設備集。設備可以是同類的或異構的。典型的設備是運行諸如Linux操作系統(tǒng)的計算機或機器。托管在日常硬件上的基于Linux系統(tǒng)的群組提供了能夠變比的存檔,從幾個存儲器節(jié)點服務器變比至存儲數(shù)以千計的數(shù)兆字節(jié)數(shù)據的許多節(jié)點。這種構架保證了存儲能力能夠與組織結構增長的存檔需求一直并駕齊驅。在諸如以上描述的存儲系統(tǒng)中,典型地將數(shù)據隨機分布在群組上,以使得一直保護存檔不發(fā)生設備故障。如果磁盤或節(jié)點故障,則群組自動在維持相同數(shù)據復本的群組中的其他節(jié)點上停止作用。該手段在數(shù)據保護的角度上運作良好的同時,為群組計算的數(shù)據丟失平均時間(MTDL)可能沒有所期望的高。具體來說,MTDL典型地代表計算出的在存檔將丟失數(shù)據之前的時間量。在數(shù)字存檔中,不希望任何數(shù)據丟失,但是由于硬件和軟件組件的特性,一直都存在這種事件發(fā)生的可能性(無論多遙遠)。由于對象和它們的副本在存檔群組中隨機分布,因而MTDL可能低于需求而結束,例如,如果由于在給定節(jié)點中的給定磁盤(鏡像副本被存儲在其上)意外地故障了,則所需的對象副本不可用。如圖2所示的,實現(xiàn)本發(fā)明的示意性群組優(yōu)選地包括以下通常類型的元件:節(jié)點202、一對網絡交換機204、配電單元(PDU) 206、以及不中斷電源(UPS) 208。節(jié)點202典型地包括一個或多個日常服務器并包含CPU(例如,Intel X86、適當?shù)碾S機存取存儲器(RAM)、一個或多個硬盤驅動器(例如,標準IDE/SATA、SCSI等)、以及兩個或多個網絡接口(NIC)卡。典型的節(jié)點是具有2.4GHz芯片、512MBRAM以及六(6)個200GB硬盤驅動器的2U機架式單元。然而,這并不是限制。網絡交換機204典型地包括能夠在節(jié)點之間點對點通信的內部交換機205和允許額外的群組訪問每個節(jié)點的外部交換機207。每個交換機需要足夠的端口來操作群組中所有潛在的節(jié)點。以太網或GigE交換機可以被用于這個目的。使用PDU206為所有節(jié)點和交換機供電,并且使用UPS208保護所有節(jié)點和交換機。盡管不意為限制,但是典型的群組可以被連接到網絡,諸如公共互聯(lián)網、企業(yè)內部互聯(lián)網、或其他廣域或局域網。在示例性實施例中,在企業(yè)環(huán)境內實現(xiàn)群組。例如,通過在站點的集體域名命名系統(tǒng)(DNS)命名服務器中導航可以實現(xiàn)。例如,群組域因此可以是現(xiàn)存域的新的子域。在代表性的實現(xiàn)中,在集體DNS服務器中將子域委托給在群組自身中的命名服務器。終端用戶使用任何傳統(tǒng)的接口或訪問工具訪問群組。例如,這樣可以在任何基于IP的協(xié)議(HTTP、FTP、NFS、AFS、SMB、網頁服務等)上經由API,或通過任何其他已知或以后將研發(fā)的訪問方法、月艮務、程序或工具來實現(xiàn)對群組的訪問??蛻魬猛ㄟ^諸如標準UNIX文件協(xié)議,或HTTPAPI的一個或多個類型的外部網關訪問群組。優(yōu)選地通過虛擬文件系統(tǒng)來公開存檔,該虛擬文件系統(tǒng)能夠隨意符合任何標準的面向UNIX文件協(xié)議的設施。這些包括NFS、FTP、SMB/CIFS等。在一個實施例中,聯(lián)網在一起(例如,經由以太網)成為群組的獨立節(jié)點的冗余陣列(H-RAIN)上運行存檔群組應用。給定節(jié)點的硬件可以是異構的。然而,為了得到最大可靠性,每個節(jié)點優(yōu)選地運行分布式應用的實例300 (可以是相同實例,或基本上相同的實例),其包括多個運行時組件,如圖3中所示。這樣,在硬件可以是異構的同時,節(jié)點上的軟件棧(至少當它涉及本發(fā)明時)是相同的。這些軟件組件包括網關協(xié)議層302、訪問層304、文件處理和管理層306以及核心組件層308。為了說明的目的而提出“層”的名稱,如同普通技術人員將領會的,可以用其他有意義的方法來體現(xiàn)功能的特征??梢约苫虿患梢粋€或多個層(或其中的組件)。一些組件可以在層之間共享。網關協(xié)議層302中的網關協(xié)議提供現(xiàn)存應用的透明。具體來說,網關提供諸如NFS310和SMB/CIFS312的本地文件服務,以及網頁服務API來建立客戶應用。還提供了HTTP支持314。訪問層304提供對存檔的訪問。具體來說,根據本發(fā)明,固定內容文件系統(tǒng)(FCFS) 316模擬本地文件系統(tǒng)來提供對存檔對象的完全訪問。FCFS給予了應用對存檔內容的直接訪問,如同他們是普通文件一樣。優(yōu)選地,存檔的內容表現(xiàn)為其原始格式,同時將元數(shù)據公開為文件。FCFS316提供了傳統(tǒng)觀點的目錄和訪問權限和流程的文件級(file-level)調用,使得管理者能夠以他們所熟悉的方式來規(guī)定固定內容數(shù)據。文件訪問調用優(yōu)選地被用戶空間后臺程序中斷,并被路由給適當?shù)暮诵脑?在層308)中,其對調用應用動態(tài)地產生適當?shù)囊晥D。FCFS調用優(yōu)選地被存檔策略約束,以輔助自主的存檔管理。因此,在一個實施例中,管理者或應用不能刪除保存期限(給定策略)仍然有效的存檔對象。訪問層304優(yōu)選地還包括網頁用戶界面(UI)318和SNMP網關320。網頁用戶界面318優(yōu)選地實現(xiàn)為管理者控制臺,提供對文件處理和管理層306中的管理引擎322的交互訪問。管理控制臺318優(yōu)選地是密碼保護的,提供存檔的動態(tài)視圖的基于網頁的GUI,包括存檔對象和單獨節(jié)點。SNMP網關320向存儲管理應用提供了對管理引擎322的輕易訪問,這使得他們安全地監(jiān)視和控制群組動作。管理引擎監(jiān)視群組動作,包括系統(tǒng)和策略事件。文件處理和管理層306還包括請求管理器處理324。請求管理器324協(xié)調來自外部世界(經過訪問層304)的全部請求,以及來自核心組件層308中的策略管理器326的內部請求。除策略管理器326以外,核心組件還包括元數(shù)據管理器328和一個或多個存儲管理器330的實例。元數(shù)據管理器328優(yōu)選地被安裝在每個節(jié)點上。共同地,元數(shù)據管理器在群組中作為分布式數(shù)據庫,管理所有存檔對象。在給定的節(jié)點上,元數(shù)據管理器328管理存檔對象的子集,其中優(yōu)選地,每個對象在外部文件(“EF”,為了存儲而進入存檔的數(shù)據)和存檔數(shù)據物理所在的內部文件(每個都是“IF”)組之間映射。相同的元數(shù)據管理器328還管理從其他節(jié)點上復制的存檔對象組。這樣,每個外部文件的當前狀態(tài)對于數(shù)個節(jié)點上的多個元數(shù)據管理器一直都是可用的。如果發(fā)生節(jié)點故障,則其他節(jié)點上的元數(shù)據管理器繼續(xù)提供對先前由故障節(jié)點管理的數(shù)據的訪問。存儲管理器330提供了文件系統(tǒng)層,對于分布式應用中的所有其他組件都可用。優(yōu)選地,它將數(shù)據對象存儲在節(jié)點本地文件系統(tǒng)中。在給定節(jié)點中的每個驅動器優(yōu)選地具有其自己的存儲管理器。這使得節(jié)點可以移除單個驅動器并且優(yōu)化吞吐量。存儲管理器330還提供系統(tǒng)信息、數(shù)據的完整性檢查,以及能夠直接遍歷本地結構。如圖3中還顯示了,通過通信中間件層332和DNS管理器334,群組管理內部和外部通信。設施332是高效和可靠的基于消息的中間件層,其使能存檔組件間的通信。在所示實施例中,層支持多點傳送和點對點通信。DNS管理器334運行將所有節(jié)點連接至企業(yè)服務器的分布式命名服務。優(yōu)選地,DNS管理器(單獨或者與DNS服務相結合)在所有節(jié)點上加載平衡請求,以確保最大的群組吞吐量和可用性。在所示實施例中,ArC應用實例在基本操作系統(tǒng)336上運行,諸如RedHatLinux9.0、Fedora Core6等。通信中間件是任何傳統(tǒng)的分布式通信機制。其他組件可以包括FUSE (USErspace中的文件系統(tǒng)),其可以被用于固定內容文件系統(tǒng)(FCFS) 316。NFS網關310可以由標準nfsd Linux Kernel NFS驅動來實現(xiàn)。每個節(jié)點中的數(shù)據庫可以被實現(xiàn),例如PostgreSQL(本文中也被稱為Postgres),其是對象關系型數(shù)據庫管理系統(tǒng)(ORDBMS)。節(jié)點可以包括網頁服務器,諸如Jetty,其是Java HTTP服務器和小服務程序容器。當然,以上機制僅僅是說明性的。給定節(jié)點上的存儲管理器330負責管理物理存儲設備。優(yōu)選地,每個存儲管理器實例負責單個根目錄,在單個根目錄中所有文件根據其放置算法被放置??梢栽诠?jié)點上同時運行多個存儲管理器實例,并且每個通常代表系統(tǒng)中不同的物理磁盤。存儲管理器提取在其余系統(tǒng)中使用的驅動器和接口技術。當存儲管理器實例被請求以寫入文件時,它生成其負責的用以表達的完全路徑和文件名。在代表性的實施例中,存儲在存儲管理器上的每個對象被接收為原始數(shù)據而被存儲,存儲管理器隨后在存儲數(shù)據時將其自己的元數(shù)據添加到文件,以尋跡不同類型信息。外部文件(EF)存儲隨后由查詢引擎(Query Engine)進行查詢中將需要的信息。例如,元數(shù)據包括而不限于:EF長度(外部文件長度字節(jié))、IF段尺寸(該片內部文件的尺寸)、EF保護表達(EF保護模式)、IF保護作用(該內部文件的表達)、EF創(chuàng)建時間戳(外部文件時間戳)、簽名(寫入(PUT)時內部文件的簽名,其包括簽名類型)、以及EF文件名(外部文件文件名)。與內部文件數(shù)據一起存儲該附加元數(shù)據提供了額外程度的保護。具體來說,清除(scavenging)能夠通過內部文件存儲的元數(shù)據在數(shù)據庫中創(chuàng)建外部文件記錄。其他策略可以驗證內部文件哈希相對于內部文件以確認內部文件保持完好。內部文件可以是數(shù)據“組塊(chunk)”,代表在存檔對象中的原始“文件”的一部分,并且他們可以被放置在不同節(jié)點上以存檔條帶(stripe)并保護塊(block)。然而,并不必須將外部文件分離為更小的組塊單元;在替選實施例中,內部文件可以是外部文件的完整副本。典型地,在元數(shù)據管理器中,對于每個存檔對象提供一個外部文件條目,同時對于每個外部文件條目可以存在許多內部文件條目。典型地,內部文件布局取決于系統(tǒng)。在給定實現(xiàn)中,磁盤上的該數(shù)據的真實物理格式被存儲為一系列可變長度記錄。請求管理器324負責運行通過與系統(tǒng)中的其他組件交互而執(zhí)行存檔動作所需的操作組。請求管理器支持不同類型的許多同時動作,能夠重新執(zhí)行任何失敗的處理,并支持可能花費長時間來運行的處理。請求管理器還確保在存檔中的讀/寫操作被適當操作并且確保所有請求在所有時間上處于已知狀態(tài)。其還提供處理控制,用以配合節(jié)點上的多個讀/寫操作以滿足給定的客戶請求。此外,請求管理器為最近使用過的文件高速緩存元數(shù)據管理器條目,并為會話和數(shù)據塊提供緩沖。群組的主要職責是在磁盤上可靠地存儲無限數(shù)量的文件??梢詫⒔o定節(jié)點想作是“不可靠的”,感覺像它是因為任何原因而不可到達或者其他方式不可用的。收集這種潛在的不可用節(jié)點有助于創(chuàng)建可靠的和高度可用的存儲。通常,存在兩種類型的信息需要被存儲:文件本身和關于文件的元數(shù)據。固定內容分布式數(shù)據存儲額外的細節(jié)可以在美國專利公開2007/0189153和2006/0026219中找到,以引用的方式將他們合并入本文中。I1.元數(shù)據管理元數(shù)據管理系統(tǒng)負責組織給定元數(shù)據(諸如系統(tǒng)元數(shù)據)和提供對它的訪問。該系統(tǒng)元數(shù)據包括位于存檔中的文件的信息以及配置信息、在管理Π上顯示的信息、公制(metrics)、不可修復的策略違規(guī)信息等。盡管不詳細說明,但是其他類型的元數(shù)據(例如,與存檔文件相關的用戶元數(shù)據)也可以使用現(xiàn)在描述的元數(shù)據管理系統(tǒng)管理。在群組的代表性實施例中,元數(shù)據管理系統(tǒng)為元數(shù)據對象組提供持續(xù)性,這可以包括一個或多個以下對象類型(僅僅是說明性的):ExternalFile (外部文件):存檔用戶所意識到的文件;InternalFile (內部文件):存儲管理器存儲的文件;典型地,在外部文件和內部文件之間可以是一對多關系。ConfigObject (配置對象):用于配制群組的名稱/值對;AdminLogEntry (管理日志條目):將在管理者UI上顯示的消息;MetricsObject (公制對象):時間戳密鑰/值對,代表在時間點上一些存檔的量度(例如,文件數(shù)量);以及PolicyState (策略狀態(tài)):一些策略的違規(guī)。每個元數(shù)據對象可以具有唯一名稱,優(yōu)選地從不改變。元數(shù)據對象被組織為區(qū)域(region)。區(qū)域包括授權區(qū)域副本和“錯誤容點”(TPOF)數(shù)量(零或多的組)的備份區(qū)域副本。具有零個副本,元數(shù)據管理系統(tǒng)是可變比的,但是可能不是高度可用的。通過哈希一個或多個對象屬性(例如,對象名稱,諸如完全合格的路徑名,或其部分)和提取給定數(shù)量比特的哈希值來選擇區(qū)域。這些比特包括區(qū)域數(shù)量。選擇的比特可以是低位比特、高位比特、中間位比特,或單個比特的任何組合。在代表性實施例中,給定的比特是哈希值的低位比特。對象的一個或多個屬性可以使用任何傳統(tǒng)的哈希函數(shù)而被哈希。這些包括而不限于,基于Java的哈希函數(shù),諸如java.lang.string.hashCode等。優(yōu)選地,包括區(qū)域數(shù)量比特數(shù)由配置參數(shù)控制,本文中指代為regionMapLevel (區(qū)域映射層)。例如,如果該配置參數(shù)被設定為6,則這樣的結果是26=64個區(qū)域。當然,區(qū)域數(shù)量大是允許的,并且可以使用命名空間分區(qū)方案自動地調整區(qū)域數(shù)量。每個區(qū)域可以被冗余存儲。如以上所說明的,存在區(qū)域的一個授權副本,和零個或多個備份副本。備份副本的數(shù)量由元數(shù)據TPOF配置參數(shù)控制,如同已經描述過的。優(yōu)選地,區(qū)域副本被分布在群組的所有節(jié)點上,以便平衡每個節(jié)點授權區(qū)域副本的數(shù)量,并平衡每個節(jié)點全部區(qū)域副本的數(shù)量。元數(shù)據管理系統(tǒng)將元數(shù)據對象存儲在每個節(jié)點上運行的數(shù)據庫中。該數(shù)據庫被用來支持區(qū)域映射。示例性數(shù)據庫使用PostgreSQL實現(xiàn),其可以作為開源使用。優(yōu)選地,對于每個區(qū)域副本存在概要(schema),并且在每個概要中,存在對于每種類型的元數(shù)據對象的表格。概要僅僅是命名空間,可以擁有表格、索引、過程和其他數(shù)據庫對象。每個區(qū)域優(yōu)選地具有其自己的概要。每個概要具有完整的表格組,每個元數(shù)據對象一個表格。這些表格中的一個表格的行對應于單個元數(shù)據對象。同時,Postgres是優(yōu)選的數(shù)據庫,任何傳統(tǒng)的關系型數(shù)據庫(例如,Oracle, IBM DB/2等)都可以被使用。如圖4中所示的,每個節(jié)點400具有一組過程或組件:一個或多個區(qū)域管理器(RGM) 402a-n、元數(shù)據管理器(MM) 404、至少一個元數(shù)據管理客戶(MMC) 406、以及具有一個或多個概要410a-n的數(shù)據庫408。RGM、麗和MMC組件與虛擬機412 (諸如Java虛擬機)一起運行。對于每個區(qū)域副本存在一個RGM。這樣,對授權的區(qū)域副本具有RGM、對每個備份區(qū)域副本具有RGM、并且對于每個不完全的區(qū)域副本具有RGM。對于每個RGM 402還具有由其管理該概要的數(shù)據庫概要410。數(shù)據庫還存儲區(qū)域映射405。每個節(jié)點優(yōu)選地具有區(qū)域映射的相同全局查看,以及由同步方案實施的要求。區(qū)域管理器RGM402負責在區(qū)域副本上操作(作為可能的情況,可能是授權的、備份的或不完全的),并且用以運行由元數(shù)據管理器客戶406和其他區(qū)域管理器402提交的請求。通過任何傳統(tǒng)的手段將請求提供給RGM,這種方法是諸如圖3中所示的通信中間件或其他消息層。區(qū)域管理器提供這些請求運行的環(huán)境,例如通過提供對數(shù)據庫的連接,該環(huán)境被配置為在由該RGM管理的概要上操作。每個區(qū)域管理器將它的數(shù)據存儲在數(shù)據庫408中。元數(shù)據管理器404是頂級組件,負責節(jié)點上的元數(shù)據管理。其負責生成和銷毀區(qū)域管理器(RGM)并組織RGM所需的資源,例如群組配置信息和數(shù)據庫連接池。優(yōu)選地,(給定節(jié)點中的)給定元數(shù)據管理器用做領導者并且負責決定哪些元數(shù)據管理器(在節(jié)點集或子集上)負責哪些區(qū)域副本。領導者選擇算法,諸如欺負(bully)算法或其變形,可以被用來選擇元數(shù)據管理器領導者。優(yōu)選地,盡管可能每個節(jié)點運行多個MM,但是每個節(jié)點具有單個元數(shù)據管理器。一旦區(qū)域擁有關系被命名空間分區(qū)方案建立(如以下將描述的),每個元數(shù)據管理器負責相應地調整其一個或多個區(qū)域管理器集。系統(tǒng)組件(例如,管理引擎、策略管理器等)與元數(shù)據管理器MM通過元數(shù)據管理器客戶交互。MMC負責(使用區(qū)域映射)定位RGM來執(zhí)行給定請求,以此將請求發(fā)布給所選RGM,并且以此如果所選的RGM不可用(例如,因為節(jié)點已經故障)則重新嘗試請求。在后種情況中,當在節(jié)點上接收了新的區(qū)域映射時,重新嘗試請求將會成功。如以上所提到的,區(qū)域映射用于識別負責每個區(qū)域的每個副本的節(jié)點。虛擬機412(和其中的每個RGM、麗和MMC組件)具有對區(qū)域映射405的訪問通路;區(qū)域映射的副本420在已經被復制到JVM之后,也顯示在圖4中。區(qū)域映射因此對于給定節(jié)點中的JVM和數(shù)據庫都可用。在這種示例的實施例中,每個元數(shù)據對象具有屬性(例如名稱),其被哈希為0x0和0x3fffffff之間所包括的整數(shù)字段,也就是30比特值。這些值能夠充分地表示帶符號的32比特整數(shù),而不會出現(xiàn)溢出問題(例如,當向范圍的高端添加I時)。30比特允許高達近10億個區(qū)域,甚至對于大型群組都是充足的。區(qū)域表示哈希值集,并且所有區(qū)域的集覆蓋所有可能的哈希值。對于每個區(qū)域,具有不同比特的位置,并且不同比特的位置優(yōu)選地是固定順序。這樣,每個區(qū)域以數(shù)字來識別,其優(yōu)選地通過提取哈希值的RegionLevelMap(區(qū)域層映射)比特而得到。其中,配置參數(shù)被設置為6,這允許64個區(qū)域,所得出的哈希值是數(shù)字0x0至0x3f。如以上說明的,區(qū)域副本是三(3)種狀態(tài)之一:“授權的” ““” “備份的”和“不完全的”。如果區(qū)域副本是授權的,那么對區(qū)域的所有請求都去向該副本,并且對每個區(qū)域具有一個授權的副本。如果區(qū)域副本是備份的,那么副本(從授權的區(qū)域管理器過程)接收備份請求。如果加載了元數(shù)據,但是副本還沒有同步(典型地,關于其他備份副本),那么區(qū)域副本是不完全的。直到同步完成,在副本變?yōu)閭浞莞北镜臅r刻,不完全的區(qū)域副本還不適合升級到其他狀態(tài)。每個區(qū)域具有一個授權的副本和給定數(shù)量(如同由元數(shù)據TPOF配置參數(shù)設定的)的備份的或不完全的副本。通過在授權區(qū)域副本和其TPOF備份副本之間實施給定的協(xié)議(或“合同”),備份區(qū)域副本與授權區(qū)域副本被保持同步?,F(xiàn)在介紹該協(xié)議。通過簡要背景,當MMC上接收到更新請求時,MMC在本地區(qū)域映射上瀏覽以查找授權區(qū)域副本的位置。MMC將更新請求發(fā)送到與授權區(qū)域副本相關聯(lián)的RGM,該RGM隨后對該更新請求承認(commit)。更新還被發(fā)送(通過與授權的區(qū)域副本相關聯(lián)的RGM)給每個TPOF備份副本的RGM。然而,授權的RGM為了指示成功,不需要等待與備份區(qū)域副本相關聯(lián)的每個RGM來承認更新;相反的,當與備份區(qū)域副本相關聯(lián)的RGM接收到更新時,其立即返回或試圖返回(給授權的RGM)確認。當接收到備份請求時并且在它被運行之前發(fā)布該確認。在沒有故障發(fā)生的情況下,一旦授權的RGM接收到所有確認,其告知隨后將成功結果返回給呼叫者的MMC。然而,如果發(fā)生了給定故障事件,則協(xié)議保證受沖擊的RGM(無論備份的還是授權的)從服務中移除其自身(和潛在受影響的節(jié)點),并且MM領導者發(fā)布新的區(qū)域映射。盡管任何方便的技術都可以被使用,但是優(yōu)選地,RGM通過卸掉JVM將其自身從服務中移除。新映射指定對丟失的區(qū)域副本的替代。以這種方式,每個備份區(qū)域副本都是對授權區(qū)域副本的“熱備份”并且如果并且需要時(因為授權的RGM故障或者負載平衡的目的等),適合將每個備份區(qū)域副本升級為授權的。還存在更新過程可能失敗的許多方式。例如,因此授權的區(qū)域管理器(在等待確認的同時)可以遇到這樣的例外:這種例外指示備份管理器過程已經不運行,或即使備份管理器已經發(fā)布了確認,但備份管理器過程仍可能不能本地處理更新請求;或備份區(qū)域管理器過程在發(fā)布確認的同時可能遇到指示授權的區(qū)域管理器過程已經不運行的例外,等等。如以上說明的,如果給定備份RGM不能處理更新,則將其自身從服務中移除。此外,當備份RGM或授權的RGM不運行時,發(fā)布新的區(qū)域映射。元數(shù)據管理系統(tǒng)將區(qū)域的副本保持同步。對授權的區(qū)域副本中的對象完成的更新被復制到備份區(qū)域副本上。一旦更新被授權的RGM承認,那么對于所有備份區(qū)域副本應用相同的更新。元數(shù)據管理系統(tǒng)確保在故障節(jié)點上的任何這種故障(無論節(jié)點層級、區(qū)域管理器層級等)都導致區(qū)域副本的重新分配;從而,保證了剩余區(qū)域副本的完整性。如果包含授權的RGM的節(jié)點故障,那么備份RGM或者處于同步(當前運行更新或者當前沒有運行更新),或者他們僅僅通過被中斷的更新而不同步。在后種情況下,重新同步是容易的。因為備份區(qū)域被保持為與授權區(qū)域同步,因此升級(從備份至授權)是瞬間的。節(jié)點故障還很有可能丟失備份區(qū)域。通過在某個其他節(jié)點上創(chuàng)建新的、不完全的區(qū)域來恢復備份區(qū)域。一旦創(chuàng)建不完全的區(qū)域,它就開始記錄更新并開始從授權區(qū)域復制數(shù)據。當復制完成時,應用積累的更新,產生最新的備份。新備份區(qū)域隨后通知MM領導者,它已經是最新的,這將導致MM領導者發(fā)出包括該區(qū)域升級(從不完全的到備份的)的映射。應當注意的是,不需要區(qū)域的數(shù)量對應于節(jié)點的數(shù)量。更通常來說,區(qū)域的數(shù)量與獨立節(jié)點陣列中節(jié)點的數(shù)量是無關的。元數(shù)據管理的額外細節(jié)可以在美國專利公開2006/0026219 中找到。II1.由節(jié)點聚集查詢結果本發(fā)明的示例性實施例允許REST (表象化狀態(tài)轉換)客戶對符合給定標準的對象和元數(shù)據列表查詢平臺內容,而不需要整合應用來遍歷目錄、子目錄、次子目錄等等為給定標準檢索對象和系統(tǒng)元數(shù)據的列表。本發(fā)明的特征包括客戶應用能夠通過改變時間進行查詢、通過目錄查詢、通過處理(生成、刪除、清除)查詢、通過命名空間查詢、以及在結果中標記頁面等。單個內容平臺節(jié)點將查詢分布到內容平臺系統(tǒng)中的所有節(jié)點上的所有區(qū)域并且在將列表返回給客戶應用之前使得相同節(jié)點分類結果。根據特定實施例,在元數(shù)據管理器中實現(xiàn)數(shù)據庫查詢?!案淖儠r間”是用戶最后修改對象(具體來說,其元數(shù)據,因為內容平臺系統(tǒng)中的內容是只讀的)的時間。例如,自從1970年I月I日開始以毫秒數(shù)測量時間?!巴ㄟ^目錄查詢”的作用是檢索在邏輯上駐存于相同文件系統(tǒng)目錄的內容平臺系統(tǒng)中的所有對象。內容平臺系統(tǒng)通過對其數(shù)據庫運行SQL查詢來實現(xiàn)這點?!巴ㄟ^處理查詢”的作用是檢索由特定類型操作最近訪問的內容平臺系統(tǒng)中的所有對象。例如,其可以返回最近的動作是創(chuàng)建的所有對象,或者最近被刪除的所有對象?!巴ㄟ^命名空間查詢”的作用是檢索在特定內容平臺系統(tǒng)命名空間中的所有對象,并且僅僅檢索這些對象?!霸诮Y果中標記頁面”的作用是重復查詢集的結果集,而不是單個對象。例如,可能1000個對象滿足查詢。在傳統(tǒng)的重復中,客戶應當每次一個地檢索并檢驗這些對象,這需要1000次重復。在標記頁面方案中,他們可以以50、100或一些其他數(shù)量成批返回給客戶,這減少了遍歷結果所必需的重復數(shù)量。II1.A.查詢定義圖5是內容平臺500的簡化方框圖,示出了通過單個節(jié)點510將來自客戶應用502的查詢分發(fā)到所有其他節(jié)點512、514、516。查詢結果隨后在他們被返回給HTTP客戶應用502之前被篩選和分類。內容平臺500包括聯(lián)網在一起的獨立節(jié)點的冗余陣列。在每個節(jié)點中處理查詢,以通過查找符合查詢條件的對象來提供查詢結果。篩選查詢結果意味著在結果集中,僅僅包括符合REST客戶給定的一個或多個條件的結果。由操作類型(即,“生成”、“刪除”、“元數(shù)據改變”等)篩選對象。例如,如果客戶只希望看到transaction=createrecords (處理=生成記錄),那么訪問所有記錄,并且僅僅包括符合transaction=create(處理=生成)的記錄。在步驟1,中,應用502向查詢分布節(jié)點510的第一節(jié)點或領導節(jié)點發(fā)送查詢。在步驟2中,在從應用502接收到請求的基礎上,第一節(jié)點510將查詢發(fā)布給內容平臺500中的每個其他節(jié)點512、514、516。在步驟3中,內容平臺500中的每個節(jié)點可查詢節(jié)點內的所有授權區(qū)域并提供結果集。在步驟4中,第一節(jié)點510持續(xù)檢索、聚集、以及篩選并分類來自所有節(jié)點的結果。在步驟5中,第一節(jié)點510將結果集返回給應用502。在步驟6中,應用502可以向第一節(jié)點510發(fā)布下一組結果的請求,并且重復以上步驟2-5。每個區(qū)域優(yōu)選地映射至優(yōu)化的數(shù)據庫,以優(yōu)化通過使用數(shù)據庫索引來處理關于對象改變時間的查詢。圖6流程圖的示例示出了來自客戶應用502的查詢通過第一節(jié)點510分發(fā)到所有其他節(jié)點,并且聚集查詢結果并將其返回給客戶應用502的過程。在該示例中,查詢在提供的UUID (通用唯一標示符)、目錄路徑、和change_time (改變時間)中選擇100個對象。由查詢產生的順序是(uuid, change_time, fn_hash)。在步驟602中,客戶應用502以特定條件對對象列表做出請求。在步驟604中,接收請求的第一節(jié)點510向所有其他節(jié)點發(fā)布查詢。在步驟606中,每個節(jié)點在其中的區(qū)域上開始查詢。在步驟608中,每個節(jié)點為節(jié)點上的每個區(qū)域接收首個100個結果。在步驟610中,第一節(jié)點510從所有節(jié)點接收原始結果集。在步驟612中,第一節(jié)點聚集并篩選并分類結果(這是持續(xù)進行的,直到客戶應用502停止請求下一結果集)。在步驟614中,第一節(jié)點510將結果返回給客戶應用502。在步驟616中,客戶應用接收結果,直到完成(這是直到客戶應用502停止請求下一結果集才完成的)。在步驟618中,客戶應用502將下一結果集的請求發(fā)送給第一節(jié)點502。在步驟620中,第一節(jié)點502請求來自所有節(jié)點的聚集并篩選并分類的額外結果,直到完成(這是直到客戶應用502停止請求下一結果集才完成的)。管理查詢結果的過程(B卩,發(fā)布和處理查詢,并且聚集和篩選查詢結果)可以實現(xiàn)為查詢結果管理模塊。在特定實施例中,在內容平臺的每個節(jié)點的元數(shù)據管理器中提供查詢結果管理模塊。II1.B.CPExternalFiIeQueryRequest (CP 外部文件查詢請求)CPExternalFileQueryRequest (CP外部文件查詢請求)是來自元數(shù)據管理器客戶對特定授權的區(qū)域號碼的請求。該請求從符合QueryParameters (查詢參數(shù))的external_file (外部文件)表格中返回I批。CPExternalFileQueryRequest將調用如以上篇幅中描述的相同的查詢。如以上所述,查詢被排序為(uuid, change_time, fn_hash)。在返回批次之前,列表進一步被分類(在存儲器中)以產生該確切的順序:(uuid, change_time, fn_hash, directory, file_name, version_id)0 該特征可以實現(xiàn)為軟件模塊以提供第一節(jié)點510和其他節(jié)點之間的通信,用以請求下一組/批結果。“uuid”是對象的通用唯一標示符。在這種情況下,其識別對象所在的命名空間?!癱hange_time”反映了記錄最后被修改的日期和時間。“fn_hash”代表對命名空間中的對象名稱應用哈希函數(shù)的結果,并且被用于識別對象的縮寫。參見美國專利公開2006/0026219。iiVersion_id”是命名空間中對象的特定版本的唯一標示符。II1.C.RemoteQueryBatchIterator (遠程查詢批次迭代器)RemoteQueryBatchIterator (遠程查詢批次迭代器)是發(fā)送CPExternalFileQueryRequest消息以檢索批次的批次迭代器的簡單擴展。這與通常查詢本地區(qū)域的批次迭代器的典型實現(xiàn)稍有不同。查詢引擎被約束為特定區(qū)域號碼和關于生成的映射尺寸。該特征可以實現(xiàn)為軟件模塊,以便當?shù)谝还?jié)點510從客戶應用502接收到以特定條件對對象列表的查詢請求時,從第一節(jié)點510向其他節(jié)點發(fā)布查詢。II1.D.ExternalFileQuery (外部文件查詢)ExternalFileQuery (外部文件查詢)類是 MetadataManagerClient.0peration 實現(xiàn),其合并系統(tǒng)中所有查詢引擎。因為從RemoteQueryBatchIterator返回的每個查詢引擎都被嚴格排序,PriorityQueueIterator (優(yōu)先隊列迭代器)能夠將這些查詢引擎高效的合并。返回的查詢將是MetadataIterator〈ExternalFile>類型。該特征可以實現(xiàn)為軟件模塊,以聚集和篩選由第一節(jié)點502從所有節(jié)點收集的結果。用以合并所有區(qū)域的算法相當直接:(I)迭代給定節(jié)點中的所有區(qū)域,(2)生成RemoteQueryBatchlterator (Region, QueryParameters), (3)生成 PriorityQueryIterator(Co 11 ection<RemoteQueryBatchIterator> iterators, QueryKeyExtractor ),以及(4)返回PriorityQueryIterator0根據本發(fā)明的特定實施例,以上所述的用以聚集查詢結果的技術是元數(shù)據查詢引擎的一部分,有助于為內容平臺與搜索引擎、備份服務器、策略服務器、策略引擎、使用RBS的應用、使用XAM的應用等的集成提供支持。當然,如圖1和圖5中所示的系統(tǒng)配置是可以實現(xiàn)本發(fā)明的存儲存檔的純粹示例,并且本發(fā)明不限于特定硬件配置。實現(xiàn)本發(fā)明的計算機和存儲系統(tǒng)還可以具有已知的I/o設備(例如,CD和DVD驅動器、軟盤驅動器、硬驅動器等),其可以存儲并讀取用以實現(xiàn)以上描述的本發(fā)明的模塊、程序和數(shù)據結構。這些模塊、程序和數(shù)據結構可以被編碼在這種計算機可讀介質上。例如,本發(fā)明的數(shù)據結構能夠被存儲在獨立于用在本發(fā)明中的程序所在的一個或多個計算機可讀介質的計算機可讀介質上。系統(tǒng)的組件可以通過數(shù)字數(shù)據通信的任何形式或介質互相連接,例如,通信網絡。通信網絡的示例包括局域網、廣域網,例如互聯(lián)網、無線網、存儲區(qū)域網等。在說明中,為了解釋的目的呈現(xiàn)了數(shù)個細節(jié),以便于提供對本發(fā)明的透徹理解。然而,對本領域技術人員將清楚的是,為了實現(xiàn)本發(fā)明,并不需要所有這些特定細節(jié)。還會注意到,本發(fā)明可以描述為通常以流程圖、流向圖、結構圖或框圖描述的過程。盡管流程圖可以將操作描述為有序的過程,但是許多操作可以并行或同時執(zhí)行。此外,可以重新安排操作的順序。如本領域所公知的,以上描述的操作可以由硬件、軟件或軟件和硬件的某些組合執(zhí)行。本發(fā)明實施例的不同方面可以使用電路和邏輯設備(硬件)來完成,同時其他方面可以使用存儲在機器可讀介質(軟件)上的指令來完成,如果使用處理器運行會導致處理器執(zhí)行實現(xiàn)本發(fā)明實施例的方法。此外,本發(fā)明的一些實施例可以在硬件中單獨執(zhí)行,而其他實施例可以以軟件單獨執(zhí)行。此外,所描述的不同功能可以在單個單元中執(zhí)行,或者可以以任何方法散布在多個組件上。當通過軟件執(zhí)行時,基于存儲在計算機可讀介質上的指令,方法可以由諸如通用計算機的處理器運行。如果需要,指令可以存儲在壓縮和/或加密格式的介質上。從前述,將清楚的是,本發(fā)明提供了用以在容錯數(shù)據庫管理系統(tǒng)中聚集查詢結果的方法、裝置和存儲在計算機可讀介質上的程序。此外,在本文中已經描述和說明特定實施例的同時,本領域普通技術人員將會領會,通過計算以實現(xiàn)相同目的的任何布置都可以取代公開的特定實施例。該公開意欲覆蓋本發(fā)明的任何和所有改變或變形,并且其還被理解為在所附權利要求中使用的術語不應當被解釋為將本發(fā)明限制為說明書中公開的特定實施例。相反的,本發(fā)明的范圍將完全由所附權利要求確定,其將根據要求闡釋所建立的規(guī)則而被解釋,以及這種要求所授權的等同物的全部范圍。
權利要求
1.一種用于管理查詢結果的方法,用在聯(lián)網在一起的獨立節(jié)點的冗余陣列中,其中每個節(jié)點運行提供基于對象存儲的應用的實例,其中元數(shù)據對象被存儲在分布在陣列上節(jié)點當中的區(qū)域的集合中,其中通過哈希元數(shù)據對象屬性并提取得出的哈希值的比特的給定集合來識別給定區(qū)域,所述方法包括: 由多個獨立節(jié)點的第一節(jié)點從客戶應用接收通過條件對于對象列表的請求; 由所述第一節(jié)點基于所接收到的請求將查詢發(fā)布給所有節(jié)點; 由每個節(jié)點在節(jié)點中的所述區(qū)域上使用存儲在區(qū)域中的元數(shù)據對象來處理所述查詢; 由所述第一節(jié)點聚集并篩選來自所有節(jié)點的查詢結果;以及 由所述第一節(jié)點將聚集的和篩選的結果返回給所述客戶應用。
2.根據權利要求1所述的方法, 其中,由每個節(jié)點處理查詢包括向所述第一節(jié)點以集合提供所述查詢結果;并且 其中,來自所有節(jié)點的查詢結果以集合被聚集、被篩選并被返回給所述客戶應用。
3.根據權利要求2所述的方法,還包括: 在由所述第一節(jié)點將聚集和篩選的結果的當前集合返回給所述客戶應用之后,在請求和檢索來自所有節(jié)點的下一結果集合之前,等候來自所述客戶應用的對于所述下一結果集合的請求。
4.根據權利要求2所述的方法, 其中,將所述查詢結果以集合提供給`所述第一節(jié)點包括提供來自每個區(qū)域的預定數(shù)量的對象作為處理查詢的結果。
5.根據權利要求1所述的方法,還包括: 由所述第一節(jié)點分類所聚集和篩選的結果以產生預定的順序。
6.根據權利要求1所述的方法, 其中,所述請求包括通過改變時間查詢、通過目錄查詢、通過處理查詢、通過命名空間查詢、以及在結果中標記頁面中的一個或多個。
7.一種用于管理查詢結果的裝置,用在聯(lián)網在一起的獨立節(jié)點的冗余陣列中,其中每個節(jié)點運行提供基于對象存儲的應用的實例,其中元數(shù)據對象被存儲在分布在陣列上節(jié)點當中的區(qū)域的集合中,其中通過哈希元數(shù)據對象屬性并提取得出的哈希值的比特的給定集合來識別給定區(qū)域,所述裝置包括為每個節(jié)點提供的處理器、存儲器以及查詢結果管理模塊,所述查詢結果管理模塊被配置為: 如果具有所述查詢結果管理模塊的節(jié)點是從客戶應用接收通過條件對于對象列表的請求的第一節(jié)點,則基于所接收到的請求將查詢發(fā)布給所有節(jié)點; 在節(jié)點的區(qū)域上使用存儲在區(qū)域中的元數(shù)據對象處理所述查詢;以及如果具有所述查詢結果管理模塊的節(jié)點是所述第一節(jié)點,則聚集并篩選來自所有節(jié)點的查詢結果,將聚集和篩選的結果返回給所述客戶應用。
8.根據權利要求7所述的裝置, 其中,處理查詢包括向所述第一節(jié)點以集合提供所述查詢結果;并且 其中,來自所有節(jié)點的查詢結果以集合被聚集和篩選以被返回給所述客戶應用。
9.根據權利要求8所述的裝置,其中,如果具有所述查詢結果管理模塊的節(jié)點是所述第一節(jié)點,則將所述查詢結果管理模塊配置成:在由所述第一節(jié)點將聚集和篩選的結果的當前集合返回給所述客戶應用之后,在請求和檢索來自所有節(jié)點的下一結果集合之前,等候來自所述客戶應用的對于所述下一結果集合的請求。
10.根據權利要求8所述的裝置, 其中,將所述查詢結果以集合提供給所述第一節(jié)點包括提供來自每個區(qū)域的預定數(shù)量的對象作為處理查詢的結果。
11.根據權利要求7所述的裝置, 其中,如果具有所述查詢結果管理模塊的節(jié)點是所述第一節(jié)點,則所述查詢結果管理模塊被配置成:分類所聚集和篩選的結果以產生預定的順序。
12.—種節(jié)點,其處在根據權利要求7所述的獨立節(jié)點的冗余陣列中,所述節(jié)點包括用于管理所述節(jié)點中的元數(shù)據對象的元數(shù)據管理器,所述元數(shù)據管理器包括組織并提供對所述元數(shù)據對象的訪問,其中所述元數(shù)據管理器包括所述節(jié)點的查詢結果管理模塊。
13.—種計算機可讀存儲介質,其存儲多個指令用以在聯(lián)網在一起的獨立節(jié)點的冗余陣列中控制數(shù)據處理器以管理查詢結果,其中每個節(jié)點運行提供基于對象存儲的應用的實例,其中元數(shù)據對象被存儲在分布在陣列上節(jié)點當中的區(qū)域的集合中,其中通過哈希元數(shù)據對象屬性并提取得出的哈希值的比特的給定集合來識別給定區(qū)域,其中所述計算機可讀存儲介質被提供在每個節(jié)點中,所述多個指令包括: 如果具有所述查詢結果管理模塊的節(jié)點是從客戶應用接收通過條件對于對象列表的請求的第一節(jié)點,則使得所述數(shù)據處理器基于所接收到的請求將查詢發(fā)布給所有節(jié)點的指令; 使得所述數(shù)據處理器在節(jié)點的區(qū)域上使用存儲在區(qū)域中的元數(shù)據對象處理所述查詢的指令;以及 如果具有所述查詢結果管理模塊的節(jié)點是所述第一節(jié)點,則使得所述數(shù)據處理器聚集并篩選來自所有節(jié)點的查詢結果,將聚集和篩選的結果返回給所述客戶應用的指令。
14.根據權利要求13所述的計算機可讀存儲介質, 其中,處理查詢包括向所述第一節(jié)點以集合提供所述查詢結果;并且 其中,來自所有節(jié)點的查詢結果以集合被聚集、被篩選并被返回給所述客戶應用。
15.根據權利要求14所述的計算機可讀存儲介質,其中,所述多個指令還包括: 如果具有所述計算機可讀存儲介質的節(jié)點是所述第一節(jié)點,則在由所述第一節(jié)點將聚集和篩選的結果的當前集合返回給所述客戶應用之后,使得所述數(shù)據處理器在請求和檢索來自所有節(jié)點的下一結果集合之前等候來自所述客戶應用的對于所述下一結果集合的請求的指令。
16.根據權利要求14所述的計算機可讀存儲介質, 其中,將所述查詢結果以集合提供給所述第一節(jié)點包括提供來自每個區(qū)域的預定數(shù)量的對象作為處理查詢的結果。
17.根據權利要求13所述的計算機可讀存儲介質, 其中所述多個指令還包括: 如果具有所述計算機可讀存儲介質的節(jié)點是所述第一節(jié)點,使得所述數(shù)據處理器通過所述第一節(jié)點分類所聚集和篩選的結果以產生預定的順序的指令。
18.根據權利要求13所述的計算機可讀存儲介質, 其中,所述請求包括通過改變時間查詢、通過目錄查詢、通過處理查詢、通過命名空間查詢、以及在結果中標記 頁面中的一個或多個。
全文摘要
獨立節(jié)點的冗余陣列聯(lián)網在一起。每個節(jié)點運行提供基于對象存儲的應用的實例。元數(shù)據對象被存儲在分布在陣列上節(jié)點中的區(qū)域的集合中。通過哈希元數(shù)據對象屬性并提取得出的哈希值的比特的給定集合來識別給定區(qū)域。一種管理查詢結果的方法包括由第一節(jié)點從客戶應用接收通過條件對于對象列表的請求;由第一節(jié)點基于所接收到的請求將查詢發(fā)布給所有節(jié)點;由每個節(jié)點在節(jié)點中的區(qū)域上使用存儲在區(qū)域中的元數(shù)據對象來處理查詢;由第一節(jié)點聚集并篩選來自所有節(jié)點的查詢結果;以及由第一節(jié)點將聚集的和篩選的結果返回給客戶應用。
文檔編號G06F15/16GK103109292SQ201180044786
公開日2013年5月15日 申請日期2011年9月13日 優(yōu)先權日2010年9月24日
發(fā)明者杰弗里·M·克倫普, 瑪吉·E·蒂拉多 申請人:日立數(shù)據系統(tǒng)有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1