[0053]如在這個實例中示出,如果有更多的節(jié)點具有被從備份恢復(fù)的數(shù)據(jù)(示為從955肯定退出),那么方法可包括對于每個另外的節(jié)點重復(fù)示出為920 - 955的操作。這在圖9A中由從955到920的反饋示出。一旦沒有另外的節(jié)點具有要被恢復(fù)的數(shù)據(jù),但在從遠(yuǎn)程關(guān)鍵字-值持久備份存儲恢復(fù)所有丟失或破壞的塊之前,方法可包括接受并服務(wù)于針對客戶數(shù)據(jù)的查詢,如960示出。
[0054]如在這個實例中示出,如果在集群內(nèi)不能發(fā)現(xiàn)給定節(jié)點的完好(有效)的超級塊(即,如果給定節(jié)點的超級塊被破壞),那么方法可包括在完整的集群上啟動恢復(fù)操作。這在圖9B中示出為在連接元件A之后開始。如在這個實例中示出,完整的集群恢復(fù)操作可包括從遠(yuǎn)程關(guān)鍵字-值持久存儲恢復(fù)集群中每個節(jié)點的最后提交的超級塊(如965示出),且在每個節(jié)點上,從遠(yuǎn)程關(guān)鍵字-值持久存儲啟動恢復(fù)的超級塊中的條目指向的所有數(shù)據(jù)塊的流式恢復(fù)操作(如970示出)。如在先前的實例中,方法可包括,在從遠(yuǎn)程關(guān)鍵字-值持久存儲恢復(fù)集群的所有數(shù)據(jù)塊之前,使得數(shù)據(jù)倉庫系統(tǒng)可用于接受并服務(wù)于查詢(如975示出)。
[0055]注意,在各種實施方案中,系統(tǒng)可在開始恢復(fù)操作和檢索存儲關(guān)于丟失的數(shù)據(jù)塊的信息的超級塊數(shù)據(jù)結(jié)構(gòu)(例如,如果這些超級塊數(shù)據(jù)結(jié)構(gòu)在檢測到故障之后并不完好)之后的任何點被保持有效(即,使得可用于處理從客戶接收的查詢請求),或系統(tǒng)可甚至在檢測到故障的情況下(例如,如果存儲關(guān)于丟失數(shù)據(jù)塊的信息的超級塊數(shù)據(jù)結(jié)構(gòu)在檢測到的故障之后保持完好)保持有效。換句話說,在各種實施方案中,本文描述的系統(tǒng)和方法可允許分布式數(shù)據(jù)倉庫系統(tǒng)在系統(tǒng)中出現(xiàn)故障之后從遠(yuǎn)程關(guān)鍵字-值持久備份存儲恢復(fù)所有被影響的數(shù)據(jù)塊之前接受并提供針對其存儲的客戶數(shù)據(jù)的查詢。
[0056]在一些實施方案中,當(dāng)讀取數(shù)據(jù)倉庫系統(tǒng)保持的數(shù)據(jù)塊時,系統(tǒng)本身可被配置以自動確定是訪問被存儲在數(shù)據(jù)倉庫系統(tǒng)的集群中的磁盤中的數(shù)據(jù)塊的副本中的一個副本(例如,數(shù)據(jù)塊的主要或次要副本)還是訪問被存儲在遠(yuǎn)程備份存儲系統(tǒng)中的數(shù)據(jù)塊的備份副本。在一些實施方案中,這個確定可包括當(dāng)從集群中的磁盤讀取數(shù)據(jù)塊時執(zhí)行一致性檢查,以評估數(shù)據(jù)塊是否已經(jīng)遇到物理或邏輯損壞。例如,如果數(shù)據(jù)塊的主要副本已被損壞,那么數(shù)據(jù)塊可從其次要位置讀取。如果次要副本也不可用(例如,由于任何的各種原因,包括本文所描述的原因),那么最新版本的這個單個數(shù)據(jù)塊可被自動從備份存儲檢索并被臨時接入正在運(yùn)行的系統(tǒng),而不需要客戶知道備份副本的標(biāo)識或位置且不需要恢復(fù)任何其它數(shù)據(jù)塊。
[0057]圖10中以流程圖示出用于在分布式數(shù)據(jù)倉庫系統(tǒng)中響應(yīng)于查詢請求的方法的一個實施方案。如在1000示出,在這個實例中,方法可包括分布式數(shù)據(jù)倉庫系統(tǒng)代表客戶或用戶接收針對被存儲在給定集群中的數(shù)據(jù)的查詢。響應(yīng)于接收到查詢,方法可包括,對于查詢針對的數(shù)據(jù)塊,給定集群的領(lǐng)導(dǎo)節(jié)點確定當(dāng)前存儲數(shù)據(jù)塊的主要副本的計算節(jié)點,如1010示出。如果數(shù)據(jù)塊的主要副本可用(例如,用于至少部分滿足查詢),示為從1020肯定退出,那么方法可包括從數(shù)據(jù)塊的主要副本獲得目標(biāo)數(shù)據(jù)和將其返回到請求者,如1025示出。
[0058]如果數(shù)據(jù)塊的主要副本不可用(例如,由于物理或邏輯損壞、軟件錯誤、I/O通道中的存儲器問題、磁盤故障、節(jié)點故障或因為其在損壞或故障之后尚未被恢復(fù)),那么方法可包括主要計算節(jié)點或領(lǐng)導(dǎo)節(jié)點確定存儲數(shù)據(jù)塊的一個或多個次要副本的計算節(jié)點,如1030示出。如果數(shù)據(jù)塊的次要副本可用(示為從1040肯定退出),那么方法可包括從數(shù)據(jù)塊的次要副本獲得目標(biāo)數(shù)據(jù)和將其返回到請求者,如1045示出。如果沒有數(shù)據(jù)塊的次要副本可用(示為從1040否定退出),那么方法可包括領(lǐng)導(dǎo)節(jié)點或主要計算節(jié)點確定數(shù)據(jù)塊的唯一 ID(例如,基于被存儲在先前存儲數(shù)據(jù)塊的節(jié)點的超級塊數(shù)據(jù)結(jié)構(gòu)中的元數(shù)據(jù)),將數(shù)據(jù)塊的請求發(fā)送到遠(yuǎn)程關(guān)鍵字-值持久備份存儲系統(tǒng)以檢索目標(biāo)數(shù)據(jù),和將目標(biāo)數(shù)據(jù)返回到請求者,如1050示出。如果有接收到的查詢針對的更多數(shù)據(jù)塊(示為從1060肯定退出),那么方法可包括對那些另外的數(shù)據(jù)塊重復(fù)在1010到1050示出的操作。這在圖10中由從1060到1010的反饋示出。一旦沒有接收到的查詢針對的另外的數(shù)據(jù)塊,示為從1060否定退出,查詢處理可完成,如1070示出。注意,圖10示出用于確定訪問所針對的數(shù)據(jù)塊的若干副本中的哪個副本以響應(yīng)于查詢的操作可在分布式數(shù)據(jù)倉庫系統(tǒng)中自動執(zhí)行(例如,無需用戶干預(yù))。
[0059]圖11中以流程圖示出用于響應(yīng)于查詢而確定返回數(shù)據(jù)塊的哪個副本的方法的一個實施方案。如在1110示出,在這個實例中,方法可包括客戶將查詢請求發(fā)送到數(shù)據(jù)倉庫集群。如果集群不可用(示為從1120否定退出),那么方法可包括啟動集群的重建,如1125示出,然后重新嘗試滿足查詢(未示出)。例如,方法可包括啟動用于從被存儲在遠(yuǎn)程關(guān)鍵字-值持久備份存儲系統(tǒng)中的數(shù)據(jù)的備份副本恢復(fù)整個集群的后臺進(jìn)程。如本文所述,在一些實施方案中,并非等待整個集群(或甚至目標(biāo)數(shù)據(jù)塊)被恢復(fù)然后才重新嘗試滿足查詢,目標(biāo)數(shù)據(jù)塊的備份副本可由檢索查詢針對的數(shù)據(jù)塊的前臺進(jìn)程從遠(yuǎn)程關(guān)鍵字-值持久備份存儲系統(tǒng)檢索。如果集群是可用的(示為從1120肯定退出),那么方法可包括,對于查詢針對的數(shù)據(jù)塊,領(lǐng)導(dǎo)節(jié)點確定存儲數(shù)據(jù)塊的主要副本的計算節(jié)點,如1130示出。如果數(shù)據(jù)塊的主要副本不是完好的(例如,如果其丟失或破壞,示為從1140否定退出),那么方法可包括啟動從數(shù)據(jù)塊的次要副本獲得目標(biāo)數(shù)據(jù)的嘗試,將一致性檢查應(yīng)用到所獲得的數(shù)據(jù)(如果找到),和/或啟動將主要數(shù)據(jù)塊副本從次要副本恢復(fù)(如1170示出)。
[0060]如在這個實例中示出,如果目標(biāo)數(shù)據(jù)的主要副本完好且未被破壞(示為從1140肯定退出),那么方法可包括從數(shù)據(jù)塊的主要副本檢索目標(biāo)數(shù)據(jù),和將一致性檢查應(yīng)用到所檢索到的數(shù)據(jù),如1150示出。如果檢索到的數(shù)據(jù)通過一致性檢查(示為從1160肯定退出),那么方法可包括將目標(biāo)數(shù)據(jù)返回到客戶(如1185示出)。
[0061]如果檢索到的數(shù)據(jù)未通過一致性檢查(示為從1160否定退出),那么方法可包括啟動從數(shù)據(jù)塊的次要副本獲得目標(biāo)數(shù)據(jù)的嘗試,將一致性檢查應(yīng)用到所獲得的數(shù)據(jù)(如果找到),和/或啟動將主要數(shù)據(jù)塊副本從次要副本恢復(fù)(如1170示出)。如果發(fā)現(xiàn)數(shù)據(jù)塊的一致次要副本(示為從1180肯定退出),那么方法可包括將目標(biāo)數(shù)據(jù)返回到客戶,如1185示出。如果未發(fā)現(xiàn)數(shù)據(jù)塊的一致次要副本(示為從1180否定退出),那么方法可包括從備份存儲系統(tǒng)(例如,遠(yuǎn)程關(guān)鍵字-值持久備份存儲系統(tǒng))臨時接入數(shù)據(jù)塊的副本和將目標(biāo)數(shù)據(jù)返回到客戶,如1190示出。注意,可對存儲查詢針對的數(shù)據(jù)的任何其它數(shù)據(jù)塊(未示出)重復(fù)1130-1190示出的操作中的各種操作,但可能不必恢復(fù)或甚至掃描被存儲在備份存儲系統(tǒng)中的磁盤、節(jié)點或集群的所有數(shù)據(jù)塊,以從滿足查詢所需的備份存儲系統(tǒng)檢索數(shù)據(jù)。還需要注意,圖11示出用于確定將所針對的數(shù)據(jù)塊的若干副本中的哪個副本返回到客戶以響應(yīng)于查詢的操作可在分布式數(shù)據(jù)倉庫系統(tǒng)中自動執(zhí)行(例如,無需系統(tǒng)管理員或其它用戶干預(yù))。
[0062]圖12中以流程圖示出用于從遠(yuǎn)程關(guān)鍵字-值持久存儲系統(tǒng)臨時接入數(shù)據(jù)塊的備份副本來滿足查詢的方法的一個實施方案。如在1210示出,在這個實例中,方法可包括客戶將針對給定數(shù)據(jù)塊的查詢請求發(fā)送到數(shù)據(jù)倉庫集群。如果目標(biāo)數(shù)據(jù)塊于集群中可用(示為從1220肯定退出),那么方法可包括從集群內(nèi)的節(jié)點(例如,存儲目標(biāo)數(shù)據(jù)塊的主要或次要副本的節(jié)點)獲得目標(biāo)數(shù)據(jù)塊,和將目標(biāo)數(shù)據(jù)塊(或其請求的部分)返回到客戶,如1225示出。如果,由于任何的各種原因(例如,由于物理或邏輯損壞、軟件錯誤、I/O通道中的存儲器問題、磁盤故障、節(jié)點故障或任何其它原因),目標(biāo)數(shù)據(jù)塊于集群中不可用(示為從1220否定退出),那么方法可包括將目標(biāo)數(shù)據(jù)塊從遠(yuǎn)程關(guān)鍵字-值持久存儲系統(tǒng)引入系統(tǒng)存儲器(由充當(dāng)其在遠(yuǎn)程關(guān)鍵字-值持久存儲系統(tǒng)中的訪問密鑰的唯一數(shù)據(jù)塊標(biāo)識符索引)以滿足查詢,和將目標(biāo)數(shù)據(jù)塊(或其請求的部分)返回到客戶,如1230示出。換句話說,目標(biāo)數(shù)據(jù)塊可處于“故障接入”(以類似于頁面錯誤之后所采用的方式)以滿足查詢請求,而無需掃描數(shù)據(jù)或恢復(fù)比所述目標(biāo)數(shù)據(jù)塊多的數(shù)據(jù)塊。
[0063]如在這個實例中示出,一旦目標(biāo)數(shù)據(jù)塊已被引入系統(tǒng)存儲器,方法可包括將目標(biāo)數(shù)據(jù)塊的主要副本寫入數(shù)據(jù)倉庫集群內(nèi)的節(jié)點,和相應(yīng)地更新合適的元數(shù)據(jù)(例如,更新所述節(jié)點的超級塊數(shù)據(jù)結(jié)構(gòu)中的元數(shù)據(jù),以反映節(jié)點中數(shù)據(jù)塊的當(dāng)前狀態(tài)和/或位置),如1240示出。方法也可包括啟動將目標(biāo)數(shù)據(jù)塊復(fù)制到數(shù)據(jù)倉庫集群內(nèi)一個或多個其它節(jié)點(換句話說,其可包括存儲主要副本的節(jié)點創(chuàng)建數(shù)據(jù)塊的一個或多個次要副本),和相應(yīng)地更新合適的元數(shù)據(jù),如1250示出。在各種實施方案中,恢復(fù)的數(shù)據(jù)塊的主要和/或次要副本的元數(shù)據(jù)可與其取代的被破壞數(shù)據(jù)塊的主要和/或次要副本的元數(shù)據(jù)相同或不同(例如,取決于其被存儲在與先前存儲被破壞數(shù)據(jù)塊的副本的磁盤和/或節(jié)點相同還是不同的磁盤和/或節(jié)點上)。如在這個實例中示出,在一些實施方案中,方法可包括記錄系統(tǒng)中觸發(fā)恢復(fù)操作的任何故障的指示(或與之相關(guān)的其它信息)和/或恢復(fù)操作本身的指示(或與之相關(guān)的其它信息)以用于后續(xù)使用,如1260示出。例如,在一些實施方案中,當(dāng)執(zhí)行故障分析、趨勢分析、常規(guī)或有針對性的維護(hù)或其它功能時,所述信息(其可被記錄用于導(dǎo)致各種數(shù)據(jù)塊的一致且未損壞副本不可用于數(shù)據(jù)倉庫集群中的其它這種故障或條件/事件)可隨后被訪問(例如,在記錄所述信息的文件或數(shù)據(jù)結(jié)構(gòu)中)。
[0064]注意,在其它實施方案中,在目標(biāo)數(shù)據(jù)被從遠(yuǎn)程關(guān)鍵字-值持久存儲系統(tǒng)引入系統(tǒng)存儲器以滿足查詢且被返回到客戶(如1230示出)之后,目標(biāo)數(shù)據(jù)可被丟棄,而不是被寫入磁盤。在一些所述實施方案中,丟失或破壞的數(shù)據(jù)塊的主要和次要副本可能不被從備份存儲檢索數(shù)據(jù)塊以滿足查詢的前臺進(jìn)程,而只被對整個磁盤、節(jié)點或集群執(zhí)行流式恢復(fù)操作的后臺進(jìn)程寫入磁盤。還要注意,在一些實施方案中,如果查詢請求針對一個以上數(shù)據(jù)塊中的數(shù)據(jù),那么圖12示出的操作可重復(fù),以定位并返回滿足查詢請求所需的所有數(shù)據(jù),其可包括從遠(yuǎn)程關(guān)鍵字-值持久存儲系統(tǒng)“故障接入” 一個或多個另外的數(shù)據(jù)塊和/或在數(shù)據(jù)倉庫集群中恢復(fù)所述數(shù)據(jù)塊(不管是通過服務(wù)于查詢請求的前臺進(jìn)程還是通過后續(xù)后臺進(jìn)程)。在多個數(shù)據(jù)塊由后臺進(jìn)程在數(shù)據(jù)倉庫集群中恢復(fù)的實施方案中,恢復(fù)數(shù)據(jù)塊的順序可依賴于其在不久的將來將被再次訪問的相對可能性,如下文更詳細(xì)地描述。
[0065]如前文所述,在一些實施方案中,數(shù)據(jù)塊可能以反映其在不久的將來將被訪問的可能性(或期望可能性)的順序來從遠(yuǎn)程存儲系統(tǒng)恢復(fù)。在不同的實施方案中,不同方案可用以追蹤各種數(shù)據(jù)塊的近期性和/或相關(guān)性,以影響流式恢復(fù)操作的塊的優(yōu)先順序。在一些實施方案中,數(shù)據(jù)塊可使用后臺進(jìn)程基于所述確定的優(yōu)先順序來恢復(fù),同時前臺進(jìn)程在需要的基礎(chǔ)上將數(shù)據(jù)塊從備份存儲流入以滿足傳入查詢。注意,在其它系統(tǒng)中,許多(或大多數(shù))其它進(jìn)程必須在降級狀態(tài)下運(yùn)行,直到整個出現(xiàn)故障(或破壞)的磁盤或節(jié)點被重建。在一些實施方案中,本文所描述的系統(tǒng)可在恢復(fù)操作期間實施更適度降級。換句話說,如本文所述,優(yōu)先化將由后臺進(jìn)程執(zhí)行的檢索可允許其如此排序以使得其最小化由于恢復(fù)過程而導(dǎo)致的系統(tǒng)性能的感知到的降級(例如,通過重建更頻繁訪問的數(shù)據(jù),然后重建較不經(jīng)常訪問的數(shù)據(jù))。
[0066]圖13中以流程圖示出用于以優(yōu)先次序從遠(yuǎn)程關(guān)鍵字-值持久存儲系統(tǒng)恢復(fù)數(shù)據(jù)塊的方法的一個實施方案。如在1310示出,在這個實例中,方法可包括檢測數(shù)據(jù)倉庫系統(tǒng)的一個或多個部件的故障(或與之相關(guān)的故障)。作為響應(yīng),可啟動恢復(fù)受影響的數(shù)據(jù)(例如,不能從數(shù)據(jù)倉庫系統(tǒng)中剩余的不受影響的數(shù)據(jù)恢復(fù)的數(shù)據(jù))的操作。如在這個實例中示出,方法可包括基于確定數(shù)據(jù)塊中每一個在不久的將來將被訪問的相對可能性來確定從關(guān)鍵字-值持久備份存儲恢復(fù)受影響的數(shù)據(jù)塊的優(yōu)先級,如1320示出。如下文更詳細(xì)地描述,可應(yīng)用各種標(biāo)準(zhǔn)來確定恢復(fù)受影響的數(shù)據(jù)塊的優(yōu)先次序,包括但不限于:將其如此排序以使得首先恢復(fù)是最近的查詢目標(biāo)的數(shù)據(jù)塊,使得首先恢復(fù)被最近寫入的數(shù)據(jù)塊,或者使得首先恢復(fù)被最近備份的數(shù)據(jù)塊。
[0067]一旦確定恢復(fù)受影響的數(shù)據(jù)塊的順序,方法可包括從關(guān)鍵字-值持久備份存儲檢索最高優(yōu)先級數(shù)據(jù)塊(例如,將其流入數(shù)據(jù)倉庫系統(tǒng)中的系統(tǒng)存儲器中),將數(shù)據(jù)塊的主要副本寫入數(shù)據(jù)倉庫系統(tǒng),和啟動將數(shù)據(jù)塊復(fù)制到數(shù)據(jù)倉庫系統(tǒng)中(例如,以創(chuàng)建數(shù)據(jù)塊的一個或多個次要副本),如1330示出。注意,在將主要和次要副本寫入磁盤之前,將數(shù)據(jù)塊流入系統(tǒng)存儲器可使得有可能比起當(dāng)數(shù)據(jù)必須從集群中的磁盤或從備份存儲檢索時更快地響應(yīng)于針對所述數(shù)據(jù)的查詢(例如,來自更快的存儲器)。如果有更多的數(shù)據(jù)塊要恢復(fù)(示為從1340肯定退出),那么方法可包括從關(guān)鍵字-值持久備份存儲檢索下一個最高優(yōu)先級數(shù)據(jù)塊,將下一個最高優(yōu)先級數(shù)據(jù)塊的主要副本寫入數(shù)據(jù)倉庫系統(tǒng),和啟動下一個最高優(yōu)先級數(shù)據(jù)塊的復(fù)制,如1350示出。如圖13示出,在1340和1350示出的操作可重復(fù),直到在這個恢復(fù)操作中要恢復(fù)的所有數(shù)據(jù)塊(例如,受檢測到的一個或多個故障影響的所有數(shù)據(jù)塊)已被恢復(fù)(示為從1340否定退出)。方法也可包括更新重建的部件的合適的元數(shù)據(jù)(例如,在每個節(jié)點的超級塊中),如1360示出,且此時,恢復(fù)操作可完成,如1370示出。注意,在其它實施方案中,一旦對應(yīng)數(shù)據(jù)塊被重建而非在恢復(fù)操作針對的所有數(shù)據(jù)塊已被重建之后,可更新超級塊數(shù)據(jù)結(jié)構(gòu)中的個別條目。
[0068]在一些實施方案中,當(dāng)從遠(yuǎn)程備份存儲執(zhí)行流式恢復(fù)時,可能顯著有益于排序數(shù)據(jù)塊的恢復(fù),使得其與傳入查詢訪問的可能性對齊。在一些實施方案中,數(shù)據(jù)塊可基于在最近什么時候和/或以什么樣的頻率在分布式數(shù)據(jù)倉庫中訪問所述數(shù)據(jù)塊來優(yōu)先化恢復(fù)。例如,在包含在三年的時間里存儲的數(shù)據(jù)的數(shù)據(jù)倉庫中,其中大多數(shù)查詢訪問在過去的一周內(nèi)存儲的數(shù)據(jù),將在過去的一周內(nèi)存儲的數(shù)據(jù)塊和與這些數(shù)據(jù)塊相關(guān)的數(shù)據(jù)塊(例如,被加入到事實表的事實和所有維表的數(shù)據(jù))首先引入系統(tǒng)存儲器可允許系統(tǒng)在恢復(fù)數(shù)據(jù)集中的所有數(shù)據(jù)之前響應(yīng)于大多數(shù)查詢。在這個實例中,一旦少于I %的數(shù)據(jù)被從備份存儲引入,針對數(shù)據(jù)集的查詢的典型分布就可有效執(zhí)行。
[0069]在一些實施方案中,包括時間序列數(shù)據(jù)的數(shù)據(jù)塊可被優(yōu)先化,使得存儲最新的數(shù)據(jù)的數(shù)據(jù)塊被首先恢復(fù)。在一些實施方案中,存儲更多最近創(chuàng)建(或更新)的數(shù)據(jù)的數(shù)據(jù)塊可被優(yōu)先于存儲更舊數(shù)據(jù)的數(shù)據(jù)塊,而不管其存儲數(shù)據(jù)的類型。在其它實施方案中,在假設(shè)剛被加載到系統(tǒng)中的表格將比存儲其它表格數(shù)據(jù)的數(shù)據(jù)塊更快地查詢或排序的情況下,恢復(fù)操作可首先優(yōu)先化表示最近加載數(shù)據(jù)庫表的數(shù)據(jù)塊。在其它實施方案中,可基于最近查詢模式的分析來優(yōu)先化數(shù)據(jù)塊以用于恢復(fù)。例如,如果數(shù)據(jù)塊的訪問模式有任何歪斜,那么當(dāng)從備份存儲恢復(fù)數(shù)據(jù)塊時,所述訪問模式可被延續(xù)。在一些實施方案中,最近運(yùn)行的查詢可被檢查以查看其訪問哪些數(shù)據(jù)塊和/或確定大量先前查詢的歷史訪問模式。例如,查詢歷史可由數(shù)據(jù)倉庫系統(tǒng)保持(例如,在日志或表格中),且可執(zhí)行對所述歷史的分析以確定數(shù)據(jù)的哪些表格和/或列被最頻繁地查詢。存儲被最頻繁地查詢的列數(shù)據(jù)的數(shù)據(jù)塊可被優(yōu)先化以用于恢復(fù)。在一些實施方案中,優(yōu)先化數(shù)據(jù)塊以用于恢復(fù)可基于當(dāng)前活動由動態(tài)優(yōu)先級進(jìn)行。例如,當(dāng)數(shù)據(jù)塊被從備份存儲臨時接入數(shù)據(jù)倉庫系統(tǒng)以滿足當(dāng)前查詢時,可增加存儲與已被臨時接入的數(shù)據(jù)塊相同列的數(shù)據(jù)的任何剩余的待恢復(fù)數(shù)據(jù)塊的優(yōu)先級。
[0070]在一些實施方案中,本文描述的超級塊數(shù)據(jù)結(jié)構(gòu)可每個條目(即,每個數(shù)據(jù)塊)用一個或多個計數(shù)器增強(qiáng),所述計數(shù)器的值反映在給定周期內(nèi)已訪問對應(yīng)數(shù)據(jù)塊的次數(shù)。例如,超級塊數(shù)據(jù)結(jié)構(gòu)中每一個可包括當(dāng)前訪問周期計數(shù)器和先前訪問周期計數(shù)器。在每個數(shù)據(jù)塊訪問時,可更新當(dāng)前訪問周期計數(shù)器。有時(例如,周期性地或響應(yīng)于某些事件,例如備份或恢復(fù)操作),當(dāng)前訪問周期計數(shù)器的計數(shù)值可被移動到先前訪問周期計數(shù)器(覆蓋其先前值),且當(dāng)前訪問周期計數(shù)器的值可被重置(例如,重置為零值)。在一些實施方案中,當(dāng)創(chuàng)建新的塊時,其超級塊數(shù)據(jù)結(jié)構(gòu)可被初始化以包括平均或中值當(dāng)前訪問周期計數(shù)器值,從而指示它們相當(dāng)有可能被訪問(例如,使得它們不會相對于其它數(shù)據(jù)塊處于不利地位)。在其它實施方案中,新的塊的當(dāng)前訪問周期計數(shù)器值可被初始化為默認(rèn)值(例如,最大計數(shù)值的20% )。在一些實施方案中,數(shù)據(jù)塊上的排序操作可將所有受影響的數(shù)據(jù)塊的計數(shù)器重置為初始值或默認(rèn)值。
[0071]在這個實例中,對于恢復(fù)操作,數(shù)據(jù)塊可基于當(dāng)前訪問周期計數(shù)器值和先前訪問周期計數(shù)器值的總和(從最高總和到最低總和)來排序。在另一實例中,數(shù)據(jù)塊可基于當(dāng)前訪問周期計數(shù)器值和先前訪問周期計數(shù)器值的加權(quán)平均值或加權(quán)總和(例如,二分之一的先前訪問周期計數(shù)器值加上當(dāng)前訪問周期計數(shù)器值)來排序。在一般情況下,在不同的實施方案中,數(shù)據(jù)塊可基于表示其當(dāng)前訪問周期計數(shù)器和其先前訪問周期計數(shù)器的值的邏輯組合和/或數(shù)學(xué)組合的值來排序。
[0072]圖14中以流程圖示出用于確定從關(guān)鍵字-值持久備份存儲恢復(fù)數(shù)據(jù)塊的順序的方法的一個實施方案。如在1410示出,在這個實例中,方法可包括客戶將針對給定數(shù)據(jù)塊的查詢請求發(fā)送到數(shù)據(jù)倉庫集群。如在這個實例中示出,方法可包括數(shù)據(jù)倉庫集群滿足請求并遞增與給定數(shù)據(jù)塊相關(guān)的當(dāng)前訪問周期計數(shù)器,以反映已訪問給定數(shù)據(jù)塊的事實,如1420示出。如果當(dāng)前訪問周期(例如,其中訪問的計數(shù)由當(dāng)前訪問周期計數(shù)器捕獲的當(dāng)前周期)尚未期滿(示為從1430否定退出),那么方法可包括繼續(xù)計數(shù)對給定數(shù)據(jù)塊和/或一個或多個其它數(shù)據(jù)塊的訪問(使用與那些其它數(shù)據(jù)塊相關(guān)的不同當(dāng)前訪問周期計數(shù)器)。這在圖14中由從1430的否定退出到1410的反饋示出。如果(或者當(dāng))當(dāng)前訪問周期期滿(示為從1430肯定退出),那么方法可包括將當(dāng)前訪問周期計數(shù)器值拷貝到先前訪問周期計數(shù)器(例如,覆蓋計數(shù)器的值),和將當(dāng)前訪問周期計數(shù)器的值重置為初始值或默認(rèn)值,如1440示出。
[0073]如在這個實例中示出,方法可包括繼續(xù)計數(shù)對給定數(shù)據(jù)塊和/或一個或多個其它數(shù)據(jù)塊的訪問(使用與那些其它數(shù)據(jù)塊相關(guān)的不同當(dāng)前訪問周期計數(shù)器),直到或除非有事情觸發(fā)恢復(fù)操作。這在圖14中由從1450的否定退出到1410的反饋示出。注意,在一些實施方案