中,恢復(fù)操作可響應(yīng)于檢測(cè)到磁盤、節(jié)點(diǎn)或集群的故障、響應(yīng)于針對(duì)不可用數(shù)據(jù)的查詢(或所述數(shù)據(jù)的一致且未損壞副本不可用于集群中)或響應(yīng)于來自客戶(例如,用戶、客戶端應(yīng)用或存儲(chǔ)服務(wù)用戶)這么做的明確請(qǐng)求而觸發(fā)。一旦恢復(fù)操作被觸發(fā)(示為從1450肯定退出),方法可包括將每個(gè)受影響的數(shù)據(jù)塊的當(dāng)前訪問周期計(jì)數(shù)器值和先前訪問周期計(jì)數(shù)器值組合以確定恢復(fù)受影響的數(shù)據(jù)塊的順序,如1460示出。例如,在不同的實(shí)施方案中,這兩個(gè)計(jì)數(shù)器值(對(duì)于每個(gè)數(shù)據(jù)塊)的總和可用以確定應(yīng)恢復(fù)數(shù)據(jù)塊的順序(例如,使得在訪問計(jì)數(shù)已被捕獲的最近兩個(gè)周期中已被訪問多次的數(shù)據(jù)塊將比訪問次數(shù)較少的數(shù)據(jù)塊更快恢復(fù))。
[0074]在一些實(shí)施方案中,本文所述的數(shù)據(jù)倉庫系統(tǒng)可實(shí)施允許客戶靈活地管理工作量的優(yōu)先次序且特定說來允許分類工作量的工作量管理機(jī)制,使得迅速、快速運(yùn)行的查詢可能不會(huì)被卡在長(zhǎng)時(shí)間運(yùn)行的查詢后面的隊(duì)列中(例如,短查詢偏置)。在一些實(shí)施方案中,數(shù)據(jù)倉庫系統(tǒng)可實(shí)施提供查詢分類的另外的標(biāo)準(zhǔn)的可定制的查詢服務(wù)類別,且高級(jí)別工作量管理器部件管理查詢、將所述查詢分配給服務(wù)類別。在此類實(shí)施方案中,對(duì)于每個(gè)服務(wù)類另IJ,數(shù)據(jù)倉庫系統(tǒng)可提供保持等待執(zhí)行的查詢的優(yōu)先級(jí)列表的查詢隊(duì)列。此外,數(shù)據(jù)倉庫系統(tǒng)可提供任務(wù)池,所述任務(wù)池限定池內(nèi)可同時(shí)運(yùn)行的查詢數(shù)量(只要計(jì)算節(jié)點(diǎn)過程可用于運(yùn)行所述查詢)。
[0075]在一些實(shí)施方案中,本文所述的數(shù)據(jù)倉庫系統(tǒng)可使用大規(guī)模并行處理(MPP)基礎(chǔ)設(shè)施,以提供對(duì)在數(shù)據(jù)庫中大量數(shù)據(jù)上操作的最復(fù)雜的查詢的快速執(zhí)行。使用現(xiàn)成的標(biāo)準(zhǔn)服務(wù)器部件,數(shù)據(jù)倉庫系統(tǒng)可簡(jiǎn)單地通過增加更多的“計(jì)算節(jié)點(diǎn)”服務(wù)器(具有多核處理器)以處理更苛刻的工作量,來提供接近線性的可擴(kuò)展性以提高性能。所有查詢處理(除了最后的結(jié)果匯集)可由計(jì)算節(jié)點(diǎn)進(jìn)行,其中每個(gè)節(jié)點(diǎn)的每個(gè)核在整個(gè)數(shù)據(jù)的較小部分上執(zhí)行相同的編譯查詢“段”。
[0076]此外,數(shù)據(jù)倉庫系統(tǒng)可使用列導(dǎo)向數(shù)據(jù)存儲(chǔ)和壓縮,以降低存儲(chǔ)要求(從而也減少磁盤I/o),且執(zhí)行更多存儲(chǔ)器內(nèi)查詢處理。全面優(yōu)化和編譯的代碼可被分布式在數(shù)據(jù)倉庫系統(tǒng)集群的所有節(jié)點(diǎn)上,以“分治”并增加復(fù)雜查詢的執(zhí)行速度,同時(shí)也消除了使用解釋程序的開銷。
[0077]在一些實(shí)施方案中,本文所述的數(shù)據(jù)倉庫系統(tǒng)可提供MPP感知且也利用數(shù)據(jù)倉庫系統(tǒng)使用的列導(dǎo)向數(shù)據(jù)存儲(chǔ)的高效率的查詢優(yōu)化器和查詢執(zhí)行引擎。數(shù)據(jù)倉庫系統(tǒng)的查詢優(yōu)化器可向以查詢執(zhí)行為中心的一系列可重用的軟件部件和方法提供顯著的增強(qiáng)和擴(kuò)展,以處理包括多表連接、子查詢和匯集的復(fù)雜的分析查詢。如前文所述,列存儲(chǔ)和自適應(yīng)壓縮的使用也可顯著減少處理查詢所需的數(shù)據(jù)量,且在可能的情況下可通過存儲(chǔ)器內(nèi)和緩存數(shù)據(jù)訪問來顯著提高查詢執(zhí)行速度。
[0078]在各種實(shí)施方案中,本文描述的方法可由硬件和軟件的任何組合來實(shí)施。例如,在一個(gè)實(shí)施方案中,方法可由包括執(zhí)行被存儲(chǔ)在耦接到處理器的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的程序指令的處理器的計(jì)算機(jī)系統(tǒng)來實(shí)施。程序指令可被配置以實(shí)施本文所描述的功能(例如,實(shí)施本文所述的數(shù)據(jù)倉庫系統(tǒng)和/或遠(yuǎn)程關(guān)鍵字-值持久備份存儲(chǔ)系統(tǒng)的各種服務(wù)器和其它部件的功能)。
[0079]圖15是示出根據(jù)各種實(shí)施方案的被配置以實(shí)施分布式數(shù)據(jù)倉庫系統(tǒng)和對(duì)應(yīng)關(guān)鍵字-值持久備份存儲(chǔ)系統(tǒng)的至少一部分的計(jì)算機(jī)系統(tǒng)的框圖。例如,計(jì)算機(jī)系統(tǒng)1500可被配置以實(shí)施分布式數(shù)據(jù)倉庫系統(tǒng)中集群的領(lǐng)導(dǎo)節(jié)點(diǎn)、分布式數(shù)據(jù)倉庫系統(tǒng)中集群的計(jì)算節(jié)點(diǎn)、分布式數(shù)據(jù)倉庫服務(wù)管理器、關(guān)鍵字-值持久備份存儲(chǔ)系統(tǒng)(或其接口)或分布式數(shù)據(jù)倉庫系統(tǒng)或?qū)?yīng)的關(guān)鍵字-值持久備份存儲(chǔ)系統(tǒng)的任何其它部件。計(jì)算機(jī)系統(tǒng)1500可為任何各種類型的設(shè)備,包括但不限于,個(gè)人計(jì)算機(jī)系統(tǒng)、臺(tái)式計(jì)算機(jī)、膝上型或筆記本計(jì)算機(jī)、大型計(jì)算機(jī)系統(tǒng)、手持計(jì)算機(jī)、工作站、網(wǎng)絡(luò)計(jì)算機(jī)、消費(fèi)者設(shè)備、應(yīng)用服務(wù)器、存儲(chǔ)設(shè)備、電話、移動(dòng)電話或通常任何類型的計(jì)算設(shè)備。
[0080]計(jì)算機(jī)系統(tǒng)1500包括通過輸入/輸出(I/O)接口 1530耦接到系統(tǒng)存儲(chǔ)器1520的一個(gè)或多個(gè)處理器1510 (任何一個(gè)處理器可包括多個(gè)核,其可為單個(gè)或多線程的)。計(jì)算機(jī)系統(tǒng)1500還包括耦接到I/O接口 1530的網(wǎng)絡(luò)接口 1540。在各種實(shí)施方案中,計(jì)算機(jī)系統(tǒng)1500可為包括一個(gè)處理器1510的單處理器系統(tǒng),或包括若干處理器1510 (例如,兩個(gè)、四個(gè)、八個(gè)或另一合適的數(shù)量)的多處理器系統(tǒng)。處理器1510可為能夠執(zhí)行指令的任何合適的處理器。例如,在各種實(shí)施方案中,處理器1510可為實(shí)施例如x86、PowerPC、SPARC或MIPS ISA的任何各種指令集架構(gòu)(ISA)或任何其它適合的ISA的通用或嵌入式處理器。在多處理器系統(tǒng)中,每個(gè)處理器1510可通常但不一定實(shí)施相同的ISA。計(jì)算機(jī)系統(tǒng)1500也包括一個(gè)或多個(gè)網(wǎng)絡(luò)通信設(shè)備(例如,網(wǎng)絡(luò)接口 1540),用于通過通信網(wǎng)絡(luò)(例如互聯(lián)網(wǎng)、LAN等)與其它系統(tǒng)和/或部件通信。例如,在系統(tǒng)1500上執(zhí)行的客戶端應(yīng)用可使用網(wǎng)絡(luò)接口1540以與在單個(gè)服務(wù)器上或在實(shí)施分布式系統(tǒng)的服務(wù)器的集群上執(zhí)行的服務(wù)器應(yīng)用通信。在另一實(shí)例中,在計(jì)算機(jī)系統(tǒng)1500上執(zhí)行的服務(wù)器應(yīng)用的實(shí)例可使用網(wǎng)絡(luò)接口 1540以與可在其它計(jì)算機(jī)系統(tǒng)上實(shí)施的服務(wù)器應(yīng)用的其它實(shí)例通信。
[0081]在示出的實(shí)施方案中,計(jì)算機(jī)系統(tǒng)1500也包括一個(gè)或多個(gè)持久存儲(chǔ)設(shè)備1560和/或一個(gè)或多個(gè)I/o設(shè)備1580。在各種實(shí)施方案中,持久存儲(chǔ)設(shè)備1560可對(duì)應(yīng)于磁盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器、固態(tài)存儲(chǔ)器、其它大容量存儲(chǔ)設(shè)備或任何其它持久性存儲(chǔ)設(shè)備。計(jì)算機(jī)系統(tǒng)1500 (或在其上操作的分布式應(yīng)用或操作系統(tǒng))可按需要將指令和/或數(shù)據(jù)存儲(chǔ)在持久性存儲(chǔ)設(shè)備1560中,且可根據(jù)需要檢索存儲(chǔ)的指令和/或數(shù)據(jù)。
[0082]計(jì)算機(jī)系統(tǒng)1500包括被配置以存儲(chǔ)處理器1510可訪問的指令和數(shù)據(jù)的一個(gè)或多個(gè)系統(tǒng)存儲(chǔ)器1520。在各種實(shí)施方案中,系統(tǒng)存儲(chǔ)器1520可使用任何適當(dāng)?shù)拇鎯?chǔ)器技術(shù)(例如,緩存、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、DRAM、RDRAM, EDO RAM、DDR 10RAM、同步動(dòng)態(tài)RAM (SDRAM), Rambus RAM、EEPROM、非易失性/閃存型存儲(chǔ)器或任何其它類型的存儲(chǔ)器中的一個(gè)或多個(gè))來實(shí)施。系統(tǒng)存儲(chǔ)器1520可包含可由處理器1510執(zhí)行來實(shí)施本文所描述的方法和技術(shù)的程序指令1525。在各種實(shí)施方案中,程序指令1525可能以平臺(tái)本地二進(jìn)制、例如JavaTM字節(jié)碼的任何解釋性語言,或例如C/C++、JavaTM等的任何其它語言,或其任意組合來編碼。例如,在示出的實(shí)施方案中,程序指令1525包括可執(zhí)行以實(shí)施分布式數(shù)據(jù)倉庫系統(tǒng)中集群的領(lǐng)導(dǎo)節(jié)點(diǎn)、分布式數(shù)據(jù)倉庫系統(tǒng)中集群的計(jì)算節(jié)點(diǎn)、分布式數(shù)據(jù)倉庫服務(wù)管理器、關(guān)鍵字-值持久備份存儲(chǔ)系統(tǒng)(或其接口)或分布式數(shù)據(jù)倉庫系統(tǒng)或?qū)?yīng)的關(guān)鍵字-值持久備份存儲(chǔ)系統(tǒng)的任何其它部件的功能的程序指令。在一些實(shí)施方案中,程序指令1525可實(shí)施多個(gè)單獨(dú)的客戶端、服務(wù)器節(jié)點(diǎn)和/或其它部件。
[0083]在一些實(shí)施方案中,程序指令1525可包括可執(zhí)行以實(shí)施操作系統(tǒng)(未示出)的指令,所述操作系統(tǒng)可為任何各種操作系統(tǒng),例如UNIX、LINUX、SolarisTM、MacOSTM、WindowsTM等。程序指令1525中的任何或所有程序指令可被提供作為可包括上面存儲(chǔ)有指令的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的計(jì)算機(jī)程序產(chǎn)品或軟件,所述指令可用以編程計(jì)算機(jī)系統(tǒng)(或其它電子設(shè)備)來執(zhí)行根據(jù)各種實(shí)施方案的過程。非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可包括用于以機(jī)器(例如,計(jì)算機(jī))可讀形式(例如,軟件、處理應(yīng)用)來存儲(chǔ)信息的任何機(jī)制。一般來說,非臨時(shí)性計(jì)算機(jī)可存取介質(zhì)可包括例如磁或光介質(zhì)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)或存儲(chǔ)器介質(zhì),例如,通過1/0接口 1530耦接到計(jì)算機(jī)系統(tǒng)1500的磁盤或DVD/⑶-ROM。非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)也可包括在計(jì)算機(jī)系統(tǒng)1500的一些實(shí)施方案中可被包括作為系統(tǒng)存儲(chǔ)器1520或另一類型的存儲(chǔ)器的任何易失性或非易失性介質(zhì),例如RAM(例如,SDRAM, DDR SDRAM、RDRAM、SRAM等)、ROM等。在其它實(shí)施方案中,程序指令可使用光、聲音或其它形式的傳播信號(hào)(例如,載波、紅外信號(hào)、數(shù)字信號(hào)等)來傳遞,所述傳播信號(hào)通過例如網(wǎng)絡(luò)和/或無線鏈路的通信介質(zhì)來傳輸,例如可通過網(wǎng)絡(luò)接口 1540來實(shí)施。
[0084]在一些實(shí)施方案中,系統(tǒng)存儲(chǔ)器1520可包括可如本文所述來配置的數(shù)據(jù)存儲(chǔ)1545。例如,在各種實(shí)施方案中,本文描述為由數(shù)據(jù)倉庫系統(tǒng)存儲(chǔ)(例如,在領(lǐng)導(dǎo)節(jié)點(diǎn)或計(jì)算節(jié)點(diǎn)上)的信息可被存儲(chǔ)在數(shù)據(jù)存儲(chǔ)1545中或一個(gè)或多個(gè)節(jié)點(diǎn)上系統(tǒng)存儲(chǔ)器1520的另一部分中、在持久性存儲(chǔ)1560中和/或在一個(gè)或多個(gè)遠(yuǎn)程存儲(chǔ)設(shè)備1570上,所述信息例如超級(jí)塊數(shù)據(jù)結(jié)構(gòu)、一個(gè)或多個(gè)數(shù)據(jù)塊訪問計(jì)數(shù)器、查詢歷史、錯(cuò)誤日志或用于執(zhí)行本文描述的方法的其它信息。在一些實(shí)施方案中,且在不同的時(shí)間,系統(tǒng)存儲(chǔ)器1520 (例如,系統(tǒng)存儲(chǔ)器1520內(nèi)的數(shù)據(jù)存儲(chǔ)1545)、持久性存儲(chǔ)1560和/或遠(yuǎn)程存儲(chǔ)1570可存儲(chǔ)數(shù)據(jù)塊的主要副本、數(shù)據(jù)塊的次要副本(即,復(fù)本)、數(shù)據(jù)塊的備份副本、與數(shù)據(jù)塊相關(guān)的元數(shù)據(jù)和/或其狀態(tài)、數(shù)據(jù)庫配置信息和/或可用于實(shí)施本文所描述的方法和技術(shù)的任何其它信息。
[0085]在一個(gè)實(shí)施方案中,I/O接口 1530可被配置以協(xié)調(diào)處理器1510、系統(tǒng)存儲(chǔ)器1520和系統(tǒng)中任何外圍設(shè)備之間的I/O通信量,包括通過網(wǎng)絡(luò)接口 1540或任何外圍接口。在一些實(shí)施方案中,I/O接口 1530可執(zhí)行任何必要的協(xié)議、計(jì)時(shí)或其它數(shù)據(jù)轉(zhuǎn)換來將來自一個(gè)部件(例如,系統(tǒng)存儲(chǔ)器1520)的數(shù)據(jù)信號(hào)轉(zhuǎn)換為適用于另一部件(例如,處理器1510)的格式。在一些實(shí)施方案中,I/O接口 1530例如可包括通過各種類型的外圍總線(例如外圍組件互連(PCI)總線標(biāo)準(zhǔn)或通用串行總線(USB)標(biāo)準(zhǔn)的變體)附接的設(shè)備的支持件。在一些實(shí)施方案中,I/O接口 1530的功能例如可被分成兩個(gè)或更多個(gè)單獨(dú)的部件,例如北橋和南橋。又,在一些實(shí)施方案中,I/O接口 1530的一些或所有功能(例如系統(tǒng)存儲(chǔ)器1520的接口)可直接并入處理器1510。
[0086]網(wǎng)絡(luò)接口 1540例如可被配置以允許數(shù)據(jù)在計(jì)算機(jī)系統(tǒng)1500和附接到網(wǎng)絡(luò)的其它設(shè)備(例如,其它計(jì)算機(jī)系統(tǒng)1590)(其可實(shí)施分布式數(shù)據(jù)倉庫系統(tǒng)和/或遠(yuǎn)程關(guān)鍵字-值持久存儲(chǔ)系統(tǒng)的一個(gè)或多個(gè)服務(wù)器節(jié)點(diǎn)和/或客戶端)之間交換。此外,網(wǎng)絡(luò)接口 1540可被配置以允許計(jì)算機(jī)系統(tǒng)1500和各種I/O設(shè)備1550和/或遠(yuǎn)程存儲(chǔ)1570之間進(jìn)行通信。在一些實(shí)施方案中,輸入/輸出設(shè)備1550可包括一個(gè)或多個(gè)顯不終端、鍵盤、小鍵盤、觸摸板、掃描設(shè)備、語音或光學(xué)識(shí)別設(shè)備或適于通過一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)1500輸入數(shù)據(jù)或檢索數(shù)據(jù)的任何其它設(shè)備。多個(gè)輸入/輸出設(shè)備1550可存在于計(jì)算機(jī)系統(tǒng)1500中或可被分布到包括計(jì)算機(jī)系統(tǒng)1500的分布式系統(tǒng)的各種節(jié)點(diǎn)上。在一些實(shí)施方案中,類似的輸入/輸出設(shè)備可與計(jì)算機(jī)系統(tǒng)1500分開,且可通過有線或無線連接(例如,通過網(wǎng)絡(luò)接口 1540)與包括計(jì)算機(jī)系統(tǒng)1500的分布式系統(tǒng)的一個(gè)或多個(gè)節(jié)點(diǎn)互動(dòng)。網(wǎng)絡(luò)接口 1540可通常支持一個(gè)或多個(gè)無線網(wǎng)絡(luò)協(xié)議(例如,W1-Fi/IEEE 802.11,或另一無線網(wǎng)絡(luò)標(biāo)準(zhǔn))。然而,在各種實(shí)施方案中,網(wǎng)絡(luò)接口 1540例如可通過任何合適的有線或無線通用數(shù)據(jù)網(wǎng)絡(luò)(例如,其它類型的以太網(wǎng)網(wǎng)絡(luò))支持通信。另外,網(wǎng)絡(luò)接口 1540可通過電信/電話網(wǎng)絡(luò)(例如,模擬語音網(wǎng)絡(luò)或數(shù)字光纖通信網(wǎng)絡(luò))、通過存儲(chǔ)區(qū)域網(wǎng)絡(luò)(例如,光纖通道SAN)或通過任何其它合適類型的網(wǎng)絡(luò)和/或協(xié)議來支持通信。在各種實(shí)施方案中,計(jì)算機(jī)系統(tǒng)1500可包括比圖15示出的部件更多、更少或與之不同的部件(例如,顯示器、視頻卡、音頻卡、外圍設(shè)備、其它網(wǎng)絡(luò)接口,例如ATM接口、以太網(wǎng)接口、幀中繼接口等)。
[0087]注意,本文描述的任何分布式系統(tǒng)實(shí)施方案或其任何部件可被實(shí)施為一個(gè)或多個(gè)網(wǎng)絡(luò)服務(wù)。例如,數(shù)據(jù)倉庫系統(tǒng)內(nèi)的領(lǐng)導(dǎo)節(jié)點(diǎn)可向客戶提供數(shù)據(jù)存儲(chǔ)服務(wù)和/或數(shù)據(jù)庫服務(wù)作為網(wǎng)絡(luò)服務(wù)。在一些實(shí)施方案中,網(wǎng)絡(luò)服務(wù)可由被設(shè)計(jì)以通過網(wǎng)絡(luò)支持互操作的機(jī)器到機(jī)器交互的軟件和/或硬件系統(tǒng)來實(shí)施。網(wǎng)絡(luò)服務(wù)可具有以機(jī)器可處理格式(例如網(wǎng)絡(luò)服務(wù)描述語言(WSDL))描述的接口。其它系統(tǒng)可能以由網(wǎng)絡(luò)服務(wù)的接口的描述規(guī)定的方式與網(wǎng)絡(luò)服務(wù)交互。例如,網(wǎng)絡(luò)服務(wù)可限定其它系統(tǒng)可調(diào)用的各種操作,且可限定當(dāng)請(qǐng)求各種操作時(shí)可期望其它系統(tǒng)符合的特定的應(yīng)用編程接口(API)。
[0088]在各種實(shí)施方案中,網(wǎng)絡(luò)服務(wù)可通過使用包括與網(wǎng)絡(luò)服務(wù)請(qǐng)求相關(guān)的參數(shù)和/或數(shù)據(jù)的消息來請(qǐng)求或調(diào)用。所述消息可根據(jù)特定標(biāo)記語言(例如可擴(kuò)展標(biāo)記語言(XML))來格式化,和/或可使用協(xié)議(例如簡(jiǎn)單對(duì)象訪問協(xié)議(SOAP))來封裝。為了執(zhí)行網(wǎng)絡(luò)服務(wù)請(qǐng)求,網(wǎng)絡(luò)服務(wù)客戶可匯集包括請(qǐng)求的消息,并使用基于互聯(lián)網(wǎng)的應(yīng)用層傳輸協(xié)議(例如超文本傳輸協(xié)議(HTTP))來將消息傳送到對(duì)應(yīng)于網(wǎng)絡(luò)服務(wù)的可尋址的端點(diǎn)(例如,統(tǒng)一資源定位符(URL))。
[0089]在一些實(shí)施方案中,網(wǎng)絡(luò)服務(wù)可使用代表性狀態(tài)傳輸(“RESTful”)技術(shù)而非基于消息的技術(shù)來實(shí)施。例如,根據(jù)RESTful技術(shù)實(shí)施的網(wǎng)絡(luò)服務(wù)可通過被包括在HTTP方法中的參數(shù)(例如,PUT, GET或DELETE)來調(diào)用,而非被封裝在SOAP消息內(nèi)。
[0090]上述內(nèi)容可鑒于以下條款更好地理解:
[0091]1.一種方法,其包括:由一個(gè)或多個(gè)計(jì)算機(jī)來執(zhí)行以下操作:代表一個(gè)或多個(gè)客戶將數(shù)據(jù)庫表的列數(shù)據(jù)存儲(chǔ)在分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)的多個(gè)物理數(shù)據(jù)塊中,其中所述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)包括一個(gè)或多個(gè)節(jié)點(diǎn)的集群,每個(gè)節(jié)點(diǎn)包括上面存儲(chǔ)物理數(shù)據(jù)塊的一個(gè)或多個(gè)磁盤,且其中所述多個(gè)物理數(shù)據(jù)塊中每一個(gè)與各自的唯一標(biāo)識(shí)符相關(guān);將所述多個(gè)物理數(shù)據(jù)塊中每一個(gè)的副本存儲(chǔ)在遠(yuǎn)程關(guān)鍵字-值持久備份存儲(chǔ)系統(tǒng)中,其中對(duì)于所述多個(gè)物理數(shù)據(jù)塊中每一個(gè),所述各自的唯一標(biāo)識(shí)符充當(dāng)密鑰,以訪問所述遠(yuǎn)程關(guān)鍵字-值持久備份存儲(chǔ)系統(tǒng)中的所述數(shù)據(jù)塊;檢測(cè)所述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中影響存儲(chǔ)所述列數(shù)據(jù)的所述多個(gè)物理數(shù)據(jù)塊中至少一個(gè)的故障;響應(yīng)于所述檢測(cè),自動(dòng)啟動(dòng)從所述遠(yuǎn)程關(guān)鍵字-值持久備份存儲(chǔ)系統(tǒng)恢復(fù)被存儲(chǔ)在所述多個(gè)物理數(shù)據(jù)塊中所述至少一個(gè)中的所述列數(shù)據(jù);和在恢復(fù)被存儲(chǔ)在所述多個(gè)物理數(shù)據(jù)塊中所述至少一個(gè)中的所述列數(shù)據(jù)中所有列數(shù)據(jù)之前:接收針對(duì)所述數(shù)據(jù)庫表的所述列數(shù)據(jù)的一個(gè)或多個(gè)查詢請(qǐng)求;和接受并服務(wù)于所述一個(gè)或多個(gè)查詢請(qǐng)求,其中所述服務(wù)包括使用所述各自的唯一標(biāo)識(shí)符作為密鑰以訪問包括所述一個(gè)或多個(gè)查詢請(qǐng)求所針對(duì)的所述數(shù)據(jù)庫表的所述列數(shù)據(jù)中至少一些的所述遠(yuǎn)程關(guān)鍵字-值持久備份存儲(chǔ)系統(tǒng)中的數(shù)據(jù)塊來從所述遠(yuǎn)程關(guān)鍵字-值持久備份存儲(chǔ)系統(tǒng)獲得所述列數(shù)據(jù)中所述至少一些。
[0092]2.如條款I(lǐng)所述的方法,其中所述存儲(chǔ)數(shù)據(jù)庫表的列數(shù)據(jù)包括:將所述列數(shù)據(jù)的一部分作為所述列數(shù)據(jù)的所述部分的主要副本存儲(chǔ)在給定磁盤上的各自的物理數(shù)據(jù)塊中,和將所述列數(shù)據(jù)的所述部分作為所述列數(shù)據(jù)的所述部分的一個(gè)或多個(gè)次要副本存儲(chǔ)在所述給定磁盤之外的一個(gè)或多個(gè)磁盤上的各自的物理數(shù)據(jù)塊中。
[0093]3.如條款I(lǐng)所述的方法,其中所述存儲(chǔ)數(shù)據(jù)庫表的列數(shù)據(jù)包括:將被存儲(chǔ)在給定節(jié)點(diǎn)的磁盤上的所述物理數(shù)據(jù)塊中每一個(gè)的所述唯一標(biāo)識(shí)符存儲(chǔ)在存儲(chǔ)關(guān)于被存儲(chǔ)在所述給定節(jié)點(diǎn)上的所述物理數(shù)據(jù)塊的信息的超級(jí)塊數(shù)據(jù)結(jié)構(gòu)中各自的條目中。
[0094]4.如條款I(lǐng)所述的方法,其中所述存儲(chǔ)數(shù)據(jù)庫表的列數(shù)據(jù)包括:將指示被存儲(chǔ)在給定節(jié)點(diǎn)的磁盤上的所述物理數(shù)據(jù)塊中每一個(gè)被存儲(chǔ)的位置的信息存儲(chǔ)在存儲(chǔ)關(guān)于被存儲(chǔ)在所述給定節(jié)點(diǎn)上的所述物理數(shù)據(jù)塊的信息的超級(jí)塊數(shù)據(jù)結(jié)構(gòu)中各自的條目中。
[0095]5.如條款I(lǐng)所述的方法,其中所述服務(wù)包括:從所述分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中的磁盤獲得所述一個(gè)或多個(gè)查詢請(qǐng)求所針對(duì)的所述數(shù)據(jù)庫表的所述列數(shù)據(jù)中至少一些。
[0096]6.一種方法,其包括:由一個(gè)或多個(gè)計(jì)算機(jī)來執(zhí)行以下操作:代表一個(gè)或多個(gè)客戶將數(shù)據(jù)保持在數(shù)據(jù)存儲(chǔ)系統(tǒng)的一個(gè)或多個(gè)物理數(shù)據(jù)塊中,其中每個(gè)物理數(shù)據(jù)塊與唯一標(biāo)識(shí)符相關(guān);執(zhí)行備份操作以將被存儲(chǔ)在給定物理數(shù)據(jù)塊中的數(shù)據(jù)的各自的副本存儲(chǔ)在與所述數(shù)據(jù)存儲(chǔ)系統(tǒng)不同的關(guān)鍵字-值存儲(chǔ)系統(tǒng)中;在存儲(chǔ)被存儲(chǔ)在所述給定物理數(shù)據(jù)塊中的所述數(shù)據(jù)的所述各自的副本之后,將被存儲(chǔ)在所述給定物理數(shù)據(jù)塊中的所述數(shù)據(jù)從所述關(guān)鍵字-值存儲(chǔ)系統(tǒng)恢復(fù)到所述數(shù)據(jù)存儲(chǔ)系統(tǒng),同時(shí)接受并服務(wù)于針對(duì)代表所述一個(gè)或多個(gè)客戶保持的所述數(shù)據(jù)的查詢,其中所述恢復(fù)包括:使用與所述給定物理數(shù)據(jù)塊相關(guān)的所述唯一標(biāo)識(shí)符作為所述關(guān)鍵字-值存儲(chǔ)系統(tǒng)中的密鑰來訪問所述關(guān)鍵字-值存儲(chǔ)系統(tǒng)中數(shù)據(jù)的所述各自的副本。
[0097]7.如條款6所述的方法,其中所述恢復(fù)是作為將被存儲(chǔ)在多個(gè)物理數(shù)據(jù)塊中的數(shù)據(jù)從所述關(guān)鍵字-值存儲(chǔ)系統(tǒng)恢復(fù)到所述數(shù)據(jù)存儲(chǔ)系統(tǒng)的操作的一部分來執(zhí)行,且其中所述接受并服務(wù)于查詢是在恢復(fù)被存儲(chǔ)在所述多個(gè)物理數(shù)據(jù)塊中的所述數(shù)據(jù)中的所有數(shù)據(jù)之前被執(zhí)行。
[0098]8.如條款6所述的方法,其還包括:接收表示數(shù)據(jù)庫表中條目的數(shù)據(jù),其中所述將數(shù)據(jù)保持在數(shù)據(jù)存儲(chǔ)系統(tǒng)的一個(gè)或多個(gè)物理數(shù)據(jù)塊中包括:將表示所述數(shù)據(jù)庫表中數(shù)據(jù)的一個(gè)或多個(gè)列的數(shù)據(jù)存儲(chǔ)在所述一個(gè)或多個(gè)物理數(shù)據(jù)塊中每一個(gè)。
[0099]9.如條款6所述的方法,其中所述恢復(fù)是響應(yīng)于存儲(chǔ)設(shè)備的故障來執(zhí)行,被存儲(chǔ)在所述給定物理數(shù)據(jù)塊中的所述數(shù)據(jù)被存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)系統(tǒng)的所述存儲(chǔ)設(shè)備上。
[0100]10.如條款6所述的方法,其中所述恢復(fù)是響應(yīng)于包括存儲(chǔ)設(shè)備的節(jié)點(diǎn)的故障來執(zhí)行,被存儲(chǔ)在所述給定物理數(shù)據(jù)塊中的所述數(shù)據(jù)被存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)系統(tǒng)的所述存儲(chǔ)設(shè)備上。
[0101]11.如條款6所述的方法,其中所述恢復(fù)是響應(yīng)于包括存儲(chǔ)設(shè)備的一個(gè)或多個(gè)節(jié)點(diǎn)的集群的故障來執(zhí)行,被存儲(chǔ)在所述給定物理數(shù)據(jù)塊中的所述數(shù)據(jù)被存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)系統(tǒng)的所述存儲(chǔ)設(shè)備上。
[0102]12.如條款6所述的方法,其中所述恢復(fù)是響應(yīng)于來自所述一個(gè)或多個(gè)客戶中一個(gè)客戶的執(zhí)行恢復(fù)操作的明確請(qǐng)求來執(zhí)行。
[0103]13.如條款6所述的方法,其中所述將數(shù)據(jù)保持在數(shù)據(jù)存儲(chǔ)系統(tǒng)的一個(gè)或多個(gè)物理數(shù)據(jù)塊中包括:將存儲(chǔ)被保持在一個(gè)或多個(gè)節(jié)點(diǎn)的集群的特定節(jié)點(diǎn)上的所述數(shù)據(jù)和所述數(shù)據(jù)存儲(chǔ)系統(tǒng)中所述數(shù)據(jù)被存儲(chǔ)的位置