專利名稱:一種緩存數(shù)據(jù)的處理方法及數(shù)據(jù)存儲系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)備份技術(shù),尤其涉及一種緩存數(shù)據(jù)的處理方法及數(shù)據(jù)存儲 系統(tǒng)。
背景技術(shù):
磁盤陣列等存儲設(shè)備具有多種增值業(yè)務(wù),例如快照(Snapshot)、巻拷貝、 遠(yuǎn)程鏡像等。下面以快照為例簡單說明。
SNIA (Storage Network Industry Association,存儲網(wǎng)絡(luò)行業(yè)協(xié)會)對快照的 定義是關(guān)于指定數(shù)據(jù)集合的一個完全可用拷貝,該拷貝包括相應(yīng)數(shù)據(jù)在拷貝 開始的時間點的映像??煺湛梢允瞧渌硎镜臄?shù)據(jù)的一個副本,也可以是數(shù)據(jù) 的一個復(fù)制品。
對快照業(yè)務(wù)來說,快照時間點之前和快照時間點之后的寫數(shù)據(jù)是需要區(qū)別 對待的對快照時間點之前的寫數(shù)據(jù),應(yīng)該同時用于修改源巻和修改快照巻; 對快照時間點之后的寫數(shù)據(jù),只需用于修改源巻而無需修改快照巻,快照巻記 錄原有數(shù)據(jù)。
上述可知,快照業(yè)務(wù)模塊在執(zhí)行針對各個時間點的快照時,必須要分辨出 來自主機(jī)的寫請求(Req)是攜帶該快照業(yè)務(wù)時間點之前的數(shù)據(jù),還是該快照業(yè) 務(wù)時間點之后的數(shù)據(jù)。也就是說快照業(yè)務(wù)模塊需要按照來自主機(jī)的寫請求的順 序來處理快照業(yè)務(wù)。
由于對寫請求的順序性要求,在數(shù)據(jù)存儲過程中,需將增值業(yè)務(wù)設(shè)置在利 用高速緩存緩存數(shù)據(jù)之前,便于增值業(yè)務(wù)模塊捕獲寫請求的順序信息。也就是 說,對來自主機(jī)的寫請求,先需按照寫請求的時間信息進(jìn)行增值業(yè)務(wù)處理,再 將待寫入的數(shù)據(jù)提交給存儲設(shè)備的高速緩存(Cache),而不能簡單地先將寫請 求攜帶的數(shù)據(jù)提交給高速緩存,再進(jìn)行增值業(yè)務(wù)處理,因為Cache的數(shù)據(jù)合并和數(shù)據(jù)疊加會屏蔽Req序列的順序信息。
在實現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題每一個 寫請求都必須經(jīng)過增值業(yè)務(wù)的處理后,數(shù)據(jù)再提交給存儲設(shè)備的高速緩存,然 后才能夠給主機(jī)響應(yīng),從而造成業(yè)務(wù)的處理效率低下,同時也增加了主機(jī)寫請 求的響應(yīng)時間。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種緩存數(shù)據(jù)的處理方法及數(shù)據(jù)存儲系統(tǒng),以減少主機(jī) 寫請求的延時,提高業(yè)務(wù)的處理效率。
根據(jù)本發(fā)明的一方面,提供一種緩存數(shù)據(jù)的處理方法,該方法包括
緩存來自主機(jī)的寫請求中攜帶的數(shù)據(jù);
為所述數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識;
識別所述數(shù)據(jù)標(biāo)識對應(yīng)的寫請求與增值業(yè)務(wù)時間點的先后關(guān)系,根據(jù)所述 先后關(guān)系對所述數(shù)據(jù)標(biāo)識對相應(yīng)的數(shù)據(jù)進(jìn)行執(zhí)行增值業(yè)務(wù)。
根據(jù)本發(fā)明的另一方面,還提供一種數(shù)據(jù)存儲系統(tǒng),該系統(tǒng)包括-緩存模塊,用于緩存來自主機(jī)的寫請求中攜帶的數(shù)據(jù); 標(biāo)識設(shè)置模塊,用于為所述數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識;
增值業(yè)務(wù)模塊,用于識別所述數(shù)據(jù)標(biāo)識對應(yīng)的寫請求與增值業(yè)務(wù)時間點的 先后關(guān)系,根據(jù)所述先后關(guān)系對所述數(shù)據(jù)標(biāo)識對相應(yīng)的數(shù)據(jù)進(jìn)行執(zhí)行增值業(yè)務(wù)。
本發(fā)明實施例,先緩存寫請求的數(shù)據(jù),并進(jìn)行標(biāo)識,根據(jù)數(shù)據(jù)標(biāo)識和增值 業(yè)務(wù)時間點的先后關(guān)系對緩存的數(shù)據(jù)執(zhí)行增值業(yè)務(wù),從而可以提高業(yè)務(wù)的處理 效率,并先緩存數(shù)據(jù)再執(zhí)行增值業(yè)務(wù),可以減少了主機(jī)寫請求的延時。
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所 需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明 的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提 下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例中的數(shù)據(jù)存儲操作順序示意圖2為本發(fā)明實施例的存儲系統(tǒng)結(jié)構(gòu)框圖3為本發(fā)明實施例的另 一存儲系統(tǒng)結(jié)構(gòu)框圖4為本發(fā)明實施例的數(shù)據(jù)標(biāo)識設(shè)置示意圖5為本發(fā)明實施例的另 一數(shù)據(jù)標(biāo)識設(shè)置示意圖6為本發(fā)明實施例中緩存數(shù)據(jù)的處理方法流程圖7為本發(fā)明實施例中另一緩存數(shù)據(jù)的處理方法流程圖。
具體實施例方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清 楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是 全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造 性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
實施例1
本發(fā)明實施例提供一種數(shù)據(jù)存儲系統(tǒng)。本實施例是將高速緩存操作設(shè)置在 增值業(yè)務(wù)之前,如圖1所示,并解決如何讓增值業(yè)務(wù)依然能夠分辯數(shù)據(jù)和增值
業(yè)務(wù)時間點之間的先后關(guān)系,從而能夠把增值業(yè)務(wù)放置在cache之后。
如圖2所示,該數(shù)據(jù)存儲系統(tǒng)包括緩存模塊200、標(biāo)識設(shè)置模塊210以及 增值業(yè)務(wù)模塊220。其中
緩存模塊200用于緩存來自主機(jī)的寫請求中攜帶的數(shù)據(jù)。該緩存模塊200 例如為存儲設(shè)備中的高速緩存(Cache)。
標(biāo)識設(shè)置模塊210用于為所述數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識。本實施例中,標(biāo)識設(shè)置 模塊210為所述數(shù)據(jù)設(shè)置標(biāo)識是指以Cache中的數(shù)據(jù)塊為單位為Cache中緩存 的數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識,并緩存在緩存模塊200中,這樣Cache中的每一數(shù)據(jù)塊 各自擁有自己的標(biāo)識,即每個數(shù)據(jù)與其數(shù)據(jù)標(biāo)識形成一一對應(yīng)的關(guān)系。所述設(shè) 置數(shù)據(jù)標(biāo)識的方式有很多種,例如可以以數(shù)字、字母或其他符號設(shè)置標(biāo)識,在利用數(shù)字設(shè)置數(shù)據(jù)標(biāo)識時,該數(shù)據(jù)標(biāo)識可設(shè)置為接收到寫請求的時間或緩存該 數(shù)據(jù)的時間,但本發(fā)明并不限于此。在本發(fā)明另一實施例中,標(biāo)識設(shè)置模塊210 可以設(shè)置在存儲設(shè)備的高速緩存中。
增值業(yè)務(wù)模塊220用于接收緩存模塊200緩存的數(shù)據(jù)和該數(shù)據(jù)對應(yīng)的數(shù)據(jù) 標(biāo)識,識別數(shù)據(jù)標(biāo)識對應(yīng)的寫請求與增值業(yè)務(wù)請求的先后關(guān)系,根據(jù)所述先后 關(guān)系對相應(yīng)的數(shù)據(jù)進(jìn)行執(zhí)行增值業(yè)務(wù)。本發(fā)明實施例中,所述增值業(yè)務(wù)包括 快照、鏡像和/或巻拷貝等等。
在緩存模塊200提交一個數(shù)據(jù)塊中的數(shù)據(jù)給增值業(yè)務(wù)模塊230時,會同時 提交數(shù)據(jù)標(biāo)識,即該數(shù)據(jù)塊的標(biāo)識,增值業(yè)務(wù)模塊230通過這個標(biāo)識識別出該 數(shù)據(jù)是增值業(yè)務(wù)之前的,還是增值業(yè)務(wù)之后的。具體地,在數(shù)據(jù)標(biāo)識為Cache 接收到寫請求的時間時,根據(jù)該寫請求的時間和接收到增值業(yè)務(wù)請求的時間, 增值業(yè)務(wù)模塊230就可以簡單地識別出該數(shù)據(jù)與增值業(yè)務(wù)請求的先后關(guān)系,從 而按照該先后關(guān)系對相應(yīng)的數(shù)據(jù)進(jìn)行執(zhí)行增值業(yè)務(wù),例如對快照時間點之前的 數(shù)據(jù)同時修改源巻和快照巻。同樣,在數(shù)據(jù)標(biāo)識為緩存模塊200緩存數(shù)據(jù)的時 間時,根據(jù)該緩存數(shù)據(jù)的時間和接收到增值業(yè)務(wù)請求的時間,增值業(yè)務(wù)模塊230 同樣可以簡單地識別出該數(shù)據(jù)與增值業(yè)務(wù)請求的先后關(guān)系,從而按照該先后關(guān) 系對相應(yīng)的數(shù)據(jù)進(jìn)行執(zhí)行增值業(yè)務(wù)。所述增值業(yè)務(wù)模塊220可以設(shè)置在本地或 遠(yuǎn)程存儲設(shè)備中。
根據(jù)本發(fā)明的如上實施例,將增值業(yè)務(wù)放置在cache之后,并通過對緩 存的數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識,使增值業(yè)務(wù)能夠分辯數(shù)據(jù)和增值業(yè)務(wù)時間點之間的 先后關(guān)系,從而能夠正確處理增值業(yè)務(wù);并且在執(zhí)行增值業(yè)務(wù)時,由于對主 機(jī)寫請求中數(shù)據(jù)的緩存操作設(shè)置在增值業(yè)務(wù)之前,因此高速緩存能立即響應(yīng) 主機(jī)的寫請求,大大減少了主機(jī)請求寫數(shù)據(jù)的時間,同時,Cache內(nèi)存可以 僅為源巻服務(wù),增加了 Cache內(nèi)存的使用效率,并縮短了創(chuàng)建增值業(yè)務(wù)的時 間。實施例2
本實施例另提供一種數(shù)據(jù)存儲系統(tǒng)。如圖3所示,該數(shù)據(jù)存儲系統(tǒng)包括
緩存模塊300、標(biāo)識設(shè)置模塊310以及增值業(yè)務(wù)模塊320。其中
所述緩存模塊300用于緩存來自主機(jī)的寫請求中攜帶的數(shù)據(jù)。該緩存模塊300 例如為存儲設(shè)備中的高速緩存(Cache)。
所述標(biāo)識設(shè)置模塊310用于接收來自增值業(yè)務(wù)模塊320的增值業(yè)務(wù)標(biāo)識, 按照預(yù)設(shè)的增值業(yè)務(wù)標(biāo)識和數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系,根據(jù)所述寫請求與增值業(yè)務(wù) 時間點的先后為所述數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識,并緩存在緩存模塊300中。作為本發(fā)明 另一實施例,所述標(biāo)識設(shè)置模塊310可以設(shè)置在存儲設(shè)備的高速緩存Cache中。
如果當(dāng)前標(biāo)識設(shè)置模塊310還尚未接收到增值業(yè)務(wù)標(biāo)識,可以預(yù)先約定為 寫請求中攜帶的數(shù)據(jù)設(shè)置一個初始標(biāo)識。
增值業(yè)務(wù)模塊320,用于根據(jù)預(yù)設(shè)的增值業(yè)務(wù)標(biāo)識和數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系識 別數(shù)據(jù)標(biāo)識對應(yīng)的寫請求與增值業(yè)務(wù)請求的先后關(guān)系,根據(jù)所述先后關(guān)系對相 應(yīng)的數(shù)據(jù)進(jìn)行執(zhí)行增值業(yè)務(wù)。本實施例中,增值業(yè)務(wù)模塊還包括增值業(yè)務(wù)標(biāo) 識設(shè)置模塊,用于接收增值業(yè)務(wù)請求,為該增值業(yè)務(wù)請求設(shè)置增值業(yè)務(wù)標(biāo)識。
本發(fā)明實施例中,預(yù)先設(shè)置的增值業(yè)務(wù)標(biāo)識和數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系,增值 業(yè)務(wù)模塊320接收到新的增值業(yè)務(wù)請求后,為該增值業(yè)務(wù)請求添加增值業(yè)務(wù)標(biāo) 識,并將該增值業(yè)務(wù)標(biāo)識通知給標(biāo)識設(shè)置模塊310; Cache接收到寫請求中的數(shù) 據(jù),將數(shù)據(jù)緩存至Cache中的緩存模塊,標(biāo)識設(shè)置模塊310按照預(yù)設(shè)的增值業(yè) 務(wù)標(biāo)識和數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系為緩存的數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識。其中,該預(yù)設(shè)的增 值業(yè)務(wù)標(biāo)識和數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系可以包括-
(1)在第一增值業(yè)務(wù)的時間點與在后相鄰第二增值業(yè)務(wù)的時間點之間緩存 的數(shù)據(jù)的標(biāo)識,與該第一增值業(yè)務(wù)的標(biāo)識相同或相對應(yīng);或者
(2)在第一增值業(yè)務(wù)的時間點與在后相鄰第二增值業(yè)務(wù)的時間點之間緩存 的數(shù)據(jù)的標(biāo)識,與該第二增值業(yè)務(wù)的標(biāo)識相同或相對應(yīng)。
在第(1)種情況下,當(dāng)前寫請求對應(yīng)的數(shù)據(jù)標(biāo)識與已接收到的最新的增值業(yè)務(wù)標(biāo)識相同或相對應(yīng)。當(dāng)前寫請求對應(yīng)的數(shù)據(jù)標(biāo)識與最新的增值業(yè)務(wù)標(biāo)識相 同是指對當(dāng)前寫請求中的數(shù)據(jù)設(shè)置與最新的增值業(yè)務(wù)標(biāo)識相同的標(biāo)識,該標(biāo)識 可以是數(shù)字、字母或其他字符,例如,最新的增值業(yè)務(wù)標(biāo)識為1時,將當(dāng)前寫
請求中的數(shù)據(jù)也設(shè)置標(biāo)識1;當(dāng)前寫請求對應(yīng)的數(shù)據(jù)標(biāo)識與最新的增值業(yè)務(wù)標(biāo)識
相對應(yīng)是指對當(dāng)前寫請求中的數(shù)據(jù)設(shè)置與最新的增值業(yè)務(wù)標(biāo)識相對應(yīng)的標(biāo)識, 該標(biāo)識可以是數(shù)字、字母或其他字符,例如,最新的增值業(yè)務(wù)標(biāo)識為1時,將
當(dāng)前寫請求中的數(shù)據(jù)也設(shè)置標(biāo)識l'、 Ol或A等,最新的增值業(yè)務(wù)標(biāo)識為2時, 將當(dāng)前寫請求中的數(shù)據(jù)也設(shè)置標(biāo)識2'、 02或B等,在此僅為舉例,本發(fā)明實施 例并不限于此。
圖4所示為本發(fā)明實施例中標(biāo)識設(shè)置模塊310設(shè)置數(shù)據(jù)標(biāo)識的示意圖。如圖4 所示,tl,t2,t3表示創(chuàng)建增值業(yè)務(wù)的時間點,也即增值業(yè)務(wù)模塊320接收到增值 業(yè)務(wù)請求的時間,對于標(biāo)識設(shè)置模塊310,由于增值業(yè)務(wù)模塊320接收到增值業(yè) 務(wù)請求后,設(shè)置并發(fā)送增值業(yè)務(wù)標(biāo)識是瞬間完成的,因此可以以接收到增值業(yè) 務(wù)標(biāo)識的時間作為對應(yīng)增值業(yè)務(wù)的時間點,標(biāo)識設(shè)置模塊310接收的對應(yīng)的增值 業(yè)務(wù)標(biāo)識,此處即編號,分別為1,2,3。
圖4中通過tl, t2, t3把時間坐標(biāo)軸分成了多個區(qū)間,每個區(qū)間內(nèi)緩存的數(shù)據(jù) 都會有同一個標(biāo)識。本實施例設(shè)定的數(shù)據(jù)標(biāo)識和增值業(yè)務(wù)標(biāo)識關(guān)系比較簡單 在第一增值業(yè)務(wù)的時間點與相鄰第二增值業(yè)務(wù)的時間點之間緩存的數(shù)據(jù)的標(biāo) 識,與該第二增值業(yè)務(wù)的標(biāo)識相同。例如,在第一增值業(yè)務(wù)l的時間點tl和下一 增值業(yè)務(wù)2的時間點t2之間的時間區(qū)間內(nèi)接收到寫請求時,Cache緩存該寫請求 中攜帶的數(shù)據(jù)并利用標(biāo)識設(shè)置模塊為該數(shù)據(jù)標(biāo)識為2,如圖4中的Date-2。根據(jù) 以上的標(biāo)識對應(yīng)關(guān)系,增值業(yè)務(wù)模塊可以按如下方式識別寫請求中的數(shù)據(jù)與增 值業(yè)務(wù)時間點的前后關(guān)系
當(dāng)數(shù)據(jù)標(biāo)識<=增值業(yè)務(wù)標(biāo)識時,該數(shù)據(jù)是該增值業(yè)務(wù)標(biāo)識對應(yīng)的增值業(yè)務(wù) 之前的;
當(dāng)數(shù)據(jù)標(biāo)識〉增值業(yè)務(wù)標(biāo)識時,該數(shù)據(jù)就是該增值業(yè)務(wù)標(biāo)識對應(yīng)的增值業(yè)務(wù)之后的。
作為本發(fā)明另一實施例,也可以預(yù)設(shè)如下數(shù)據(jù)標(biāo)識和增值業(yè)務(wù)標(biāo)識關(guān)系 在第一增值業(yè)務(wù)的時間點與相鄰第二增值業(yè)務(wù)的時間點之間緩存的數(shù)據(jù)的 標(biāo)識,與該第一增值業(yè)務(wù)的標(biāo)識相同。即將當(dāng)前最新的增值業(yè)務(wù)標(biāo)識設(shè)置為當(dāng)
前寫請求中的數(shù)據(jù)標(biāo)識,如圖5中的Date-0 Date-3,其中Date-O對應(yīng)的標(biāo)識"O" 為初始標(biāo)識。
根據(jù)以上的標(biāo)識對應(yīng)關(guān)系,則增值業(yè)務(wù)模塊可以按如下方式識別寫請求與 增值業(yè)務(wù)時間點的前后關(guān)系
當(dāng)數(shù)據(jù)標(biāo)識〈增值業(yè)務(wù)標(biāo)識時,該數(shù)據(jù)是該增值業(yè)務(wù)標(biāo)識對應(yīng)的增值業(yè)務(wù)之
前的;
當(dāng)數(shù)據(jù)標(biāo)識〉=增值業(yè)務(wù)標(biāo)識時,該數(shù)據(jù)就是該增值業(yè)務(wù)標(biāo)識對應(yīng)的增值業(yè) 務(wù)之后的。
作為本發(fā)明另一實施例,數(shù)據(jù)標(biāo)識為字母或符號時,增值業(yè)務(wù)模塊320根 據(jù)預(yù)設(shè)的增值業(yè)務(wù)標(biāo)識和數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系同樣可以識別數(shù)據(jù)標(biāo)識對應(yīng)的寫 請求與增值業(yè)務(wù)請求的先后關(guān)系,并對緩存的數(shù)據(jù)執(zhí)行相應(yīng)的增值業(yè)務(wù)。
作為本發(fā)明另一實施例,標(biāo)識設(shè)置模塊310還可以將數(shù)據(jù)標(biāo)識直接設(shè)置為 接收到寫請求的時間或緩存該數(shù)據(jù)的時間,增值業(yè)務(wù)模塊320根據(jù)該數(shù)據(jù)標(biāo)識 同樣可以識別數(shù)據(jù)標(biāo)識對應(yīng)的寫請求與增值業(yè)務(wù)請求的先后關(guān)系,并對緩存的 數(shù)據(jù)執(zhí)行相應(yīng)的增值業(yè)務(wù)。
本實施例中,當(dāng)有一個新標(biāo)識的數(shù)據(jù)希望寫入舊標(biāo)識的Cache數(shù)據(jù)塊時,需 要將舊標(biāo)識的數(shù)據(jù)先提交給增值業(yè)務(wù)模塊,然后釋放,再接納新標(biāo)識的數(shù)據(jù), 保證Cache里每個數(shù)據(jù)塊不會有新舊標(biāo)識數(shù)據(jù)的混合。因為Cache數(shù)據(jù)塊中的數(shù) 據(jù)不會很大,時間延遲是可以的;當(dāng)然也可以用更為復(fù)雜的處理流程進(jìn)行處理, 例如,為新數(shù)據(jù)創(chuàng)建新的Cache數(shù)據(jù)塊,舊標(biāo)識的數(shù)據(jù)放置到緊急提交給增值業(yè) 務(wù)的數(shù)據(jù)隊列,同時做一定的狀態(tài)設(shè)置,這樣主機(jī)就看不到延遲了。
當(dāng)創(chuàng)建新的增值業(yè)務(wù)時,增值業(yè)務(wù)標(biāo)識增加時,Cache會感受到增值業(yè)務(wù)標(biāo)識的變化,從而可以及時的為新寫入的數(shù)據(jù)給予新的標(biāo)識。
本實施例中,將增值業(yè)務(wù)放置在cache之后,并通過對緩存的數(shù)據(jù)設(shè)置數(shù) 據(jù)標(biāo)識,使增值業(yè)務(wù)能夠分辯數(shù)據(jù)和增值業(yè)務(wù)時間點之間的先后關(guān)系,從而能 夠正確處理增值業(yè)務(wù);并且在執(zhí)行增值業(yè)務(wù)時,由于對主機(jī)寫請求中數(shù)據(jù)的緩 存操作設(shè)置在增值業(yè)務(wù)之前,因此高速緩存能立即響應(yīng)主機(jī)的寫請求,大大減 少了主機(jī)請求寫數(shù)據(jù)的時間,同時,Cache內(nèi)存可以僅為源巻服務(wù),增加了Cac he內(nèi)存的使用效率,并縮短了創(chuàng)建增值業(yè)務(wù)的時間。
本發(fā)明如上實施例中,各個模塊可以分布于一個裝置,也可以分布于多個 裝置。并且各個模塊可以合并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。
實施例3
本發(fā)明實施例提供一種緩存數(shù)據(jù)的處理方法。如圖6所示,所述方法包括 步驟600,接收來自主機(jī)的寫請求,緩存該寫請求中攜帶的數(shù)據(jù)。 存儲設(shè)備接收到來自主機(jī)的寫請求Req后,利用高速緩存響應(yīng)主機(jī)的請求, 緩存該寫請求中攜帶的數(shù)據(jù)。
步驟620,為所述數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識。
所述數(shù)據(jù)標(biāo)識可以為數(shù)字、字符、符號或其他標(biāo)識。
Cache里的數(shù)據(jù)不是一個整體,是由一些離散的小塊數(shù)據(jù)組合而成。本實施 例中,可以以Cache中的數(shù)據(jù)塊為單位為緩存的數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識,即針對Cache 里的數(shù)據(jù)塊分別設(shè)置數(shù)據(jù)標(biāo)識,Cache里面的每一數(shù)據(jù)塊各自擁有自己的數(shù)據(jù)標(biāo) 識,同一個物理巻的Cache中不同數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)標(biāo)識可以不一樣。在Cache 提交數(shù)據(jù)塊中數(shù)據(jù)給增值業(yè)務(wù)模塊時,會同時提交該數(shù)據(jù)塊的數(shù)據(jù)標(biāo)識,增值 業(yè)務(wù)模塊通過這個數(shù)據(jù)標(biāo)識能夠識別出該數(shù)據(jù)是增值業(yè)務(wù)之前的,還是增值業(yè) 務(wù)之后的。
本發(fā)明實施例中,為數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識的方式有很多種,例如但不限于 數(shù)據(jù)標(biāo)識可設(shè)置為接收到寫請求的時間或緩存該數(shù)據(jù)的時間;或者接收來自增值業(yè)務(wù)模塊的增值業(yè)務(wù)標(biāo)識,按照預(yù)設(shè)的增值業(yè)務(wù)標(biāo)識和數(shù)據(jù) 標(biāo)識的對應(yīng)關(guān)系,并根據(jù)所述寫請求與增值業(yè)務(wù)時間點的先后為所述數(shù)據(jù)設(shè)置
數(shù)據(jù)標(biāo)識。如果當(dāng)前Cache還尚未接收到增值業(yè)務(wù)的標(biāo)識,可以預(yù)先約定為寫請 求中攜帶的數(shù)據(jù)設(shè)置一個初始標(biāo)識。其中,該預(yù)設(shè)的增值業(yè)務(wù)標(biāo)識和數(shù)據(jù)標(biāo)識
的對應(yīng)關(guān)系可以包括
在第一增值業(yè)務(wù)的時間點與在后相鄰第二增值業(yè)務(wù)的時間點之間緩存的數(shù)
據(jù)的標(biāo)識,與該第一增值業(yè)務(wù)的標(biāo)識相同或相對應(yīng);或者
在第一增值業(yè)務(wù)的時間點與在后相鄰第二增值業(yè)務(wù)的時間點之間緩存的數(shù) 據(jù)的標(biāo)識,與該第二增值業(yè)務(wù)的標(biāo)識相同或相對應(yīng)。
本實施例中,當(dāng)有一個新標(biāo)識的數(shù)據(jù)希望寫入舊標(biāo)識的Cache數(shù)據(jù)塊時,需 要將舊標(biāo)識的數(shù)據(jù)先提交給增值業(yè)務(wù)模塊,然后釋放,再接納新標(biāo)識的數(shù)據(jù), 保證Cache里每個數(shù)據(jù)塊不會有新舊標(biāo)識數(shù)據(jù)的混合。因為Cache數(shù)據(jù)塊中的數(shù) 據(jù)不會很大,時間延遲是可以的;當(dāng)然也可以用更為復(fù)雜的處理流程進(jìn)行處理, 例如,為新數(shù)據(jù)創(chuàng)建新的Cache數(shù)據(jù)塊,舊標(biāo)識的數(shù)據(jù)放置到緊急提交給增值業(yè) 務(wù)的數(shù)據(jù)隊列,同時做一定的狀態(tài)設(shè)置,這樣主機(jī)就看不到延遲了。
當(dāng)創(chuàng)建新的增值業(yè)務(wù)時,增值業(yè)務(wù)標(biāo)識增加時,Cache會感受到增值業(yè)務(wù)標(biāo) 識的變化,從而可以及時的為新寫入的數(shù)據(jù)給予新的標(biāo)識。
本發(fā)明實施例中,步驟600、 620的順序可以互換,即可以先為寫請求中的 數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識,再將設(shè)置了標(biāo)識的數(shù)據(jù)緩存在Cache的數(shù)據(jù)塊中。
步驟640,識別所述數(shù)據(jù)標(biāo)識對應(yīng)的寫請求與增值業(yè)務(wù)時間點的先后關(guān)系, 對所述數(shù)據(jù)標(biāo)識對應(yīng)的緩存的數(shù)據(jù)執(zhí)行相應(yīng)的增值業(yè)務(wù)。
以快照為例,快照模塊根據(jù)數(shù)據(jù)標(biāo)識對應(yīng)的寫請求與某一快照時間點的先 后關(guān)系,對緩存的數(shù)據(jù)可執(zhí)行如下操作-
如果寫請求在該增值業(yè)務(wù)時間點之前,則將該數(shù)據(jù)備份在快照巻中。該快 照巻可以是一個真正的數(shù)據(jù)巻,也可以僅是一個指針表而不是真正的數(shù)據(jù)巻, 快照巻建立了與源巻對應(yīng)的指針,便完成了對源巻的快照。但如果源巻的數(shù)據(jù)有變化,快照巻的指針表將被更新,該為指向原始數(shù)據(jù)的位置。
如果寫請求在該快照時間點之后,則不將該數(shù)據(jù)備份在快照巻中。
作為本發(fā)明另一實施例,如圖7所示,在步驟620前還可包括如下步驟步驟610,接收新的增值業(yè)務(wù)請求,為該增值業(yè)務(wù)請求添加增值業(yè)務(wù)標(biāo)識。本發(fā)明如上實施例中,存儲設(shè)備接收到來自主機(jī)的寫請求Req后,首先利用高速緩存響應(yīng)主機(jī)的請求,緩存該寫請求中攜帶的數(shù)據(jù),并將高速緩存中的數(shù)據(jù)設(shè)置標(biāo)識;設(shè)置了標(biāo)識的數(shù)據(jù)提交給增值業(yè)務(wù)模塊后,增值業(yè)務(wù)模塊可以根據(jù)數(shù)據(jù)標(biāo)識識別該數(shù)據(jù)對應(yīng)的寫請求和增值業(yè)務(wù)請求時間點之間的先后關(guān)系,從而根據(jù)該先后關(guān)系處理增值業(yè)務(wù),從而提高了業(yè)務(wù)的處理效率。由于高速緩存能立即響應(yīng)主機(jī)的寫請求,因此大大減少了主機(jī)請求寫數(shù)據(jù)的時間,同時,增加了 Cache內(nèi)存的使用效率,并減少了創(chuàng)建增值業(yè)務(wù)的延時。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中,比如ROM/RAM、磁碟、光盤等。
以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種緩存數(shù)據(jù)的處理方法,其特征在于,包括緩存來自主機(jī)的寫請求中攜帶的數(shù)據(jù);為所述數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識;識別所述數(shù)據(jù)標(biāo)識對應(yīng)的寫請求與增值業(yè)務(wù)時間點的先后關(guān)系,根據(jù)所述先后關(guān)系對所述數(shù)據(jù)標(biāo)識對相應(yīng)的數(shù)據(jù)進(jìn)行執(zhí)行增值業(yè)務(wù)。
2、 根據(jù)權(quán)利要求l所述的方法,其特征在于,所述方法還包括-接收增值業(yè)務(wù)請求,為所述增值業(yè)務(wù)請求設(shè)置增值業(yè)務(wù)標(biāo)識。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,為所述數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識的步驟包括按照預(yù)設(shè)的數(shù)據(jù)標(biāo)識和增值業(yè)務(wù)標(biāo)識的對應(yīng)關(guān)系,根據(jù)所述寫請求與增值 業(yè)務(wù)時間點的先后為所述緩存的數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述預(yù)設(shè)的數(shù)據(jù)標(biāo)識和增值 業(yè)務(wù)標(biāo)識的對應(yīng)關(guān)系包括在第一增值業(yè)務(wù)的時間點與在后相鄰第二增值業(yè)務(wù)的時間點之間緩存的數(shù)據(jù)的標(biāo)識,與所述第一增值業(yè)務(wù)的標(biāo)識相同或相對應(yīng);或者在第一增值業(yè)務(wù)的時間點與在后相鄰第二增值業(yè)務(wù)的時間點之間緩存的數(shù) 據(jù)的標(biāo)識,與所述第二增值業(yè)務(wù)的標(biāo)識相同或相對應(yīng)。
5、 根據(jù)權(quán)利要求l所述的方法,其特征在于所述數(shù)據(jù)標(biāo)識為接收到所述數(shù)據(jù)對應(yīng)的寫請求的時間或緩存該數(shù)據(jù)的時間。
6、 根據(jù)權(quán)利要求1 5中任意一項所述的方法,其特征在于 所述數(shù)據(jù)標(biāo)識以數(shù)據(jù)塊為單位進(jìn)行設(shè)置, 一個數(shù)據(jù)塊對應(yīng)一個數(shù)據(jù)標(biāo)識。
7、 一種數(shù)據(jù)存儲系統(tǒng),其特征在于,所述系統(tǒng)包括 緩存模塊,用于緩存來自主機(jī)的寫請求中攜帶的數(shù)據(jù); 標(biāo)識設(shè)置模塊,用于為所述數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識;增值業(yè)務(wù)模塊,用于識別所述數(shù)據(jù)標(biāo)識對應(yīng)的寫請求與增值業(yè)務(wù)時間點的 先后關(guān)系,根據(jù)所述先后關(guān)系對所述數(shù)據(jù)標(biāo)識對相應(yīng)的數(shù)據(jù)進(jìn)行執(zhí)行增值業(yè)務(wù)。
8、 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述增值業(yè)務(wù)模塊還用于接 收增值業(yè)務(wù)請求,為所述增值業(yè)務(wù)請求設(shè)置增值業(yè)務(wù)標(biāo)識,并傳輸給所述標(biāo)識 設(shè)置模塊。
9、 根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于所述標(biāo)識設(shè)置模塊按照預(yù)設(shè)的數(shù)據(jù)標(biāo)識和增值業(yè)務(wù)標(biāo)識的對應(yīng)關(guān)系,根據(jù) 所述寫請求與增值業(yè)務(wù)時間點的先后為所述數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識。
全文摘要
本發(fā)明提供一種緩存數(shù)據(jù)的處理方法及數(shù)據(jù)存儲系統(tǒng),該方法包括緩存來自主機(jī)的寫請求中攜帶的數(shù)據(jù);為緩存的數(shù)據(jù)設(shè)置數(shù)據(jù)標(biāo)識;識別所述數(shù)據(jù)標(biāo)識對應(yīng)的寫請求與增值業(yè)務(wù)時間點的先后關(guān)系,根據(jù)所述先后關(guān)系對所述數(shù)據(jù)標(biāo)識對應(yīng)的緩存的數(shù)據(jù)進(jìn)行相應(yīng)的處理。本發(fā)明實施例,可以提高業(yè)務(wù)的處理效率,并減少了主機(jī)寫請求的延時。
文檔編號G06F11/14GK101526925SQ20091013205
公開日2009年9月9日 申請日期2009年4月15日 優(yōu)先權(quán)日2009年4月15日
發(fā)明者陳立耀 申請人:成都市華為賽門鐵克科技有限公司