一種數(shù)據(jù)存儲的方法、裝置與系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)存儲的技術(shù)。
【背景技術(shù)】
[0002]當(dāng)前,隨著通信、信息技術(shù)的發(fā)展,用戶對數(shù)據(jù)的訪問量呈幾何級增長。由單機(jī)來存儲數(shù)據(jù)、并為用戶提供所存儲的數(shù)據(jù)的方案顯然難以響應(yīng)大量的數(shù)據(jù)訪問請求。采用多機(jī)大集群的方式分別地利用每個單機(jī)的本地磁盤來存儲數(shù)據(jù)、并為用戶提供本地存儲的數(shù)據(jù),可以顯著地分擔(dān)負(fù)載、提高性能,從而可以較好地響應(yīng)大量數(shù)據(jù)訪問請求。
[0003]然而,多機(jī)大集群存儲數(shù)據(jù)的方案的問題主要在于:由于集群中的每一個單機(jī)分別獨立地存儲數(shù)據(jù)、為用戶提供數(shù)據(jù),當(dāng)數(shù)據(jù)被集群中的一個單機(jī)改變時,集群中的其他單機(jī)無法獲知數(shù)據(jù)已發(fā)生變化。例如,集群中的單機(jī)A更改了數(shù)據(jù)源中的數(shù)據(jù),而集群中的單機(jī)B無法獲知相同的數(shù)據(jù)已被更改的消息。此時,集群B為用戶提供的其本地磁盤所存儲的未被更改的數(shù)據(jù)被稱為臟數(shù)據(jù)。多機(jī)大集群的存儲方案可能產(chǎn)生大量臟數(shù)據(jù),無法滿足大部分業(yè)務(wù)場景的使用需求。
[0004]此外,現(xiàn)有技術(shù)中存在由分布式數(shù)據(jù)存儲系統(tǒng)來存儲數(shù)據(jù)、并為用戶提供數(shù)據(jù)的方案。這種存儲方案不易產(chǎn)生臟數(shù)據(jù)。然而,分布式數(shù)據(jù)存儲系統(tǒng)存儲數(shù)據(jù)的方案的問題主要在于:分布式數(shù)據(jù)存儲系統(tǒng)的存儲空間非常寶貴,適合小數(shù)據(jù)的快速存取,不適宜存儲大塊的數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是提供一種數(shù)據(jù)存儲的方法、裝置與系統(tǒng)。
[0006]根據(jù)本發(fā)明的一個方面,提供了一種在數(shù)據(jù)存儲設(shè)備中進(jìn)行數(shù)據(jù)存儲的方法,其中,所述數(shù)據(jù)存儲設(shè)備供本地訪問;
[0007]其中,該方法包括:
[0008]-獲取待存儲的數(shù)據(jù);
[0009]-根據(jù)所述數(shù)據(jù)的內(nèi)容,確定所述數(shù)據(jù)的本地驗證信息;
[0010]-將所述數(shù)據(jù)的標(biāo)識信息及本地驗證信息發(fā)送至分布式數(shù)據(jù)存儲系統(tǒng),所述分布式數(shù)據(jù)存儲系統(tǒng)存儲有基于所述數(shù)據(jù)的各本地驗證信息所獲得的全局驗證信息;
[0011 ]-本地存儲所述數(shù)據(jù)。
[0012]根據(jù)本發(fā)明的另一個方面,還提供了一種在分布式數(shù)據(jù)存儲系統(tǒng)中進(jìn)行數(shù)據(jù)存儲的方法,其中,該方法包括:
[0013]-自至少一個數(shù)據(jù)存儲設(shè)備接收數(shù)據(jù)的標(biāo)識信息及相應(yīng)數(shù)據(jù)存儲設(shè)備對應(yīng)所述數(shù)據(jù)的本地驗證信息;
[0014]-根據(jù)所述標(biāo)識信息及所述本地驗證信息,更新所述數(shù)據(jù)的全局驗證信息;
[0015]其中,該方法還包括:
[0016]-根據(jù)其中一個或多個數(shù)據(jù)存儲設(shè)備對數(shù)據(jù)的全局驗證信息的獲取請求,向相應(yīng)數(shù)據(jù)存儲設(shè)備返回其所請求的數(shù)據(jù)的全局驗證信息。
[0017]根據(jù)本發(fā)明的再一個方面,還提供了一種數(shù)據(jù)存儲方法,其中,該方法包括:
[0018]-數(shù)據(jù)存儲設(shè)備獲取待存儲的數(shù)據(jù);
[0019]-所述數(shù)據(jù)存儲設(shè)備根據(jù)所述數(shù)據(jù)的內(nèi)容,確定所述數(shù)據(jù)的本地驗證信息;
[0020]-所述數(shù)據(jù)存儲設(shè)備將所述數(shù)據(jù)的標(biāo)識信息及本地驗證信息發(fā)送至分布式數(shù)據(jù)存儲系統(tǒng);
[0021]-所述分布式數(shù)據(jù)存儲系統(tǒng)根據(jù)至少一個所述數(shù)據(jù)存儲設(shè)備發(fā)送的所述數(shù)據(jù)的標(biāo)識信息及本地驗證信息,更新所述數(shù)據(jù)的全局驗證信息;
[0022]-所述數(shù)據(jù)存儲設(shè)備本地存儲所述數(shù)據(jù);
[0023]其中,該方法還包括:
[0024]-當(dāng)所述數(shù)據(jù)存儲設(shè)備接收到對所述數(shù)據(jù)的訪問請求時,從所述分布式數(shù)據(jù)存儲系統(tǒng)獲取所述數(shù)據(jù)的全局驗證信息;
[0025]-當(dāng)所述數(shù)據(jù)的本地驗證信息與所述全局驗證信息一致時,所述數(shù)據(jù)存儲設(shè)備提供其本地存儲的所述數(shù)據(jù)。
[0026]根據(jù)本發(fā)明的一個方面,還提供了一種在數(shù)據(jù)存儲設(shè)備中進(jìn)行數(shù)據(jù)存儲的裝置,其中,所述數(shù)據(jù)存儲設(shè)備供本地訪問;
[0027]其中,該裝置包括:
[0028]-用于獲取待存儲的數(shù)據(jù)的裝置;
[0029]-用于根據(jù)所述數(shù)據(jù)的內(nèi)容,確定所述數(shù)據(jù)的本地驗證信息的裝置;
[0030]-用于將所述數(shù)據(jù)的標(biāo)識信息及本地驗證信息發(fā)送至分布式數(shù)據(jù)存儲系統(tǒng)的裝置,所述分布式數(shù)據(jù)存儲系統(tǒng)存儲有基于所述數(shù)據(jù)的各本地驗證信息所獲得的全局驗證信息;
[0031]-用于本地存儲所述數(shù)據(jù)的裝置。
[0032]根據(jù)本發(fā)明的另一個方面,還提供了一種用于數(shù)據(jù)存儲的分布式數(shù)據(jù)存儲系統(tǒng),其中,該分布式數(shù)據(jù)存儲系統(tǒng)包括:
[0033]-用于自至少一個數(shù)據(jù)存儲設(shè)備接收數(shù)據(jù)的標(biāo)識信息及相應(yīng)數(shù)據(jù)存儲設(shè)備對應(yīng)所述數(shù)據(jù)的本地驗證信息的裝置;
[0034]-用于根據(jù)所述標(biāo)識信息及所述本地驗證信息,更新所述數(shù)據(jù)的全局驗證信息的裝置;
[0035]其中,該裝置還包括:
[0036]-用于根據(jù)其中一個或多個數(shù)據(jù)存儲設(shè)備對數(shù)據(jù)的全局驗證信息的獲取請求,向相應(yīng)數(shù)據(jù)存儲設(shè)備返回其所請求的數(shù)據(jù)的全局驗證信息的裝置。
[0037]根據(jù)本發(fā)明的再一個方面,還提供了一種數(shù)據(jù)存儲系統(tǒng),其中,該系統(tǒng)包括如前所述的在數(shù)據(jù)存儲設(shè)備中進(jìn)行數(shù)據(jù)存儲的裝置和如前所述的用于數(shù)據(jù)存儲的分布式數(shù)據(jù)存儲系統(tǒng)。
[0038]與現(xiàn)有技術(shù)相比,本發(fā)明由數(shù)據(jù)存儲設(shè)備和分布式數(shù)據(jù)存儲系統(tǒng)相配合來存儲數(shù)據(jù)。其中,數(shù)據(jù)存儲設(shè)備獲取待存儲的數(shù)據(jù)并本地存儲該數(shù)據(jù),并且,數(shù)據(jù)存儲設(shè)備將根據(jù)該數(shù)據(jù)的內(nèi)容所確定的該數(shù)據(jù)的本地驗證信息以及數(shù)據(jù)的標(biāo)識信息發(fā)送至分布式數(shù)據(jù)存儲系統(tǒng),以供分布式數(shù)據(jù)存儲系統(tǒng)根據(jù)至少一個數(shù)據(jù)存儲設(shè)備發(fā)送的數(shù)據(jù)的標(biāo)識信息及本地驗證信息更新該數(shù)據(jù)的全局驗證信息。當(dāng)接收到對數(shù)據(jù)的訪問請求時,數(shù)據(jù)存儲設(shè)備從分布式數(shù)據(jù)存儲系統(tǒng)獲取該數(shù)據(jù)的全局驗證信息,并且當(dāng)該數(shù)據(jù)的本地驗證信息與全局驗證信息一致時,數(shù)據(jù)存儲設(shè)備提供其本地存儲的所述數(shù)據(jù)。
[0039]本發(fā)明至少具有以下有益效果:1)本發(fā)明可以使數(shù)據(jù)存儲設(shè)備具有對數(shù)據(jù)變化的感知能力。數(shù)據(jù)存儲設(shè)備可以通過驗證本地驗證信息是否與全局驗證信息一致,來判斷數(shù)據(jù)是否發(fā)生了變化,從而避免了提供臟數(shù)據(jù);2)大塊的數(shù)據(jù)可以被存儲到數(shù)據(jù)存儲設(shè)備的本地文件系統(tǒng),分布式數(shù)據(jù)存儲系統(tǒng)僅存儲數(shù)據(jù)的全局驗證信息,對存儲空間的消耗量很低,同時提高了數(shù)據(jù)存取效率;3)整個數(shù)據(jù)存儲系統(tǒng)中數(shù)據(jù)的交互量可以被有效降低。
【附圖說明】
[0040]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點將會變得更明顯:
[0041]圖1示出根據(jù)本發(fā)明一個實施例的一種數(shù)據(jù)存儲系統(tǒng)的示意圖;
[0042]圖2示出根據(jù)本發(fā)明一個實施例的一種數(shù)據(jù)存儲設(shè)備與分布式數(shù)據(jù)存儲系統(tǒng)相配合來存儲數(shù)據(jù)的方法流程圖;
[0043]圖3示出根據(jù)本發(fā)明一個優(yōu)選實施例的一種數(shù)據(jù)存儲設(shè)備與分布式數(shù)據(jù)存儲系統(tǒng)相配合來存儲數(shù)據(jù)的方法流程圖;
[0044]圖4示出根據(jù)本發(fā)明一個實施例的一種數(shù)據(jù)存儲設(shè)備與分布式數(shù)據(jù)存儲系統(tǒng)相配合來存儲數(shù)據(jù)的系統(tǒng)示意圖;
[0045]圖5示出根據(jù)本發(fā)明一個優(yōu)選實施例的一種數(shù)據(jù)存儲設(shè)備與分布式數(shù)據(jù)存儲系統(tǒng)相配合來存儲數(shù)據(jù)的系統(tǒng)示意圖。
[0046]附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
【具體實施方式】
[0047]在更加詳細(xì)地討論示例性實施例之前應(yīng)當(dāng)提到的是,一些示例性實施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各項操作描述成順序的處理,但是其中的許多操作可以被并行地、并發(fā)地或者同時實施。此外,各項操作的順序可以被重新安排。當(dāng)其操作完成時所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等等。
[0048]本文后面所討論的方法(其中一些通過流程圖示出)可以通過硬件、軟件、固件、中間件、微代碼、硬件描述語言或者其任意組合來實施。當(dāng)用軟件、固件、中間件或微代碼來實施時,用以實施必要任務(wù)的程序代碼或代碼段可以被存儲在機(jī)器或計算機(jī)可讀介質(zhì)(比如存儲介質(zhì))中。(一個或多個)處理器可以實施必要的任務(wù)。
[0049]這里所公開的具體結(jié)構(gòu)和功能細(xì)節(jié)僅僅是代表性的,并且是用于描述本發(fā)明的示例性實施例的目的。但是本發(fā)明可以通過許多替換形式來具體實現(xiàn),并且不應(yīng)當(dāng)被解釋成僅僅受限于這里所闡述的實施例。
[0050]應(yīng)當(dāng)理解的是,雖然在這里可能使用了術(shù)語“第一”、“第二”等等來描述各個單元,但是這些單元不應(yīng)當(dāng)受這些術(shù)語限制。使用這些術(shù)語僅僅是為了將一個單元與另一個單元進(jìn)行區(qū)分。舉例來說,在不背離示例性實施例的范圍的情況下,第一單元可以被稱為第二單元,并且類似地第二單元可以被稱為第一單元。這里所使用的術(shù)語“和/或”包括其中一個或更多所列出的相關(guān)聯(lián)項目的任意和所有組合。
[0051]這里所使用的術(shù)語僅僅是為了描述具體實施例而不意圖限制示例性實施例。除非上下文明確地另有所指,否則這里所使用的單數(shù)形式“一個”、“一項”還意圖包括復(fù)數(shù)。還應(yīng)當(dāng)理解的是,這里所使用的術(shù)語“包括”和/或“包含”規(guī)定所陳述的特征、整數(shù)、步驟、操作、單元和/或組件的存在,而不排除存在或添加一個或更多其他特征、整數(shù)、步驟、操作、單元、組件和/或其組合。
[0052]還應(yīng)當(dāng)提到的是,在一些替換實現(xiàn)方式中,所提到的功能/動作可以按照不同于附圖中標(biāo)示的順序發(fā)生。舉例來說,取決于所涉及的功能/動作,相繼示出的兩幅圖實際上可以基本上同時執(zhí)行或者有時可以按照相反的順序來執(zhí)行。
[0053]本領(lǐng)域技術(shù)人員應(yīng)能理解,本發(fā)明中所述“存儲數(shù)據(jù)”包括但不限于各種將數(shù)據(jù)記錄在內(nèi)部或外部的存儲介質(zhì)上的存儲形式。所述存儲介質(zhì)包括但不限于硬盤、內(nèi)存、緩存等。
[0054]優(yōu)選地,所述“存儲數(shù)據(jù)”包括將數(shù)據(jù)記錄在緩存中(對數(shù)據(jù)進(jìn)行緩存)。
[0055]下面結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)描述。
[0056]圖1示出根據(jù)本發(fā)明一個實施例的一種數(shù)據(jù)存儲系統(tǒng)的示意圖。
[0057]如圖1所示,該數(shù)據(jù)存儲系統(tǒng)包括一個分布式數(shù)據(jù)存儲系統(tǒng)以及多個數(shù)據(jù)存儲設(shè)備(數(shù)據(jù)存儲設(shè)備1、數(shù)據(jù)存儲設(shè)備2、數(shù)據(jù)存儲設(shè)備3......數(shù)據(jù)存儲設(shè)備η)。
[0058]所述分布式數(shù)據(jù)存儲系統(tǒng)包括但不限于任何分布式地部署多個存儲節(jié)點并可以對外提供統(tǒng)一訪問接口的存儲系統(tǒng)。
[0059]所述分布式數(shù)據(jù)存儲系統(tǒng)例如高性能內(nèi)存對象緩存系統(tǒng)(Memcached)等。Memcached的特點在于其可以分布式地部署和訪問,但其存儲空間非常寶貴,適合小數(shù)據(jù)的快速存取。
[0060]每個數(shù)據(jù)存儲設(shè)備具有本地文件系統(tǒng),本地文件系統(tǒng)特指本地磁盤。本地文件系統(tǒng)的特點在于其僅可以由數(shù)據(jù)存儲設(shè)備本機(jī)訪問。每個數(shù)據(jù)存儲設(shè)備僅可以從其自身的本地文件系統(tǒng)以及分布式數(shù)據(jù)存儲系統(tǒng)中讀取、存儲數(shù)據(jù)。每個數(shù)據(jù)存儲設(shè)備不能對其他數(shù)據(jù)存儲設(shè)備的本地文件系統(tǒng)進(jìn)行讀取