用于高速緩存分層的方法和系統(tǒng)的制作方法
【專利摘要】一種用于存儲數(shù)據(jù)以供在計算機(jī)系統(tǒng)上運行的應(yīng)用檢索的方法和系統(tǒng),包括:提供包括至少一個高速緩存層和基層的分層高速緩存系統(tǒng);基于策略將數(shù)據(jù)存儲在所述至少一個高速緩存層和所述基層中的至少一個中;以及通過用于組織數(shù)據(jù)的裝置將所述數(shù)據(jù)的應(yīng)用視圖呈現(xiàn)給所述應(yīng)用。本發(fā)明可選地提供了附加的溢出層,并優(yōu)選地包括多個高速緩存層。
【專利說明】用于高速緩存分層的方法和系統(tǒng)
[0001]本申請要求于2010年8月25日提交的美國臨時申請N0.61/377,018的優(yōu)先權(quán),該美國臨時申請的全部內(nèi)容通過引用并入本文。
【技術(shù)領(lǐng)域】
[0002]本發(fā)明總體涉及計算機(jī)數(shù)據(jù)存儲,并且更具體地,涉及用于提供分層高速緩存結(jié)構(gòu)的方法和系統(tǒng)。
【背景技術(shù)】
[0003]近來,作為正變得廣泛可用且可容易訪問的商品存儲設(shè)備,已出現(xiàn)以下兩個具體新類別的存儲設(shè)備:基于閃存的固態(tài)驅(qū)動器(SSD)和云存儲器。本領(lǐng)域公知這些設(shè)備中的每一個在性能和成本上與計算機(jī)存儲系統(tǒng)中許多年來流行的旋轉(zhuǎn)介質(zhì)硬盤驅(qū)動器清楚區(qū)分。從純數(shù)據(jù)存儲角度來看,每個類別的存儲設(shè)備具有其自身的特定長處;例如,SSD較快,常規(guī)硬驅(qū)動器便宜,并且云存儲器較靈活。如當(dāng)前所使用,不同存儲設(shè)備可由給定計算機(jī)系統(tǒng)訪問,并且,使用不同數(shù)據(jù)流來管理與該存儲設(shè)備的交互。圖1示意了與多個類別的存儲設(shè)備的典型現(xiàn)有技術(shù)系統(tǒng)交互。
[0004]不同類別的存儲設(shè)備之間在特性、性能和成本上的差異一般大于每個類別內(nèi)的各個產(chǎn)品或技術(shù)之間的差異。由此,期望能夠在適當(dāng)時使用所有類別的存儲設(shè)備來管理數(shù)據(jù)存儲,以最佳地利用其每個長處。當(dāng)前在本領(lǐng)域中存在使SSD充當(dāng)存儲系統(tǒng)中的常規(guī)硬驅(qū)動器的高速緩存的新興趨勢,盡管實現(xiàn)方法是原始的并且是利用常規(guī)硬驅(qū)動器與SSD之間的簡化數(shù)據(jù)流、基于每系統(tǒng)來設(shè)計的。
[0005]一些年來到現(xiàn)在,已經(jīng)使用分層的思想(基于對數(shù)據(jù)應(yīng)用的策略將數(shù)據(jù)置于分離存儲設(shè)備上)來實現(xiàn)圍繞數(shù)據(jù)管理的商業(yè)目的,例如針對成本效率、數(shù)據(jù)保持或法規(guī)遵循。例如,可以對所有數(shù)據(jù)進(jìn)行存檔,可以對敏感數(shù)據(jù)進(jìn)行加密,可以將頻繁使用的數(shù)據(jù)保存在其用戶附近等等。這種類型的分層往往主要通過用于這些層的存儲設(shè)備或數(shù)據(jù)存儲系統(tǒng)而區(qū)分。
[0006]本發(fā)明的領(lǐng)域中的當(dāng)前解決方案一般是基于網(wǎng)絡(luò)的(器械或存儲區(qū)域網(wǎng)絡(luò)),使用基于塊的高速緩存和/或存儲設(shè)備(或者在云存儲器的情況下,存儲服務(wù))選項的固定列表,例如圖1所示。
[0007]盡管現(xiàn)有技術(shù)系統(tǒng)利用特定類別的存儲設(shè)備的優(yōu)勢,但是這些系統(tǒng)在其使用上受計算機(jī)系統(tǒng)與具體存儲設(shè)備之間的交互限制。此外,在應(yīng)用級,通常必須進(jìn)行適應(yīng),以從不同類別的存儲設(shè)備進(jìn)行數(shù)據(jù)檢索。此外,從不同存儲設(shè)備類別的不同優(yōu)勢實現(xiàn)極少(如果有的話)協(xié)同效應(yīng),并且因此,現(xiàn)有技術(shù)系統(tǒng)限于存儲設(shè)備的物理表現(xiàn),這是由于現(xiàn)有技術(shù)系統(tǒng)將獨立地執(zhí)行,而與系統(tǒng)中的其他不同類別的存儲設(shè)備無關(guān)。
[0008]因此,本發(fā)明的目的是提供一種新系統(tǒng)和方法,用于提供分層高速緩存結(jié)構(gòu),以實現(xiàn)由不同類別的存儲設(shè)備的比可在獨立使用這些不同類別的存儲設(shè)備時實現(xiàn)的優(yōu)勢高的優(yōu)勢產(chǎn)生的效益。
【發(fā)明內(nèi)容】
[0009]本發(fā)明提供了一種新系統(tǒng)和方法,用于透明地將不同類別的存儲設(shè)備集成在單個裝置內(nèi)以組織數(shù)據(jù),從而實現(xiàn)使用這些不同類別的存儲設(shè)備的協(xié)同效益,該協(xié)同效益擴(kuò)展超過獨立地且利用每一個自身的用于組織數(shù)據(jù)的裝置進(jìn)行操作的每個類別的存儲設(shè)備的優(yōu)勢。本發(fā)明提供了一種推廣的高速緩存系統(tǒng)和方法,可以將任何類別的存儲設(shè)備高速緩存在任何其他類別的存儲設(shè)備上,并可選地在多個類別和類型的存儲設(shè)備當(dāng)中以集成的方式提供這種高速緩存。
[0010]根據(jù)本發(fā)明的一個實施例,提供了一種用于存儲數(shù)據(jù)以供在計算機(jī)系統(tǒng)上運行的應(yīng)用檢索的方法,包括:提供包括至少一個高速緩存層和基層的分層高速緩存系統(tǒng);基于策略將數(shù)據(jù)存儲在所述高速緩存層和所述基層中的至少一個中;以及通過用于組織數(shù)據(jù)的裝置將所述數(shù)據(jù)的應(yīng)用視圖呈現(xiàn)給所述應(yīng)用。優(yōu)選地,所述用于組織數(shù)據(jù)的裝置包括至少一個高速緩存層中的每一個所述基層的元數(shù)據(jù)信息。此外,所述至少一個高速緩存層中的每一個和所述基層布置在不同存儲資源上,并且所述用于組織數(shù)據(jù)的裝置包括所述不同存儲資源中的每一個的元數(shù)據(jù)信息。
[0011]根據(jù)本發(fā)明的一方面,所述方法包括:提供至少一個溢出層,其中,所述溢出層布置在與所述至少一個高速緩存層中的每一個和所述基層不同的存儲資源上;以及其中,所述用于組織數(shù)據(jù)的裝置包括所述溢出層的元數(shù)據(jù)信息。
[0012]根據(jù)本發(fā)明的另一方面,所述至少一個高速緩存層包括多個分層的高速緩存層。所述至少一個高速緩存層可以是結(jié)合操作系統(tǒng)而使用的操作系統(tǒng)文件緩沖高速緩存。
[0013]根據(jù)本發(fā)明的另一方面,所述多個高速緩存層中的每一個是在固態(tài)驅(qū)動器上提供的,所述基層是在硬盤驅(qū)動器上提供的,并且所述溢出層是在云存儲資源上提供的。
[0014]根據(jù)本發(fā)明的另一方面,所述用于組織數(shù)據(jù)的裝置存儲在所述硬盤驅(qū)動器上。
[0015]根據(jù)本發(fā)明的另一方面,所述方法還包括:將所述數(shù)據(jù)存儲在所述基層上;以及將所述數(shù)據(jù)高速緩存在所述多個高速緩存層中的一個或多個上,其中,較高級別高速緩存層將數(shù)據(jù)高速緩存在較低級別高速緩存層上。
[0016]根據(jù)本發(fā)明的另一方面,每個高速緩存層級別包括兩個或更多個存儲資源。
[0017]根據(jù)本發(fā)明的另一方面,所述用于組織數(shù)據(jù)的裝置對正在使用的特定存儲設(shè)備不可知(agnostic)。
[0018]根據(jù)本發(fā)明的另一方面,步驟:通過攔截系統(tǒng)來攔截要執(zhí)行的用于組織數(shù)據(jù)的裝置的操作或者與所述用于組織數(shù)據(jù)的裝置無關(guān)地處理的操作。
[0019]根據(jù)本發(fā)明的另一方面,所述方法還包括以下步驟:根據(jù)所述策略將輸入/輸出操作不相關(guān)聯(lián),使得操作的至少一部分被所述攔截系統(tǒng)攔截并根據(jù)所述策略而處理。
[0020]根據(jù)本發(fā)明的另一方面,所述策略由策略模塊提供。
[0021]根據(jù)本發(fā)明的另一方面,所述策略模塊與所述攔截系統(tǒng)構(gòu)成一個整體。
[0022]根據(jù)本發(fā)明的另一方面,所述策略模塊與所述用于組織數(shù)據(jù)的裝置構(gòu)成一個整體。
[0023]根據(jù)本發(fā)明的另一方面,攔截步驟還包括以下各項之一:(a)將被攔截的操作傳遞至在存儲資源與所述攔截系統(tǒng)之間提供的數(shù)據(jù)變換引擎;(b)將被攔截的操作的完成記入日志;以及(C)改變被攔截的操作并將其繼續(xù)傳遞至所述用于組織數(shù)據(jù)的裝置。
[0024]根據(jù)本發(fā)明的另一方面,所述方法還包括:在所述攔截系統(tǒng)與所述存儲資源之間提供數(shù)據(jù)變換引擎。
[0025]根據(jù)本發(fā)明的另一方面,所述方法還包括以下步驟:在所述用于組織數(shù)據(jù)的裝置外執(zhí)行策略;所述執(zhí)行策略的步驟由所述數(shù)據(jù)變換引擎執(zhí)行。
[0026]根據(jù)本發(fā)明的另一方面,所述數(shù)據(jù)變換引擎還包括:讀取高速緩存模塊,用于執(zhí)行讀取操作,以找到其上存在數(shù)據(jù)的最高高速緩存層并檢索所述數(shù)據(jù)。
[0027]根據(jù)本發(fā)明的另一方面,所述數(shù)據(jù)變換引擎還包括:寫入高速緩存模塊,用于向不同高速緩存層級別執(zhí)行寫入操作。
[0028]根據(jù)本發(fā)明的另一方面,所述數(shù)據(jù)變換引擎還包括:加密模塊,用于在數(shù)據(jù)經(jīng)過所述用于組織數(shù)據(jù)的裝置之前對數(shù)據(jù)進(jìn)行加密和解密。
[0029]根據(jù)本發(fā)明的另一方面,所述數(shù)據(jù)變換引擎還包括:完整性模塊,用于將數(shù)據(jù)的屬性與元數(shù)據(jù)信息中存儲的屬性進(jìn)行比較。
[0030]根據(jù)本發(fā)明的另一方面,所述數(shù)據(jù)變換引擎還包括:重復(fù)刪除模塊,用于執(zhí)行重復(fù)刪除步驟。
[0031]根據(jù)本發(fā)明的另一方面,所述數(shù)據(jù)變換引擎還包括:溢出模塊,用于響應(yīng)于失敗的寫入操作,將數(shù)據(jù)寫入至溢出高速緩存層。
[0032]根據(jù)本發(fā)明的另一方面,所述方法還包括:提供數(shù)據(jù)存儲接口,所述數(shù)據(jù)存儲接口用于在所述存儲資源與所述數(shù)據(jù)變換引擎之間提供操作接口。
[0033]根據(jù)本發(fā)明的另一方面,所述方法還包括以下步驟:抽象數(shù)據(jù)存儲資源信息,使得每個數(shù)據(jù)存儲資源對所述數(shù)據(jù)變換引擎來說統(tǒng)一地出現(xiàn)。
[0034]根據(jù)本發(fā)明的另一方面,所述方法還包括以下步驟:對至少兩個或更多個數(shù)據(jù)存儲資源成池(pool)。
[0035]根據(jù)本發(fā)明的另一實施例,提供了一種用于存儲數(shù)據(jù)以供在計算機(jī)系統(tǒng)上運行的應(yīng)用檢索的系統(tǒng),包括:分層高速緩存系統(tǒng),包括至少一個高速緩存層和基層,其中,所述數(shù)據(jù)是基于策略而存儲在所述至少一個高速緩存層和所述基層中的至少一個中的;以及用于組織數(shù)據(jù)的裝置,用于將所述數(shù)據(jù)的應(yīng)用視圖呈現(xiàn)給所述應(yīng)用,其中,所述用于組織數(shù)據(jù)的裝置包括至少一個高速緩存層中的每一個和所述基層的元數(shù)據(jù)信息。
[0036]根據(jù)該實施例的一方面,所述至少一個高速緩存層中的每一個和所述基層布置在不同存儲資源上;以及此外,其中,所述用于組織數(shù)據(jù)的裝置包括所述不同存儲資源中的每一個的兀數(shù)據(jù)信息。
[0037]根據(jù)該實施例的另一方面,所述系統(tǒng)還包括:至少一個溢出層,其中,所述溢出層布置在與所述至少一個高速緩存層中的每一個和所述基層不同的存儲資源上;以及其中,所述用于組織數(shù)據(jù)的裝置包括所述溢出層的元數(shù)據(jù)信息。
[0038]根據(jù)該實施例的另一方面,所述至少一個高速緩存層包括多個分層的高速緩存層。
[0039]根據(jù)該實施例的另一方面,其中,所述多個高速緩存層中的每一個是在固態(tài)驅(qū)動器上提供的,所述基層是在硬盤驅(qū)動器上提供的,并且所述溢出層是在云存儲資源上提供的。[0040]根據(jù)該實施例的另一方面,所述用于組織數(shù)據(jù)的裝置存儲在所述硬盤驅(qū)動器上。
[0041]根據(jù)該實施例的另一方面,所述數(shù)據(jù)存儲在所述基層上以及高速緩存在所述多個高速緩存層中的一個或多個上,其中,較高級別高速緩存層將數(shù)據(jù)高速緩存在較低級別高速緩存層上。
[0042]根據(jù)該實施例的另一方面,每個高速緩存層級別包括兩個或更多個存儲資源。
[0043]根據(jù)該實施例的另一方面,所述用于組織數(shù)據(jù)的裝置對正在使用的特定存儲設(shè)備不可知。
[0044]根據(jù)該實施例的另一方面,還包括:攔截系統(tǒng),用于攔截要執(zhí)行的用于組織數(shù)據(jù)的裝置的操作或者與所述用于組織數(shù)據(jù)的裝置無關(guān)地處理的操作。
[0045]根據(jù)該實施例的另一方面,其中,所述攔截系統(tǒng)適于根據(jù)所述策略將輸入/輸出操作不相關(guān)聯(lián),使得操作的至少一部分被所述攔截系統(tǒng)攔截并根據(jù)所述策略而處理。
[0046]根據(jù)該實施例的另一方面,所述系統(tǒng)還包括用于提供所述策略的策略模塊。
[0047]根據(jù)該實施例的另一方面,所述策略模塊與所述攔截系統(tǒng)構(gòu)成一個整體。
[0048]根據(jù)該實施例的另一方面,所述策略模塊與所述用于組織數(shù)據(jù)的裝置構(gòu)成一個整體。
[0049]根據(jù)該實施例的另一方面,所述攔截系統(tǒng)包括以下至少一項:(a)用于將被攔截的操作傳遞至在存儲資源與所述攔截系統(tǒng)之間提供的數(shù)據(jù)變換引擎的裝置;(b)用于將被攔截的操作的完成記入日志的裝置;以及(C)用于改變被攔截的操作并將其繼續(xù)傳遞至所述用于組織數(shù)據(jù)的裝置的裝置。
[0050]根據(jù)該實施例的另一方面,在所述攔截系統(tǒng)與所述存儲資源之間提供數(shù)據(jù)變換引擎。
[0051]根據(jù)該實施例的另一方面,所述數(shù)據(jù)變換引擎還包括:讀取高速緩存模塊,用于執(zhí)行讀取操作,以找到其上存在數(shù)據(jù)的最高高速緩存層并檢索所述數(shù)據(jù)。
[0052]根據(jù)該實施例的另一方面,所述數(shù)據(jù)變換引擎還包括:寫入高速緩存模塊,用于向不同高速緩存層級別執(zhí)行寫入操作。
[0053]根據(jù)該實施例的另一方面,所述數(shù)據(jù)變換引擎還包括:加密模塊,用于在數(shù)據(jù)經(jīng)過所述用于組織數(shù)據(jù)的裝置之前對數(shù)據(jù)進(jìn)行加密和解密。
[0054]根據(jù)該實施例的另一方面,所述數(shù)據(jù)變換引擎還包括:完整性模塊,用于將數(shù)據(jù)的屬性與元數(shù)據(jù)信息中存儲的屬性進(jìn)行比較。
[0055]根據(jù)該實施例的另一方面,所述數(shù)據(jù)變換引擎還包括:重復(fù)刪除模塊,用于執(zhí)行重復(fù)刪除步驟。
[0056]根據(jù)該實施例的另一方面,所述數(shù)據(jù)變換引擎還包括:溢出模塊,用于響應(yīng)于失敗的寫入操作,將數(shù)據(jù)寫入至溢出高速緩存層。
[0057]根據(jù)該實施例的另一方面,所述系統(tǒng)還包括:數(shù)據(jù)存儲接口,用于在所述存儲資源與所述數(shù)據(jù)變換引擎之間提供操作接口。
[0058]根據(jù)該實施例的另一方面,對至少兩個或更多個數(shù)據(jù)存儲資源成池。
【專利附圖】
【附圖說明】
[0059]現(xiàn)在將參照附圖,僅作為示例,描述實施例,在附圖中: 圖1示出了計算機(jī)的現(xiàn)有技術(shù)存儲模型,其中,在管理和互連數(shù)據(jù)流兩方面,每個存儲資源或數(shù)據(jù)存儲系統(tǒng)均分離。
[0060]圖2示出了根據(jù)本發(fā)明的存儲模型。
[0061]圖3示出了根據(jù)本發(fā)明的一個實施例的一般存儲分層模型。
[0062]圖4示出了圖3的存儲模型的改善版本。
[0063]圖5示出了根據(jù)本發(fā)明的一個實施方式的框圖。
[0064]圖6示出了用作復(fù)合存儲資源的min-OR存儲樹的示例,對4路RAIDO配置進(jìn)行仿真。
[0065]圖7示出了用作復(fù)合存儲資源的示例min-OR存儲樹,其示出了與作為RAID6等效配置的鏡之一成鏡像的更復(fù)雜3路RAIDl。
[0066]圖8示出了可實現(xiàn)本發(fā)明的推廣計算機(jī)系統(tǒng)。
[0067]圖9示出了與本發(fā)明一起使用的代表性數(shù)據(jù)變換引擎。
【具體實施方式】
[0068]本發(fā)明提供了一種新系統(tǒng)和方法,用于透明地將不同類別的存儲設(shè)備集成在單個文件系統(tǒng)內(nèi),從而實現(xiàn)使用這些不同類別的存儲設(shè)備的協(xié)同效益,該協(xié)同效益擴(kuò)展超過獨立地且利用每一個自身的文件系統(tǒng)進(jìn)行操作的每個類別的存儲設(shè)備的優(yōu)勢??紤]到以下描述,對本領(lǐng)域技術(shù)人員來說將變得顯而易見,本發(fā)明提供了一種推廣的高速緩存系統(tǒng)和方法,可以將任何類別的存儲設(shè)備高速緩存在任何其他類別的存儲設(shè)備上,并可選地在多個類別和類型的存儲設(shè)備當(dāng)中以集成的方式提供這種高速緩存。盡管關(guān)于文件系統(tǒng)描述了本發(fā)明以便于理解,但是將意識到,可以使用任何用于組織數(shù)據(jù)的裝置,包括但不限于數(shù)據(jù)庫,以及特別地,對象數(shù)據(jù)庫、鍵值存儲器、一些網(wǎng)絡(luò)協(xié)議和一些共享數(shù)據(jù)系統(tǒng)。
[0069]在實現(xiàn)上述功能時, 申請人:面臨著以下問題:(a)如何透明地集成不同存儲設(shè)備,使得存儲用戶體驗到本文描述的效益,而無需改變其應(yīng)用或操作系統(tǒng);(b)如何對可用的許多選項當(dāng)中存儲設(shè)備的選擇不可知,使得在新技術(shù)出現(xiàn)時可以實現(xiàn)本發(fā)明;(c)如何在總體級別上提供存儲設(shè)備的安全性和完整性;以及(d)如何應(yīng)付較慢或遙遠(yuǎn)的存儲設(shè)備的延遲問題。以下是對如何解決這些問題以得到本發(fā)明的簡要的頂級描述。對實施本發(fā)明的更詳細(xì)描述將緊隨其后。
[0070]已經(jīng)發(fā)現(xiàn),可以通過保留對主數(shù)據(jù)存儲系統(tǒng)(例如,文件系統(tǒng)中的文件系統(tǒng)元數(shù)據(jù))的現(xiàn)有用戶可見組織并使數(shù)據(jù)放置在獨立控制的相同或其他存儲設(shè)備上,解決透明集成問題。這將如圖1所示的現(xiàn)有技術(shù)系統(tǒng)的數(shù)據(jù)流和組織改變?yōu)槿鐖D2所示的數(shù)據(jù)流和組織,在圖2中,根據(jù)本發(fā)明,存儲器的每個層級或?qū)邮歉蛯蛹壍那岸恕?br>
[0071]關(guān)于不可知問題,已經(jīng)發(fā)現(xiàn),將系統(tǒng)中的每個存儲設(shè)備用作一般數(shù)據(jù)存儲資源,并抽象掉潛在存儲機(jī)制以提供針對看起來相同并因此被不可知地對待的每個類別的存儲設(shè)備而允許的所有設(shè)備的統(tǒng)一接口,同時仍保留從特定類別的存儲設(shè)備可用的固有物理優(yōu)勢。
[0072]通過提供對經(jīng)過系統(tǒng)的所有數(shù)據(jù)的基于策略的處理,解決了安全性和完整性問題,該數(shù)據(jù)包括在用戶/擁有者的控制之外某處存儲的數(shù)據(jù),如云存儲器的情況中可能的那樣。此外,這是提供所有設(shè)備的統(tǒng)一接口的另一優(yōu)勢,提供統(tǒng)一接口使得這些設(shè)備可以被不可知地對待,并因此同時使其上的數(shù)據(jù)受到基于策略的處理,而不論存儲設(shè)備類別或者數(shù)據(jù)所駐留于的特定存儲設(shè)備如何。
[0073]通過以下方式來解決延遲問題:使用多個存儲設(shè)備的透明集成來提供存儲層的高速緩存級聯(lián),以優(yōu)化性能。即,可以應(yīng)用規(guī)則以使得當(dāng)確定在哪個類別上存儲數(shù)據(jù)時,可以說明特定類別的數(shù)據(jù)存儲器的物理特性。可替換地,可以一開始就應(yīng)用系統(tǒng)級設(shè)計,從而給更高級別的層提供更快的存儲器類別。
[0074]本發(fā)明一般在計算機(jī)系統(tǒng)的上下文內(nèi)操作,并用于提供對一般已知計算機(jī)系統(tǒng)來說可用的數(shù)據(jù)存儲能力的改進(jìn),該一般已知計算機(jī)系統(tǒng)的示例性系統(tǒng)在圖8中示出。如圖所示,計算機(jī)系統(tǒng)20具有多個物理和邏輯組件,包括中央處理單元(“CPU”)24、隨機(jī)存取存儲器(“RAM”)28、輸入/輸出(“I/O”)接口 32、網(wǎng)絡(luò)接口 36、非易失性存儲器40和局部總線44,局部總線44使CPU 24能夠與其他組件通信。CPU 24執(zhí)行操作系統(tǒng)和多個軟件系統(tǒng)。RAM 28給CPU 24提供反應(yīng)相對靈敏的易失性存儲器。I/O接口 32允許從一個或多個設(shè)備(例如鍵盤、鼠標(biāo)等)接收輸入,并將信息輸出至輸出設(shè)備(例如顯示器和/或揚聲器)。網(wǎng)絡(luò)接口 36允許與其他系統(tǒng)進(jìn)行通信。非易失性存儲器40存儲操作系統(tǒng)和程序。在計算機(jī)系統(tǒng)20的操作期間,可以從非易失性存儲器40檢索操作系統(tǒng)、程序和數(shù)據(jù),并將其置于RAM28中以便于執(zhí)行。
[0075]圖2的示例示出了本發(fā)明的一個頂級實施方式,其中,計算機(jī)系統(tǒng)200從分層高速緩存結(jié)構(gòu)訪問數(shù)據(jù),其中,該高速緩存結(jié)構(gòu)包括利用SSD實現(xiàn)的高速緩存層210、利用常規(guī)硬驅(qū)動器實現(xiàn)的基層220和利用云存儲服務(wù)實現(xiàn)的溢出層230。如圖所示,文件系統(tǒng)240仍可以駐留于基層220上,S卩,駐留于硬盤驅(qū)動器上,其中,其通常駐留于已知計算機(jī)系統(tǒng)中。
[0076]現(xiàn)在參照圖3,示出了根據(jù)本發(fā)明的頂級數(shù)據(jù)流模型。文件系統(tǒng)340是數(shù)據(jù)存儲系統(tǒng)的擴(kuò)展,并可以位于計算機(jī)300可訪問的任何存儲設(shè)備上。示出了一系列高速緩存層310,還示出了一個基層320和溢出層330。每個高速緩存層可以包括分別處于如所示的相應(yīng)層內(nèi)的任何數(shù)目的存儲資源311、321和331。根據(jù)本發(fā)明,較高級別的層將來自其他層的數(shù)據(jù)較低地高速緩存在堆棧中。在高速緩存層310上,存在以下層級:該層級使得較高級別高速緩存層310將來自高速緩存層的數(shù)據(jù)高速緩存在較低級別310a上?;鶎?20是數(shù)據(jù)的硬源,并且在該級別處完成存儲。溢出層330是在基層320為滿的情況下數(shù)據(jù)所處的位置。
[0077]—般地,存在一個或多個高速緩存層310、單個基層320,溢出層330是可選地提供的,盡管可以存在多個溢出層330??梢允褂萌魏晤悇e的數(shù)據(jù)存儲設(shè)備,并可以針對多于一個層使用任何類別的數(shù)據(jù)存儲設(shè)備。優(yōu)選地,在每個層上使用的特定類別的存儲器是如圖2所示的存儲器,但是,還可想到其他類別的存儲器。例如,可以在優(yōu)選地結(jié)合操作系統(tǒng)使用的操作系統(tǒng)文件緩沖高速緩存上實現(xiàn)多個高速緩存層。在該示例中,本發(fā)明與操作系統(tǒng)協(xié)作使用文件緩沖高速緩存,但是文件緩沖器不用作專用資源。即,盡管低于文件緩沖高速緩存的高速緩存將隱式地使用文件緩沖高速緩存,但是本發(fā)明可想到的多于此,其中,存在對某內(nèi)容是否進(jìn)入文件緩沖高速緩存中的顯式控制,并且本發(fā)明以超出在現(xiàn)有系統(tǒng)中對文件緩沖高速緩存的典型使用的方式進(jìn)行操作。
[0078]本發(fā)明還允許文件系統(tǒng)340元數(shù)據(jù)存儲在任何存儲資源上,該存儲資源包括還用于其他目的的存儲資源。實際上,將通過計算機(jī)系統(tǒng)300來移動所有數(shù)據(jù),此時,將所有數(shù)據(jù)從一層布置或移動至下一層。即,計算機(jī)系統(tǒng)300負(fù)責(zé)基于處于其上的用于執(zhí)行本發(fā)明的指令和基于文件系統(tǒng)340元數(shù)據(jù),在本發(fā)明的層高速緩存級別之間傳送數(shù)據(jù)。
[0079]盡管圖3示出了本發(fā)明的特定頂級實施方式,但是圖3所示的數(shù)據(jù)具有單個類型。參照圖4,示出了并入有多種類型的數(shù)據(jù)450a、450b、450c和450n的本發(fā)明的推廣實施方式。例如,數(shù)據(jù)類型450a存在于兩個高速緩存層410a和410b上以及基層420上。數(shù)據(jù)類型450b和450c存在于不同高速緩存層上,但存在于相同基層和溢出層上。存儲資源411、421和431分別存在于高速緩存層410、基層420和溢出層430上。如本領(lǐng)域技術(shù)人員將意識到,本發(fā)明可想到存儲在任何高速緩存層上和任何特定類型的存儲資源上的任何類型的數(shù)據(jù),如圖4的推廣情況所示。對于每種類型的數(shù)據(jù),如以下將描述的策略所確定,存在分層堆棧,具有所有高速緩存層和溢出層選項,并且僅需要基層。數(shù)據(jù)按順序流經(jīng)其分層堆棧。由于顯式地處于存儲資源的名字空間中的數(shù)據(jù)分離特征或者隱式地由于針對所存儲的數(shù)據(jù)的命名算法,相同存儲資源可以無沖突地出現(xiàn)在多個分層堆棧中。以下描述這些特征的實現(xiàn)的細(xì)節(jié)。如本領(lǐng)域技術(shù)人員將意識到,本發(fā)明提供了一種新范例,通過該范例,可以在多個類別的存儲資源上管理和存儲數(shù)據(jù)。
[0080]盡管圖3和4已被描述為包括存儲資源,但是這些存儲資源也可以是在物理資源自身上方并入有其他組織信息的數(shù)據(jù)存儲系統(tǒng)。本發(fā)明還提供了用于在每個層上組織存儲資源的結(jié)構(gòu)。還可以將圖3和4中的每個存儲資源作為數(shù)據(jù)存儲樹進(jìn)行組織。如果樹中的特定節(jié)點是葉子,則在本發(fā)明的某級實施方式處,其為具有統(tǒng)一接口的數(shù)據(jù)存儲資源。如果特定節(jié)點是內(nèi)部節(jié)點,那么針對該節(jié)點存儲數(shù)據(jù)表示針對其最小數(shù)目的子節(jié)點存儲數(shù)據(jù)。相應(yīng)地,這種存儲樹的內(nèi)節(jié)點是該特定分支的頂存儲層級,并對文件系統(tǒng)來說作為包括用于管理源自內(nèi)部節(jié)點的葉子存儲資源的語義的單個存儲資源而出現(xiàn)。此外,本發(fā)明可想到對包括原始塊存儲器(例如,盤設(shè)備)、文件系統(tǒng)和鍵值存儲器的多種形式的數(shù)據(jù)存儲系統(tǒng)或存儲資源的支持。這些存儲資源中的每一個還可以具有復(fù)雜結(jié)構(gòu),并包括例如來自分離盤的塊,但是,提出了向本發(fā)明的文件系統(tǒng)340、440的唯一輸出,以實現(xiàn)本發(fā)明并隨后將視圖提供給對存儲資源的這種潛在細(xì)節(jié)不可知的使用的應(yīng)用或操作系統(tǒng)??紤]到以下描述,這些特征的實現(xiàn)的細(xì)節(jié)將變得顯而易見。
[0081]總的來說,本發(fā)明具有以下非限制性的各自獨特的特征:
a)本發(fā)明使用一般高速緩存分層存儲模型,其中,每個(策略確定的)類別的數(shù)據(jù)具有其自身的層堆棧;
b)本發(fā)明對正在使用的特定存儲設(shè)備不可知;
c)本發(fā)明對用戶來說透明,這是由于其可以作為現(xiàn)有數(shù)據(jù)存儲系統(tǒng)的擴(kuò)展(例如,文件系統(tǒng))而創(chuàng)建;
d)本發(fā)明基于對數(shù)據(jù)存儲系統(tǒng)的用戶可見組織,而不是潛在的實現(xiàn),因此,例如對于文件系統(tǒng),本發(fā)明是基于文件的,而不是基于塊的;
e)本發(fā)明可以被布置為現(xiàn)有操作系統(tǒng)安裝的增加設(shè)施或者被封裝為網(wǎng)絡(luò)器械。
[0082]此外,本發(fā)明能夠針對提供高于實際存儲資源的更高級抽象作為其主接口的除文件系統(tǒng)外的數(shù)據(jù)存儲系統(tǒng)(例如,數(shù)據(jù)庫,以及特別地,對象數(shù)據(jù)庫、鍵值存儲器、一些網(wǎng)絡(luò)協(xié)議和一些共享數(shù)據(jù)系統(tǒng))提供這些特征。
[0083]現(xiàn)在已描述本發(fā)明的結(jié)果的優(yōu)勢和頂級細(xì)節(jié),現(xiàn)在將特別參照圖5來描述用于使本領(lǐng)域技術(shù)人員能夠?qū)嵤┍景l(fā)明的優(yōu)選系統(tǒng)和方法,在圖5中,示出了本發(fā)明的優(yōu)選實施例。在圖5中,示出了文件系統(tǒng)540,文件系統(tǒng)540呈現(xiàn)面向計算機(jī)系統(tǒng)上的應(yīng)用510的接口,并與攔截系統(tǒng)560進(jìn)行通信。攔截系統(tǒng)560按來自策略模塊570的指令進(jìn)行操作,以攔截在提供根據(jù)本發(fā)明的高速緩存分層存儲系統(tǒng)時使用的各個數(shù)據(jù)存儲設(shè)備590之間移動的數(shù)據(jù)。提供了數(shù)據(jù)變換引擎580和數(shù)據(jù)存儲接口 585,以在攔截系統(tǒng)560或文件系統(tǒng)540在數(shù)據(jù)上執(zhí)行操作之前處理數(shù)據(jù),如下所述。
[0084]文件系統(tǒng)
本發(fā)明需要使用文件系統(tǒng)540。本領(lǐng)域公知,文件系統(tǒng)540、其一般性質(zhì)和功能是操作系統(tǒng)/應(yīng)用與數(shù)據(jù)存儲系統(tǒng)之間的接口。優(yōu)選地,文件系統(tǒng)540呈現(xiàn)面向應(yīng)用的、應(yīng)用能夠在未被修改的情況下使用的文件系統(tǒng)接口。以這種方式,文件系統(tǒng)540可以是以優(yōu)化的方式利用和使用本發(fā)明教導(dǎo)的新型文件系統(tǒng),其可以是現(xiàn)有文件系統(tǒng)的修改版本,或者其可以是現(xiàn)有文件系統(tǒng)的擴(kuò)展版本。在每一種情況下,保留全部文件系統(tǒng)功能,使得可以將數(shù)據(jù)存儲在文件系統(tǒng)中,但是,通過將與選擇策略相匹配的文件系統(tǒng)操作重定向至被稱為攔截系統(tǒng)560的模塊,來以與現(xiàn)有技術(shù)文件系統(tǒng)操作不同的方式處理這些文件系統(tǒng)操作。在擴(kuò)展現(xiàn)有文件系統(tǒng)的情況下,在 申請人:的名稱為“System and Method For Extending DataStorage System Functions”的、申請?zhí)枮镻CT/CA2011/050514的共同待審PCT申請中公開了一種用于實現(xiàn)向攔截系統(tǒng)560的這種重定向的特定系統(tǒng)和方法,該PCT申請的內(nèi)容通過引用并入本文。
[0085]對于不提供文件系統(tǒng)接口的數(shù)據(jù)存儲系統(tǒng),本發(fā)明將提供該數(shù)據(jù)存儲系統(tǒng)的優(yōu)選接口,并且相同原理將以與如下操作類似方式適用:按照針對文件系統(tǒng)而進(jìn)行的情況,修改其他數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)流。
[0086]攔截系統(tǒng)
為了利用本發(fā)明的增加功能的實現(xiàn)來擴(kuò)展正常文件系統(tǒng)功能,提供了攔截系統(tǒng)560。攔截系統(tǒng)560適于適當(dāng)?shù)財r截文件系統(tǒng)操作,并允許在文件系統(tǒng)自身外透明地處理這些操作。可選地,攔截系統(tǒng)560可以是文件系統(tǒng)自身的擴(kuò)展,或者可以通過利用內(nèi)置操作系統(tǒng)功能來提供攔截系統(tǒng)560,或者可以以其他方式(例如,通過本領(lǐng)域中當(dāng)前可用的商業(yè)產(chǎn)品)提供攔截系統(tǒng)560。本發(fā)明不限于攔截系統(tǒng)560的特定實現(xiàn)。
[0087]出于本發(fā)明的目的,提供了攔截系統(tǒng)560,以根據(jù)策略將數(shù)據(jù)存儲系統(tǒng)中的輸入/輸出操作不相關(guān)聯(lián),使得一個操作集合按對數(shù)據(jù)存儲系統(tǒng)來說正常的方式進(jìn)行,并且另一集合由攔截系統(tǒng)根據(jù)策略來解釋。這樣,數(shù)據(jù)存儲系統(tǒng)保留允許以下各項的其原始功能:
(a)由于其語義被保留而一般對數(shù)據(jù)存儲系統(tǒng)的用戶來說透明的攔截系統(tǒng)560的操作;(b)攔截系統(tǒng)所要擴(kuò)展的數(shù)據(jù)存儲系統(tǒng)的語義;以及(c)攔截系統(tǒng)在實現(xiàn)其策略時可用作資源的數(shù)據(jù)存儲系統(tǒng)自身。
[0088]在不脫離本發(fā)明的一般性質(zhì)和教導(dǎo)的前提下,本發(fā)明可想到從以上功能的變型和偏差。例如,在實現(xiàn)包括根據(jù)上下文不同地出現(xiàn)的數(shù)據(jù)(數(shù)據(jù)多態(tài)性)的策略的情況下,可以不保留數(shù)據(jù)存儲系統(tǒng)的語義,并且攔截系統(tǒng)可以蓋寫數(shù)據(jù)存儲系統(tǒng)的語義。這也是一種按照上述(b)擴(kuò)展文件系統(tǒng)語義的方式。
[0089]關(guān)于上述(C),可以想到,策略可以規(guī)定:應(yīng)當(dāng)對特定文件進(jìn)行加密,但在其他方面卻以與這些文件要不然將是的情況相同的方式將其存儲在相同文件系統(tǒng)上,或者,攔截系統(tǒng)可以維持文件系統(tǒng)上的數(shù)據(jù)庫,以輔助其工作,或者,文件系統(tǒng)可以保持負(fù)責(zé)所有元數(shù)據(jù),并且攔截系統(tǒng)可以接管對一些或所有數(shù)據(jù)的責(zé)任,如本發(fā)明的優(yōu)選實施例中的情況那樣。
[0090]相應(yīng)地,攔截系統(tǒng)560在分層高速緩沖存儲器的潛在結(jié)構(gòu)與在應(yīng)用級呈現(xiàn)的文件系統(tǒng)540之間提供接口。應(yīng)當(dāng)注意,文件系統(tǒng)自身可以是例如復(fù)雜復(fù)合文件系統(tǒng),以允許元數(shù)據(jù)物理分布,該文件系統(tǒng)提供分布式高速緩存和加鎖管理,以確保數(shù)據(jù)完整性。
[0091]利用如上所述的攔截系統(tǒng),不論攔截系統(tǒng)決定如何放置數(shù)據(jù),對數(shù)據(jù)存儲系統(tǒng)的用戶可見組織都清楚地不變。這是提供對不同存儲設(shè)備的透明集成的問題的一個解決方案,如前所討論。然而,給定存儲設(shè)備的不同特性和類別,則用戶體驗還受攔截系統(tǒng)可進(jìn)行的數(shù)據(jù)放置的選擇的性能特性影響。解決該問題的典型方式是利用高速緩存,并且,給定攔截系統(tǒng)將數(shù)據(jù)放置在任何位置的能力,則如上所述,本發(fā)明應(yīng)用高速緩存分層存儲模型,以輔助針對用戶及其應(yīng)用優(yōu)化性能。
[0092]策略
本發(fā)明還提供了策略模塊570,或者可替換地,可以將策略內(nèi)置于攔截系統(tǒng)中,或者作為文件系統(tǒng)的擴(kuò)展而提供策略。優(yōu)選地,策略及其執(zhí)行規(guī)定了本發(fā)明的所有其他主要模塊的操作。優(yōu)選地,策略模塊包含策略存儲功能和用戶接口功能。
[0093]一般地,策略是與動作相關(guān)聯(lián)的上下文模式或者借以執(zhí)行對數(shù)據(jù)的存儲和處理的特定規(guī)則。例如,策略可以規(guī)定:對于具有avi”擴(kuò)展且大于I兆字節(jié)的任何文件,不通過內(nèi)核文件高速緩存來對文件進(jìn)行緩沖,或者對于在所允許的工作時間外訪問文件數(shù)據(jù)的任何用戶“Joe”,其不執(zhí)行操作,或者始終將新數(shù)據(jù)復(fù)制至被命名為“異地存儲器”的數(shù)據(jù)存儲器,或者在不存在足夠空間供該操作完成的情況下,使用“云存儲器”上的存儲器。提供這些示例僅為了示意可通過策略而應(yīng)用的許多種規(guī)則。策略模塊570可以在應(yīng)用本發(fā)明教導(dǎo)時實現(xiàn)各種其他策略。
[0094]可選地,可以提供用于將這些策略傳送至策略模塊570的用戶接口。例如,這可以是在首次將根據(jù)本發(fā)明的分層高速緩存與現(xiàn)有計算機(jī)系統(tǒng)集成時運行的應(yīng)用,或者可替換地,這可以是對本發(fā)明的管理員來說可訪問的應(yīng)用。關(guān)于策略模塊570,將模式定義為觀察、所請求的動作或數(shù)據(jù)狀態(tài),響應(yīng)于此,策略模塊570執(zhí)行動作或者為本發(fā)明的任何其他元件執(zhí)行動作做準(zhǔn)備。以下描述策略模塊570與本發(fā)明的每個其他元件的交互。
[0095]通過策略模塊570,策略控制攔截系統(tǒng)540將攔截哪些文件系統(tǒng)操作以及一旦被攔截時利用這些文件系統(tǒng)操作做什么。通過將上下文模式相匹配來控制攔截,這是由于上下文對攔截系統(tǒng)540來說可用。本文將上下文更寬地定義為文件系統(tǒng)所具有的、對文件系統(tǒng)來說可用的、與由應(yīng)用發(fā)起的特定操作有關(guān)的任何信息。該信息的示例包括但不限于:Ca)請求操作的過程的標(biāo)識;(b)請求操作的過程的擁有者的標(biāo)識;(C)所涉及的文件的名稱;(d)所請求的操作;(d)所請求的操作的參數(shù);(e)操作中涉及的文件的個體屬性,包括但不限于大小、創(chuàng)建日期/時間、最后修改時間;(f) 一般上下文信息,例如日期和時間、系統(tǒng)狀態(tài)、系統(tǒng)資源使用率等;(g)應(yīng)用是本地的還是遠(yuǎn)程的;以及(h)文件是本地的還是遠(yuǎn)程的。該描述可互換地指代策略和策略模塊。實際上,策略是由策略模塊執(zhí)行或傳達(dá)的任何指令集。
[0096]響應(yīng)于來自策略模塊570的適配策略,攔截系統(tǒng)540可以采取以下三個動作之一:(i )將被攔截的操作傳遞至數(shù)據(jù)變換引擎580,并等待被數(shù)據(jù)變換引擎告訴向文件系統(tǒng)傳達(dá)什么;(ii)記錄出現(xiàn)了被攔截的操作(可能作為狀態(tài)改變或記入日志功能的一部分);以及
(iii)改變被攔截的操作,并立即在文件系統(tǒng)內(nèi)繼續(xù)傳遞該操作。策略模塊570適于指示攔截系統(tǒng)540 —旦其辨別出具體上下文模式時做什么。
[0097]策略模塊包含實現(xiàn)上述分層高速緩存模型的規(guī)則,該分層高速緩存模型用于自適應(yīng)地將數(shù)據(jù)存儲在不同存儲資源上的不同高速緩存層中,如上所述。
[0098]數(shù)據(jù)變換引擎
策略精確地確定在給定優(yōu)選地形成數(shù)據(jù)變換引擎580的一部分或與數(shù)據(jù)變換引擎580通信的功能模塊的集合的情況下如何處理每個被攔截的操作。可選地,該策略還提供功能模塊的參數(shù),使得可以基于上下文、以不同的具體方式執(zhí)行相同動作。優(yōu)選地,數(shù)據(jù)變換引擎580負(fù)責(zé)在文件系統(tǒng)的操作流程外執(zhí)行策略。數(shù)據(jù)存儲接口 585 (以下描述其細(xì)節(jié))在數(shù)據(jù)變換引擎580與在提供本發(fā)明的分層高速緩存組織時使用的數(shù)據(jù)存儲資源之間提供接口。
[0099]根據(jù)本發(fā)明,策略模塊將如數(shù)據(jù)變換引擎580所使用的數(shù)據(jù)存儲器標(biāo)簽與用于在給定該數(shù)據(jù)存儲器標(biāo)簽的情況下執(zhí)行輸入/輸出操作的算法相關(guān)聯(lián)。
[0100]優(yōu)選地,數(shù)據(jù)變換引擎580包括針對每個策略動作而組裝至處理指令集中的多個功能模塊。簡單動作可以由利用每個功能模塊的I個輸入和I個輸出布置的功能模塊原始集合表示。因此,最簡單類型的數(shù)據(jù)變換引擎580將具有固定策略,并因此使用彼此具有固定連接的功能模塊,其中每個功能模塊具有一個輸入和一個輸出。實際上,功能模塊必須實際上在更低級別模塊執(zhí)行之前和之后都能夠執(zhí)行操作,因此,概念性的單輸入單輸出模塊事實上具有2個輸入和2個輸出,以允許例如數(shù)據(jù)變換引擎580內(nèi)的每個功能模塊之間的迭代交互。
[0101]數(shù)據(jù)變換引擎580的作用是:通過該處理流程來發(fā)送被攔截的操作,并將信息返回至攔截系統(tǒng)540,使得攔截系統(tǒng)540可以適當(dāng)?shù)赝瓿善鋵ξ募到y(tǒng)和使用該文件系統(tǒng)的應(yīng)用透明地處理被攔截的操作的責(zé)任。功能模塊被創(chuàng)建以提供本發(fā)明的具體可見功能。具體關(guān)于本發(fā)明,功能模塊具體地與高速緩存分層模型相關(guān),但是,還可以在該級別處實現(xiàn)其他功能模塊,以提供附加功能。
[0102]參照圖9,優(yōu)選地,提供了用于實現(xiàn)根據(jù)本發(fā)明的高速緩存分層的以下模塊。
[0103]可以提供讀取高速緩存模塊905,用于執(zhí)行讀取操作,以找到其上存在數(shù)據(jù)的最高高速緩存層并檢索該數(shù)據(jù)。如果該數(shù)據(jù)未高速緩存在最高層處,則讀取高速緩存模塊805可以排隊寫入高速緩存模塊要針對該特定數(shù)據(jù)向最高高速緩存層執(zhí)行的寫入操作。
[0104]可以提供寫入高速緩存模塊910,用于執(zhí)行寫入操作,例如以便將數(shù)據(jù)寫入至最高高速緩存層并對向該高速緩存層之下的下一級別或向基層的寫入進(jìn)行排隊。優(yōu)選地,關(guān)于將特定數(shù)據(jù)存儲在不同高速緩存級別上的數(shù)據(jù)存儲規(guī)則由策略規(guī)定。
[0105]可以提供加密模塊915,用于針對寫入操作對數(shù)據(jù)進(jìn)行加密并針對讀取操作對數(shù)據(jù)進(jìn)行解密。加密的方法或類型不受本發(fā)明限制,并且因此,可以使用任何類型的加密模塊和/或方法。
[0106]可以提供完整性模塊920,用于在數(shù)據(jù)上計算內(nèi)容散列或校驗和,并將其與元數(shù)據(jù)中存儲的值進(jìn)行比較,以及在讀取操作或可替換地寫入操作出現(xiàn)差錯時采取適當(dāng)動作,以在數(shù)據(jù)上計算內(nèi)容散列或校驗和并將值存儲在元數(shù)據(jù)中。
[0107]可以提供重復(fù)刪除模塊925,使得在執(zhí)行寫入操作時,如果寫入進(jìn)行至如此指定的數(shù)據(jù)存儲器(例如,云存儲器),則刪除重復(fù)的寫入,即,僅當(dāng)數(shù)據(jù)尚未存在于數(shù)據(jù)存儲器上時寫入該數(shù)據(jù)。
[0108]可以提供溢出模塊930,使得在觀察到向存儲資源上的不足數(shù)據(jù)空間的失敗寫入時,將寫入操作重定向至不同存儲資源。在本發(fā)明的情況下,優(yōu)選地,這是重定向至溢出層。
[0109]本領(lǐng)域技術(shù)人員將理解,這些模塊中的每一個由活動策略進(jìn)行參數(shù)化,例如在內(nèi)容散列或校驗和的具體選擇中、在針對溢出的交替數(shù)據(jù)存儲中、在加密機(jī)制的選擇中等等。策略的細(xì)節(jié)不受本發(fā)明限制,而是受在本文定義的分層高速緩存系統(tǒng)的上下文中這種模塊的布置限制。此外,可以給這些模塊提供執(zhí)行操作(例如,完成排隊寫入、維持高速緩存和執(zhí)行搶占式或預(yù)測性計算)的輔助進(jìn)程和/或線程。功能模塊還可以關(guān)于流經(jīng)這些功能模塊的操作和數(shù)據(jù)訪問其自身共享的元數(shù)據(jù),并且該元數(shù)據(jù)可以存儲在文件系統(tǒng)中或者存儲在數(shù)據(jù)庫或某其他共享數(shù)據(jù)結(jié)構(gòu)中。
[0110]功能模塊還能夠使用攔截系統(tǒng)來影響經(jīng)過文件系統(tǒng)的操作流。例如,加密模塊可以通過簡單地請求文件系統(tǒng)對經(jīng)過的數(shù)據(jù)執(zhí)行其缺省加密動作來進(jìn)行操作。其他功能利用該架構(gòu)是可能的,包括復(fù)制、壓縮、版本控制、名稱虛擬化、一般數(shù)據(jù)虛擬化、數(shù)據(jù)多態(tài)性和許多其他功能。
[0111]數(shù)據(jù)存儲接口
提供了數(shù)據(jù)存儲接口 585,優(yōu)選地,在充當(dāng)數(shù)據(jù)變換引擎580與在如本文描述的不同分層高速緩存級別上使用的潛在存儲資源之間的操作接口時,執(zhí)行兩個主要操作。
[0112]首先,數(shù)據(jù)存儲接口 585執(zhí)行抽象功能,使得每個數(shù)據(jù)存儲資源對數(shù)據(jù)變換引擎來說統(tǒng)一地出現(xiàn)。其次,數(shù)據(jù)存儲接口提供成池功能,成池功能用于將如數(shù)據(jù)變換引擎580所請求的輸入/輸出操作轉(zhuǎn)換為如策略所規(guī)定的復(fù)合操作。
[0113]數(shù)據(jù)存儲機(jī)制的抽象是處置許多基本上類似但具體不同的數(shù)據(jù)存儲系統(tǒng)或存儲資源以簡化使用存儲資源的元件(在這種情況下,數(shù)據(jù)變換引擎580及其功能模塊)的邏輯的方式。
[0114]盡管實現(xiàn)抽象過程的各種方法是可能的,但是根據(jù)優(yōu)選實施例,基本存儲抽象模型是鍵值存儲器。利用具體鍵(名稱或標(biāo)簽)來存儲數(shù)據(jù)的具體段,使得可以通過將相同鍵提供給數(shù)據(jù)存儲器來檢索該具體段。例如,將盤上存儲的數(shù)據(jù)塊存儲在特定位置(其鍵)處,并稍后以相同方式或通過使用盤的其他語義(鍵形成鄰接空間,并且不同大小的數(shù)據(jù)塊在該鍵空間中重疊)來檢索該數(shù)據(jù)塊。另一示例是云存儲器,典型地,云存儲器呈現(xiàn)基本鍵值存儲接口。由于本發(fā)明支持文件系統(tǒng)作為數(shù)據(jù)存儲器,并且在文件系統(tǒng)中,存在指定先前存儲的值的子集的能力,因此本發(fā)明的優(yōu)選實施例將文件接口模型用作對數(shù)據(jù)變換引擎580呈現(xiàn)的抽象。在該抽象中,利用具體鍵和位置(以及隱式地,數(shù)據(jù)的大小)來存儲數(shù)據(jù)的具體段,并且對于每個鍵,典型文件(或者盤,如以上示例中那樣)語義關(guān)于位置信息和重疊數(shù)據(jù)適用。這允許將文件系統(tǒng)簡單地集成至抽象中,但將實現(xiàn)方式中的下一層容易地映射至鍵值存儲抽象,這使得對應(yīng)地容易集成云存儲器和其他類似鍵值存儲器。
[0115]由于本發(fā)明被指派有數(shù)據(jù)存儲系統(tǒng)或存儲資源以供使用,因此能夠創(chuàng)建利用多個更原始的數(shù)據(jù)存儲系統(tǒng)或存儲資源的復(fù)合數(shù)據(jù)存儲器是有用的。這種復(fù)合存儲資源的非常普遍的示例是RAID陣列,其將多個原始獨立盤聚集成單個復(fù)合虛擬盤。本發(fā)明通過存儲資源成池機(jī)制來實現(xiàn)這一點。
[0116]在本發(fā)明中,對數(shù)據(jù)存儲系統(tǒng)和存儲資源進(jìn)行分類(其為什么類型的存儲器、如何與其進(jìn)行通信)、參數(shù)化(使用其僅這么多、在其上的該位置處、利用這些證書)和加標(biāo)簽(并對其給出該名稱:“…”)。這些可以是缺省的,因此,在用戶接口中暴露的內(nèi)容不必處于該完整級別。本發(fā)明允許但不需要創(chuàng)建由策略在其他數(shù)據(jù)存儲系統(tǒng)、存儲資源或其他成池存儲器的非零集合的方面定義的成池存儲器,以及作為在寫入操作被視為繼續(xù)之前必須確認(rèn)寫入操作的集合的元件的最小數(shù)目的數(shù)目,本文將該數(shù)目稱為復(fù)制數(shù)目。
[0117]該結(jié)構(gòu)被稱為min-OR樹。圖6和圖7示意了具有在節(jié)點內(nèi)示出的復(fù)制數(shù)目(僅與內(nèi)節(jié)點相關(guān))的min-OR樹。這種結(jié)構(gòu)可以用于表達(dá)與傳統(tǒng)地已使用RAID級別而表達(dá)的內(nèi)容類似的多個數(shù)據(jù)存儲和數(shù)據(jù)冗余策略。例如,圖6中的結(jié)構(gòu)與4路RAIDO配置的相似之處在于:當(dāng)向任一個子節(jié)點的寫入操作成功時,根節(jié)點處的寫入操作成功。本發(fā)明可想到子節(jié)點中的數(shù)據(jù)放置的三種性質(zhì)上不同的語義,以完成復(fù)制數(shù)目需求:
隨機(jī)放置:將數(shù)據(jù)實質(zhì)上隨機(jī)放置在子節(jié)點上。
[0118]有序放置:將數(shù)據(jù)放置在節(jié)點的有序序列上(例如,“最左側(cè)”),這是提供溢出保護(hù)的方式。
[0119]算法放置:根據(jù)利用外部信息的算法來放置數(shù)據(jù),以優(yōu)化特定操作或參數(shù),例如,包裝(嘗試填充節(jié)點)、損耗均衡(嘗試將所有節(jié)點保持在相同填充級別處)、負(fù)載感知(嘗試將所有節(jié)點保持為同等忙碌)、高可用性(嘗試最大化可用性/成本函數(shù))、能量(嘗試最小化能量使用率)、親近性(嘗試使用與某內(nèi)容“接近”的節(jié)點)、服務(wù)器(嘗試使用附著至優(yōu)選服務(wù)器的節(jié)點)和拓?fù)?嘗試使用彼此靠近的節(jié)點)。
[0120]另一示例是圖7所示的示例,圖7示出了涉及兩個級別的配置,其中,頂級別充當(dāng)3路RAIDl鏡(在實際情形中,這 可能對應(yīng)于“將所有內(nèi)容寫入至我的快本地存儲器、我的慢站點檔案和遠(yuǎn)程公司云檔案”),并且子節(jié)點之一自身是使用如“寫入至這5個節(jié)點中的任意3個”中的復(fù)制而創(chuàng)建的冗余配置,“寫入至這5個節(jié)點中的任意3個”在2個節(jié)點失敗的情況下創(chuàng)建了生存性(這滿足被稱為RAID6的標(biāo)準(zhǔn))。
[0121]本發(fā)明可以支持該結(jié)構(gòu)的任何數(shù)目的級別,包括沒有級別(即,僅簡單存儲資源),并且該結(jié)構(gòu)的每個節(jié)點可以獨立地作為復(fù)雜數(shù)據(jù)存儲系統(tǒng)或存儲資源。
[0122]由于冗余由復(fù)制提供,因此移除活動節(jié)點包括:確保通過在子節(jié)點之間適當(dāng)?shù)乜截悢?shù)據(jù)來維持父節(jié)點的復(fù)制策略。因此,存在具有對在何處存儲數(shù)據(jù)的記錄的分離地維持的元數(shù)據(jù),以幫助實現(xiàn)min-OR存儲樹上的所有操作。如果復(fù)制數(shù)目為1,則無法在不通知的情況下非破壞性地進(jìn)行移除子節(jié)點,而是可以在通知在移除或失敗之前可以將對子來說唯一的數(shù)據(jù)拷貝下來至其他節(jié)點的情況下進(jìn)行。通知將語義定義為使得數(shù)據(jù)必須至少復(fù)制次數(shù)地存在于不同子節(jié)點上,但是始終允許更高程度的復(fù)制。
[0123]以這種方式創(chuàng)建的存儲結(jié)構(gòu)與傳統(tǒng)RAID實現(xiàn)方式的不同之處在于(盡管不是定義):不維持扇區(qū)對應(yīng)性(在RAIDl的情況下);不針對冗余使用奇偶校驗(在RAID6的情況下);以及不針對條帶化使用固定塊(在RAIDO的情況下),然而,該功能適于執(zhí)行本發(fā)明。
[0124]該優(yōu)選成池機(jī)制是有用的,這是由于其提供了強大且一致的復(fù)制模型,在功能上等效于多個傳統(tǒng)RAID級別,允許容易地表達(dá)復(fù)雜存儲策略,并允許簡單地管理存儲資源的較大池。
[0125]例如,可以利用盤來填充架,聲明所有這些盤以用作根據(jù)本發(fā)明的層內(nèi)的存儲資源,并指定設(shè)置復(fù)制數(shù)目(在該示例中,設(shè)置為4)的期望冗余級別(“經(jīng)歷3個盤的同時失敗后仍生存”),并且,數(shù)據(jù)存儲接口將根據(jù)該策略來管理針對數(shù)據(jù)變換引擎存儲和檢索數(shù)據(jù)。
[0126]另一方面,平凡min-OR樹是單個原始節(jié)點,例如盤或文件系統(tǒng)??梢酝ㄟ^將min-OR樹擴(kuò)展為精確地仿真?zhèn)鹘y(tǒng)RAID實現(xiàn)方式(通過將最小奇偶校驗復(fù)制參數(shù)添加至內(nèi)節(jié)點)或其他內(nèi)容分散方法(例如,通過添加復(fù)制類型參數(shù),例如“reed-solomon分散”),擴(kuò)展該成池概念。
[0127]在不脫離以下權(quán)利要求中限定的本發(fā)明的精神和范圍的前提下,可以想到對本發(fā)明的各種修改。盡管本文已經(jīng)使用各個步驟和計算機(jī)組件,但是應(yīng)當(dāng)對這些步驟和計算機(jī)組件給出本領(lǐng)域?qū)⒐钠淦胀ǘx,除非明確限制或本文以其他方式定義。
[0128]上述實施例意在作為本發(fā)明的示例,并且在不脫離由所附權(quán)利要求唯一限定的本發(fā)明的范圍的前提下,本領(lǐng)域技術(shù)人員可以對上述實施例進(jìn)行更改和修改。
【權(quán)利要求】
1.一種用于存儲數(shù)據(jù)以供在計算機(jī)系統(tǒng)上運行的應(yīng)用檢索的方法,包括: a.提供包括至少一個高速緩存層和基層的分層高速緩存系統(tǒng); b.基于策略將數(shù)據(jù)存儲在所述至少一個高速緩存層和所述基層中的至少一個中;以及 c.通過用于組織數(shù)據(jù)的裝置將所述數(shù)據(jù)的應(yīng)用視圖呈現(xiàn)給所述應(yīng)用;其中,所述用于組織數(shù)據(jù)的裝置包括至少一個高速緩存層中的每一個和所述基層的元數(shù)據(jù)信息。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述至少一個高速緩存層中的每一個和所述基層布置在不同存儲資源上;以及此外,其中,所述用于組織數(shù)據(jù)的裝置包括所述不同存儲資源中的每一個的元數(shù)據(jù)信息。
3.根據(jù)權(quán)利要求2所述的方法,還包括:提供至少一個溢出層,其中,所述溢出層布置在與所述至少一個高速緩存層中的每一個和所述基層不同的存儲資源上;以及其中,所述用于組織數(shù)據(jù)的裝置包括所述溢出層的元數(shù)據(jù)信息。
4.根據(jù)權(quán)利要求2所述的方法,其中,所述至少一個高速緩存層包括多個分層的高速緩存層。
5.根據(jù)權(quán)利要求4所述的方法,其中,所述多個高速緩存層中的每一個是在固態(tài)驅(qū)動器上提供的,所述基層是在硬盤驅(qū)動器上提供的,并且所述溢出層是在云存儲資源上提供的。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述用于組織數(shù)據(jù)的裝置存儲在所述硬盤驅(qū)動器上。
7.根據(jù)權(quán)利要求5所述的方法,還包括:將所述數(shù)據(jù)存儲在所述基層上;以及將所述數(shù)據(jù)高速緩存在所述多個高速緩存層中的一個或多個上,其中,較高級別高速緩存層將數(shù)據(jù)高速緩存在較低級別高速緩存層上。
8.根據(jù)權(quán)利要求7所述的方法,其中,每個高速緩存層級別包括兩個或更多個存儲資源。
9.根據(jù)權(quán)利要求1所述的方法,其中,所述用于組織數(shù)據(jù)的裝置對正在使用的特定存儲設(shè)備不可知。
10.根據(jù)權(quán)利要求2所述的方法,還包括以下步驟:通過攔截系統(tǒng)來攔截要執(zhí)行的用于組織數(shù)據(jù)的裝置的操作或者與所述用于組織數(shù)據(jù)的裝置無關(guān)地處理的操作。
11.根據(jù)權(quán)利要求10所述的方法,還包括以下步驟:根據(jù)所述策略將輸入/輸出操作不相關(guān)聯(lián),使得所述操作的至少一部分被所述攔截系統(tǒng)攔截并根據(jù)所述策略而處理。
12.根據(jù)權(quán)利要求1所述的方法,其中,所述策略由策略模塊提供。
13.根據(jù)權(quán)利要求12所述的方法,其中,所述策略模塊與所述攔截系統(tǒng)構(gòu)成一個整體。
14.根據(jù)權(quán)利要求12所述的方法,其中,所述策略模塊與所述用于組織數(shù)據(jù)的裝置構(gòu)成一個整體。
15.根據(jù)權(quán)利要求10所述的方法,其中,所述攔截步驟還包括以下各項之一:(a)將被攔截的操作傳遞至在存儲資源與所述攔截系統(tǒng)之間提供的數(shù)據(jù)變換引擎;(b)將被攔截的操作的完成記入日志;以及(C)改變被攔截的操作并將其繼續(xù)傳遞至所述用于組織數(shù)據(jù)的裝置。
16.根據(jù)權(quán)利要求10所述的方法,還包括:在所述攔截系統(tǒng)與所述存儲資源之間提供數(shù)據(jù)變換引擎。
17.根據(jù)權(quán)利要求16所述的方法,還包括以下步驟:在所述用于組織數(shù)據(jù)的裝置外執(zhí)行策略;所述執(zhí)行策略的步驟由所述數(shù)據(jù)變換引擎執(zhí)行。
18.根據(jù)權(quán)利要求16所述的方法,其中,所述數(shù)據(jù)變換引擎還包括:讀取高速緩存模塊,用于執(zhí)行讀取操作,以找到其上存在數(shù)據(jù)的最高高速緩存層并檢索所述數(shù)據(jù)。
19.根據(jù)權(quán)利要求16所述的方法,其中,所述數(shù)據(jù)變換引擎還包括:寫入高速緩存模塊,用于向不同高速緩存層級別執(zhí)行寫入操作。
20.根據(jù)權(quán)利要求16所述的方法,其中,所述數(shù)據(jù)變換引擎還包括:加密模塊,用于在數(shù)據(jù)經(jīng)過所述用于組織數(shù)據(jù)的裝置之前對所述數(shù)據(jù)進(jìn)行加密和解密。
21.根據(jù)權(quán)利要求16所述的方法,其中,所述數(shù)據(jù)變換引擎還包括:完整性模塊,用于將所述數(shù)據(jù)的屬性與元數(shù)據(jù)信息中存儲的屬性進(jìn)行比較。
22.根據(jù)權(quán)利要求16所述的方法,其中,所述數(shù)據(jù)變換引擎還包括:重復(fù)刪除模塊,用于執(zhí)行重復(fù)刪除步驟。
23.根據(jù)權(quán)利要求19所述的方法,其中,所述數(shù)據(jù)變換引擎還包括:溢出模塊,用于響應(yīng)于失敗的寫入操作,將數(shù)據(jù)寫入至溢出高速緩存層。
24.根據(jù)權(quán)利要求16所述的方法,還包括:提供數(shù)據(jù)存儲接口,所述數(shù)據(jù)存儲接口用于在所述存儲資源與所述數(shù)據(jù)變換引擎之間提供操作接口。
25.根據(jù)權(quán)利要求24所述的方法,還包括以下步驟:抽象數(shù)據(jù)存儲資源信息,使得每個數(shù)據(jù)存儲資源對所述數(shù)據(jù)變換引擎來說統(tǒng)一地出現(xiàn)。
26.根據(jù)權(quán)利要求24所述的方法,還包括以下步驟:對至少兩個或更多個數(shù)據(jù)存儲資源成池。
27.根據(jù)權(quán)利要求4所述的方法,其中,所述多個高速緩存層包括操作系統(tǒng)文件緩沖高速緩存。
28.根據(jù)權(quán)利要求1所述的方法,其中,所述用于組織數(shù)據(jù)的裝置包括文件系統(tǒng)。
29.根據(jù)權(quán)利要求1所述的方法,其中,所述用于組織數(shù)據(jù)的裝置選自包括對象數(shù)據(jù)庫、鍵值存儲器、網(wǎng)絡(luò)協(xié)議和共享數(shù)據(jù)系統(tǒng)的組。
30.一種用于存儲數(shù)據(jù)以供在計算機(jī)系統(tǒng)上運行的應(yīng)用檢索的系統(tǒng),包括: a.分層高速緩存系統(tǒng),包括至少一個高速緩存層和基層,其中,所述數(shù)據(jù)是基于策略而存儲在所述至少一個高速緩存層和所述基層中的至少一個中的; b.用于組織數(shù)據(jù)的裝置,用于將所述數(shù)據(jù)的應(yīng)用視圖呈現(xiàn)給所述應(yīng)用;其中,所述用于組織數(shù)據(jù)的裝置包括至少一個高速緩存層中的每一個和所述基層的元數(shù)據(jù)信息。
31.根據(jù)權(quán)利要求30所述的系統(tǒng),其中,所述至少一個高速緩存層中的每一個和所述基層布置在不同存儲資源上;以及此外,其中,所述用于組織數(shù)據(jù)的裝置包括所述不同存儲資源中的每一個的元數(shù)據(jù)信息。
32.根據(jù)權(quán)利要求31所述的系統(tǒng),還包括:至少一個溢出層,其中,所述溢出層布置在與所述至少一個高速緩存層中的每一個和所述基層不同的存儲資源上;以及其中,所述用于組織數(shù)據(jù)的裝置包括所述溢出層的元數(shù)據(jù)信息。
33.根據(jù)權(quán)利要求32所述的系統(tǒng),其中,所述至少一個高速緩存層包括多個分層的高速緩存層。
34.根據(jù)權(quán)利要求33所述的系統(tǒng),其中,所述多個高速緩存層中的每一個是在固態(tài)驅(qū)動器上提供的,所述基層是在硬盤驅(qū)動器上提供的,并且所述溢出層是在云存儲資源上提供的。
35.根據(jù)權(quán)利要求34所述的系統(tǒng),其中,所述用于組織數(shù)據(jù)的裝置存儲在所述硬盤驅(qū)動器上。
36.根據(jù)權(quán)利要求34所述的系統(tǒng),其中,所述數(shù)據(jù)存儲在所述基層上以及高速緩存在所述多個高速緩存層中的所述一個或多個高速緩存層上,其中,較高級別高速緩存層將數(shù)據(jù)高速緩存在較低級別高速緩存層上。
37.根據(jù)權(quán)利要求36所述的系統(tǒng),其中,每個高速緩存層級別包括兩個或更多個存儲資源。
38.根據(jù)權(quán)利要求30所述的系統(tǒng),其中,所述用于組織數(shù)據(jù)的裝置對正在使用的特定存儲設(shè)備不可知。
39.根據(jù)權(quán)利要求30所述的系統(tǒng),還包括:攔截系統(tǒng),用于攔截要執(zhí)行的用于組織數(shù)據(jù)的裝置的操作或者與所述用于組織數(shù)據(jù)的裝置無關(guān)地處理的操作。
40.根據(jù)權(quán)利要求39所述的系統(tǒng),其中,所述攔截系統(tǒng)適于根據(jù)所述策略將輸入/輸出操作不相關(guān)聯(lián),使得所述操作的至少一部分被所述攔截系統(tǒng)攔截并根據(jù)所述策略而處理。
41.根據(jù)權(quán)利要求39所述的系統(tǒng),還包括用于提供所述策略的策略模塊。
42.根據(jù)權(quán)利要求41所述的系統(tǒng),其中,所述策略模塊與所述攔截系統(tǒng)構(gòu)成一個整體。
43.根據(jù)權(quán)利要求41所述的系統(tǒng),其中,所述策略模塊與所述用于組織數(shù)據(jù)的裝置構(gòu)成一個整體。
44.根據(jù)權(quán)利要求40所述的系統(tǒng),其中,所述攔截系統(tǒng)包括以下至少一項:(a)用于將被攔截的操作傳遞至在存儲資源與所述攔截系統(tǒng)之間提供的數(shù)據(jù)變換引擎的裝置;(b)用于將被攔截的操作的完成記入日志的裝置;以及(c)用于改變被攔截的操作并將其繼續(xù)傳遞至所述用于組織數(shù)據(jù)的裝置的裝置。
45.根據(jù)權(quán)利要求40所述的系統(tǒng),還包括所述攔截系統(tǒng)與所述存儲資源之間的數(shù)據(jù)變換引擎。
46.根據(jù)權(quán)利要求45所述的系統(tǒng),其中,所述數(shù)據(jù)變換引擎還包括:讀取高速緩存模塊,用于執(zhí)行讀取操作,以找到其上存在數(shù)據(jù)的最高高速緩存層并檢索所述數(shù)據(jù)。
47.根據(jù)權(quán)利要求45所述的系統(tǒng),其中,所述數(shù)據(jù)變換引擎還包括:寫入高速緩存模塊,用于向不同高速緩存層級別執(zhí)行寫入操作。
48.根據(jù)權(quán)利要求45所述的系統(tǒng),其中,所述數(shù)據(jù)變換引擎還包括:加密模塊,用于在數(shù)據(jù)經(jīng)過所述用于組織數(shù)據(jù)的裝置之前對所述數(shù)據(jù)進(jìn)行加密和解密。
49.根據(jù)權(quán)利要求45所述的系統(tǒng),其中,所述數(shù)據(jù)變換引擎還包括:完整性模塊,用于將所述數(shù)據(jù)的屬性與元數(shù)據(jù)信息中存儲的屬性進(jìn)行比較。
50.根據(jù)權(quán)利要求45所述的系統(tǒng),其中,所述數(shù)據(jù)變換引擎還包括:重復(fù)刪除模塊,用于執(zhí)行重復(fù)刪除步驟。
51.根據(jù)權(quán)利要求48所述的系統(tǒng),其中,所述數(shù)據(jù)變換引擎還包括:溢出模塊,用于響應(yīng)于失敗的寫入操作,將數(shù)據(jù)寫入至溢出高速緩存層。
52.根據(jù)權(quán)利要求45所述的系統(tǒng),還包括:數(shù)據(jù)存儲接口,用于在所述存儲資源與所述數(shù)據(jù)變換引擎之間提供操作接口。
53.根據(jù)權(quán)利要求45所述的系統(tǒng),其中,每個數(shù)據(jù)存儲資源對所述數(shù)據(jù)變換引擎來說統(tǒng)一地出現(xiàn)。
54.根據(jù)權(quán)利要求30所述的系統(tǒng),其中,對至少兩個或更多個數(shù)據(jù)存儲資源成池。
55.根據(jù)權(quán)利要求33所述的系統(tǒng),其中,所述多個高速緩存層包括操作系統(tǒng)文件緩沖高速緩存。
56.根據(jù)權(quán)利要求30所述的系統(tǒng),其中,所述用于組織數(shù)據(jù)的裝置選自包括對象數(shù)據(jù)庫、鍵值存儲器、網(wǎng)絡(luò)協(xié)議和`共享數(shù)據(jù)系統(tǒng)的組。
【文檔編號】G06F17/30GK103493024SQ201180051518
【公開日】2014年1月1日 申請日期:2011年8月24日 優(yōu)先權(quán)日:2010年8月25日
【發(fā)明者】R.扎查里亞森, S.蘭布 申請人:內(nèi)維克斯虛擬技術(shù)公司