新四季網

在容錯資料庫管理系統中聚集查詢結果的系統和方法

2023-07-24 21:27:56 2

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

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


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

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀