欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

存儲方法及存儲裝置制造方法

文檔序號:6490042閱讀:244來源:國知局
存儲方法及存儲裝置制造方法
【專利摘要】本發(fā)明公開了一種存儲方法及存儲裝置,用于存儲架構(gòu)中,存儲架構(gòu)包括應(yīng)用單元以及至少兩個(gè)存儲群,存儲方法包括:接收所述應(yīng)用單元傳來的數(shù)據(jù);將同一數(shù)據(jù)索引對應(yīng)的數(shù)據(jù)分拆成至少兩個(gè)數(shù)據(jù)項(xiàng);為每個(gè)數(shù)據(jù)項(xiàng)加上時(shí)間戳;根據(jù)所述至少兩個(gè)存儲群的可寫狀態(tài),將所述至少兩個(gè)數(shù)據(jù)項(xiàng)存儲到所述兩個(gè)存儲群的至少其中之一。本發(fā)明具有較高的數(shù)據(jù)容災(zāi)及訪問容災(zāi)的效果,同時(shí)實(shí)現(xiàn)較優(yōu)選的負(fù)載均衡,提高存儲架構(gòu)中的靈活性和可用性。
【專利說明】存儲方法及存儲裝置
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)容錯(cuò)存儲領(lǐng)域,特別涉及一種存儲方法及存儲裝置。
【【背景技術(shù)】】
[0002]隨著互聯(lián)網(wǎng)的普及與快速發(fā)展,流通的負(fù)載也越來越大,因此存儲架構(gòu)需具有穩(wěn)定的特性,讓使用者在讀取或?qū)懭霐?shù)據(jù)時(shí)不會發(fā)生問題。
[0003]請參考圖1,其為現(xiàn)有技術(shù)的存儲架構(gòu)方塊圖。存儲架構(gòu)包括應(yīng)用單元10、存儲群12以及兩個(gè)存儲器14、16,應(yīng)用單元10例如是使用者端,存儲群12用于管理兩個(gè)存儲器
14、16。所述存儲架構(gòu)中,兩個(gè)存儲器14、16存儲相同的數(shù)據(jù),當(dāng)兩個(gè)存儲器14、16的其中一個(gè)發(fā)生故障時(shí),還有另外一個(gè)有安全且正確的數(shù)據(jù)以供應(yīng)用單元10讀取,這種使用備份方式防止數(shù)據(jù)不見的作法稱為數(shù)據(jù)容災(zāi)。
[0004]當(dāng)兩個(gè)存儲器14、16的其中一個(gè)發(fā)生故障時(shí),另外一個(gè)相對應(yīng)的數(shù)據(jù)不可以寫入,藉此保持?jǐn)?shù)據(jù)的一致性,此時(shí)稱為只讀,當(dāng)存儲群12發(fā)生只讀時(shí),應(yīng)用單元10只能從存儲群12管理的存儲器14、16讀取數(shù)據(jù)而不能將數(shù)據(jù)寫入存儲器14、16,此種情況稱為訪問故障,會影響使用者端(也就是應(yīng)用單元10),例如使用者端不能通過即時(shí)通信(InstantMessage ;IM)軟件QQ發(fā)表說說,亦即不能將發(fā)表的說說寫入存儲器14、16中。
[0005]若是故障的存儲器確定無法再提供服務(wù),可以用人工方式將另一個(gè)存儲器從只讀改為可寫,此時(shí)對應(yīng)的數(shù)據(jù)只有一份可供使用,必須遷移到其它可以存儲兩份的存儲群中。
[0006]請參考圖2,其為現(xiàn)有技術(shù)的數(shù)據(jù)組織示意圖。圖2是以非關(guān)系型順序查詢語言(Not only Sequential Query Language ;NoSQL)中的鍵值對(Key/Value pair)數(shù)據(jù)庫為例,在現(xiàn)有技術(shù)的存儲架構(gòu)中,是將一個(gè)鍵(以下稱為key)對應(yīng)一個(gè)值(以下稱為value),其中key例如是QQ號,value可以視為列表且包括多個(gè)數(shù)據(jù)(圖中以數(shù)據(jù)I至數(shù)據(jù)8表示),每個(gè)數(shù)據(jù)例如是QQ的說說、動(dòng)態(tài)的一條記錄。
[0007]現(xiàn)有技術(shù)的存儲架構(gòu)中,添加數(shù)據(jù)的步驟如下:讀取value、解碼出數(shù)據(jù)列表、添加數(shù)據(jù)、編碼成數(shù)據(jù)列表、存儲到圖1的存儲器14、16 ;更新數(shù)據(jù)的步驟如下:讀取value、解碼出數(shù)據(jù)列表、找到對應(yīng)的數(shù)據(jù)后更新、編碼成數(shù)據(jù)列表、存儲到圖1的存儲器14、16 ;刪除數(shù)據(jù)的步驟如下:讀取value、解碼出數(shù)據(jù)列表、找到對應(yīng)的數(shù)據(jù)后刪除、編碼成數(shù)據(jù)列表、存儲到圖1的存儲器14、16。由于一個(gè)key對應(yīng)一個(gè)value,亦即對應(yīng)一個(gè)數(shù)據(jù)列表,因此不論是添加、更新或刪除數(shù)據(jù)列表中的某個(gè)數(shù)據(jù),都必須讀取整個(gè)數(shù)據(jù)列表后再寫入整個(gè)數(shù)據(jù)列表,浪費(fèi)容錯(cuò)存儲時(shí)間而降低存儲架構(gòu)的效率。
[0008]故,有必要 提出一種新的技術(shù)方案,以解決上述存儲群12發(fā)生只讀時(shí),應(yīng)用單元10不能將數(shù)據(jù)寫入的技術(shù)問題,以及添加、更新或刪除數(shù)據(jù)都必須讀取整個(gè)數(shù)據(jù)列表后再寫入整個(gè)數(shù)據(jù)列表,導(dǎo)致存儲架構(gòu)效率不佳的技術(shù)問題。

【發(fā)明內(nèi)容】

[0009]本發(fā)明的一個(gè)目的在于提供一種存儲方法及存儲裝置,不僅具有較高的數(shù)據(jù)容災(zāi)及訪問容災(zāi)的效果,同時(shí)實(shí)現(xiàn)較優(yōu)選的負(fù)載均衡,提高存儲架構(gòu)中各節(jié)點(diǎn)設(shè)備的靈活性和可用性。
[0010]為達(dá)到上述目的,本發(fā)明提供了一種存儲方法,用于存儲架構(gòu),所述存儲架構(gòu)包括應(yīng)用單元以及至少兩個(gè)存儲群,所述存儲方法包括:
[0011]接收所述應(yīng)用單元傳來的數(shù)據(jù);
[0012]將同一數(shù)據(jù)索引對應(yīng)的數(shù)據(jù)分拆成至少兩個(gè)數(shù)據(jù)項(xiàng);
[0013]為每個(gè)數(shù)據(jù)項(xiàng)加上時(shí)間戳;以及
[0014]根據(jù)所述至少兩個(gè)存儲群的可寫狀態(tài),將所述至少兩個(gè)數(shù)據(jù)項(xiàng)存儲到所述兩個(gè)存儲群的至少其中之一。
[0015]在上述存儲方法中,根據(jù)所述至少兩個(gè)存儲群的可寫狀態(tài),將所述至少兩個(gè)數(shù)據(jù)項(xiàng)存儲到所述兩個(gè)存儲群的至少其中之一的步驟中包括:
[0016]若要寫入的存儲群為只讀,則將所述數(shù)據(jù)項(xiàng)寫入所述至少兩個(gè)存儲群的另外一個(gè)。
[0017]在上述存儲方法中,根據(jù)所述至少兩個(gè)存儲群的可寫狀態(tài),將所述至少兩個(gè)數(shù)據(jù)項(xiàng)存儲到所述兩個(gè)存儲群的至少其中之一的步驟中包括:
[0018]若所述至少兩個(gè)存儲群均為可寫,則根據(jù)所述至少兩個(gè)存儲群的負(fù)載情況,將所述數(shù)據(jù)項(xiàng)寫入所述至少兩個(gè)存儲群的至少其中之一。
[0019]在上述存儲方法中,還包括:
[0020]讀取所述至少兩個(gè)存儲群中對應(yīng)的數(shù)據(jù)項(xiàng),將所述數(shù)據(jù)項(xiàng)更新后,加上時(shí)間戳,
[0021]若原數(shù)據(jù)項(xiàng)對應(yīng)的存儲群可寫,則更新后寫回原存儲群;
[0022]若原數(shù)據(jù)項(xiàng)對應(yīng)的存儲群只讀,則更新后將該數(shù)據(jù)項(xiàng)寫入其它可寫存儲群至少其中之一。
[0023]在上述存儲方法中,還包括:
[0024]讀取所述至少兩個(gè)存儲群對應(yīng)于同一數(shù)據(jù)索引的各個(gè)數(shù)據(jù)項(xiàng),以及返回相同數(shù)據(jù)項(xiàng)中時(shí)間戳較新的數(shù)據(jù)項(xiàng);
[0025]或者
[0026]讀取所述至少兩個(gè)存儲群的同一個(gè)數(shù)據(jù)項(xiàng),以及返回相同數(shù)據(jù)項(xiàng)中時(shí)間戳較新的數(shù)據(jù)項(xiàng)。
[0027]在上述存儲方法中,還包括:
[0028]讀取所述至少兩個(gè)存儲群;以及
[0029]將要?jiǎng)h除的數(shù)據(jù)項(xiàng)從對應(yīng)的存儲群中刪除。
[0030]本發(fā)明還提供了一種存儲裝置,用于存儲架構(gòu),所述存儲架構(gòu)包括應(yīng)用單元以及至少兩個(gè)存儲群,所述存儲裝置包括:
[0031]接收模塊,用于接收所述應(yīng)用單元傳來的數(shù)據(jù);
[0032]分拆模塊,連接至所述接收模塊,用于將同一數(shù)據(jù)索引對應(yīng)的數(shù)據(jù)分拆成至少兩個(gè)數(shù)據(jù)項(xiàng);
[0033]時(shí)間戳標(biāo)識模塊,連接至所述分拆模塊,用于為每個(gè)數(shù)據(jù)項(xiàng)加上時(shí)間戳;
[0034]容災(zāi)判斷模塊,用于判斷所述至少兩個(gè)存儲群是否只讀;以及
[0035]寫入模塊,連接至所述時(shí)間戳標(biāo)識模塊及所述容災(zāi)判斷模塊,用于將所述至少兩個(gè)數(shù)據(jù)項(xiàng)存儲到所述兩個(gè)存儲群的至少其中之一。
[0036]在上述存儲裝置中,還包括:
[0037]讀取模塊,連接至所述時(shí)間戳標(biāo)識模塊,用于讀取所述至少兩個(gè)存儲群中的數(shù)據(jù)項(xiàng)。
[0038]在上述存儲裝置中,還包括:
[0039]負(fù)載判斷模塊,連接至所述寫入模塊,用于判斷所述兩個(gè)存儲群的負(fù)載情況。
[0040]在上述存儲裝置中,還包括:
[0041]時(shí)間戳判斷模塊,連接至所述讀取模塊,用于判斷所述至少兩個(gè)存儲群中具有較新時(shí)間戳的數(shù)據(jù)項(xiàng)。
[0042]在上述存儲裝置中,還包括:
[0043]刪除模塊,連接至所述讀取模塊,用于將要?jiǎng)h除的數(shù)據(jù)項(xiàng)從對應(yīng)的存儲群中刪除。
[0044]本發(fā)明的存儲方法及存儲裝置確保應(yīng)用單元的數(shù)據(jù)項(xiàng)一定能寫入兩個(gè)存儲群的其中一個(gè),使得應(yīng)用單元達(dá)到訪問容災(zāi)的功能,亦即隨時(shí)都能可讀可寫,同時(shí)數(shù)據(jù)項(xiàng)又不會不一致。再者,由于數(shù)據(jù)分拆儲存,因此添加、更新或刪除數(shù)據(jù)時(shí)只需要針對對應(yīng)的存儲群作寫入的動(dòng)作,能大幅降低寫入時(shí)間,增加效率。
[0045]為讓本發(fā)明的上述內(nèi)容能更明顯易懂,下文特舉優(yōu)選實(shí)施例,并配合所附圖式,作詳細(xì)說明如下:
【【專利附圖】

【附圖說明】】
[0046]圖1為現(xiàn)有技術(shù)的存儲架構(gòu)方塊圖;
[0047]圖2為現(xiàn)有技術(shù)的數(shù)據(jù)組織示意圖;
[0048]圖3為本發(fā)明中存儲方法的較佳實(shí)施例流程圖;
[0049]圖4為本發(fā)明的存儲方法所應(yīng)用的存儲架構(gòu)及存儲裝置;
[0050]圖5為圖3中步驟A40的一個(gè)實(shí)施例;
[0051]圖6為本發(fā)明的存儲方法中更新數(shù)據(jù)項(xiàng)的步驟;
[0052]圖7為本發(fā)明的存儲方法中判斷時(shí)間戳的步驟;
[0053]圖8為為本發(fā)明的存儲方法中另一個(gè)判斷時(shí)間戳的步驟;
[0054]圖9為本發(fā)明的存儲方法中刪除數(shù)據(jù)項(xiàng)的步驟;
[0055]圖10為本發(fā)明的存儲方法將數(shù)據(jù)分拆后的組知示意圖;
[0056]圖11為本發(fā)明中存儲裝置的方塊圖。
【【具體實(shí)施方式】】
[0057]以下各實(shí)施例的說明是參考附加的圖式,用以例示本發(fā)明可用以實(shí)施的特定實(shí)施例。
[0058]請參考圖3及圖4,圖3 為本發(fā)明中存儲方法的較佳實(shí)施例流程圖,圖4為本發(fā)明的存儲方法所應(yīng)用的存儲架構(gòu)2及存儲裝置90。所述存儲架構(gòu)2包括應(yīng)用單元20以及至少兩個(gè)存儲群(以第一存儲群22及第二存儲群28表示)。第一存儲群22用于管理存儲器24,26且至少包括一個(gè)存儲服務(wù)器220與一個(gè)容災(zāi)服務(wù)器222,第二存儲群28用于管理存儲器30、32且至少包括一個(gè)存儲服務(wù)器280與一個(gè)容災(zāi)服務(wù)器282。存儲裝置90將于圖11中詳述。
[0059]應(yīng)用單元20例如是執(zhí)行即時(shí)通信軟件QQ的使用者端,存儲器24、26、30、32通常視為存儲層,作為存儲使用者端發(fā)表說說、動(dòng)態(tài)及其它數(shù)據(jù)的數(shù)據(jù)庫。
[0060]要說明的是,以下描述讀取或?qū)懭氲谝淮鎯θ?2是指讀取或?qū)懭氲谝淮鎯θ?2管理的兩個(gè)存儲器24、26,描述讀取或?qū)懭氲诙鎯θ?8是指讀取或?qū)懭氲诙鎯θ?8管理的兩個(gè)存儲器30、32。
[0061]本發(fā)明的存儲方法包括:
[0062]A10.接收應(yīng)用單元20傳來的數(shù)據(jù)。
[0063]A20.將同一數(shù)據(jù)索引對應(yīng)的數(shù)據(jù)分拆成至少兩個(gè)數(shù)據(jù)項(xiàng),數(shù)據(jù)索引例如是應(yīng)用單元20 (亦即使用者端)通過即時(shí)通信軟件QQ登錄的QQ號。數(shù)據(jù)項(xiàng)例如是應(yīng)用單元20 (亦即使用者端)通過即時(shí)通信軟件QQ發(fā)送的說說、動(dòng)態(tài)。
[0064]A30.為每個(gè)數(shù)據(jù)項(xiàng)加上時(shí)間戳。
[0065]A40.根據(jù)第一存儲群22及第二存儲群28的可寫狀態(tài),將所述至少兩個(gè)數(shù)據(jù)項(xiàng)存儲到第一存儲群22及第二存儲群28的至少其中之一。若要寫入的存儲群為只讀,則將數(shù)據(jù)項(xiàng)寫入兩個(gè)存儲群的另外一個(gè),若兩個(gè)存儲群均為可寫,則根據(jù)兩個(gè)存儲群的負(fù)載情況,將數(shù)據(jù)項(xiàng)寫入第一存儲群22及第二存儲群28的至少其中之一。
[0066]請參閱圖3至圖5,圖5為圖3中步驟A40的一個(gè)實(shí)施例,該實(shí)施例描述寫入(亦即新增)數(shù)據(jù)項(xiàng)的步驟,包括:
[0067]A400.判斷數(shù)據(jù)項(xiàng)要寫入第一存儲群22或第二存儲群28,若要寫入第一存儲群22,進(jìn)行步驟A402,若要寫入第二存儲群28,進(jìn)行步驟A404。
[0068]A402.判斷第一存儲群22是否只讀,若是,進(jìn)入步驟A406,若否,進(jìn)入步驟A408。
[0069]A404.判斷第二存儲群28是否只讀,若是,進(jìn)入步驟A408,若否,進(jìn)入步驟A406。
[0070]A406.寫入第二存儲群28,亦即將數(shù)據(jù)項(xiàng)寫入存儲器30、32。
[0071]A408.寫入第一存儲群22,亦即將數(shù)據(jù)項(xiàng)寫入存儲器24、26。
[0072]在另一實(shí)施例中,若第一存儲群22及第二存儲群22都正常而未發(fā)生只讀的情況時(shí),應(yīng)用單元20的數(shù)據(jù)可以寫入第一存儲群22或第二存儲群28,本發(fā)明的存儲方法可以基于第一存儲群22與第二存儲群28的負(fù)載,靈活地選擇其中一個(gè)存儲群來存儲數(shù)據(jù)。更明確地說,本發(fā)明的存儲方法可以判斷哪一個(gè)存儲群的負(fù)載例如數(shù)據(jù)量較少,將數(shù)據(jù)寫入數(shù)據(jù)較少的存儲群,達(dá)到均衡優(yōu)化的目的。
[0073]要說明的是,第一存儲群22與第二存儲群28同時(shí)發(fā)生只能讀取而不能寫入的機(jī)率非常小,因此本發(fā)明的存儲方法可以確保應(yīng)用單元20的數(shù)據(jù)一定能寫入第一存儲群22與第二存儲群28的其中一個(gè)。舉例來說,本發(fā)明的存儲方法能確保應(yīng)用單元20(亦即使用者端)通過即時(shí)通信軟件QQ所發(fā)送的說說、動(dòng)態(tài)一定能儲存在第一存儲群22與第二存儲群28的其中一個(gè)而不會漏掉。
[0074]當(dāng)然,本發(fā)明的存儲方法可以應(yīng)用在包括更多存儲群的存儲架構(gòu),例如包括三個(gè)存儲群,三個(gè)存儲群同時(shí)發(fā)生只能讀取而不能寫入的機(jī)率是不可能的。
[0075]請參閱圖3至圖4及圖6,本發(fā)明的存儲方法還包括如圖6更新數(shù)據(jù)項(xiàng)的步驟,包括:
[0076]A50.讀取第一存儲群22與第二存儲群28中對應(yīng)的數(shù)據(jù)項(xiàng),將所述數(shù)據(jù)項(xiàng)更新后,加上時(shí)間戳。
[0077]A60.判斷原數(shù)據(jù)項(xiàng)對應(yīng)的存儲群是否可寫,若是,進(jìn)行步驟A70,若否(即原數(shù)據(jù)項(xiàng)對應(yīng)的存儲群只讀),進(jìn)行步驟A80。
[0078]A70.更新后寫回原存儲群。
[0079]A80.更新后將該數(shù)據(jù)項(xiàng)寫入其它可寫存儲群至少其中之一。
[0080]在本實(shí)施例中,若原數(shù)據(jù)項(xiàng)對應(yīng)至第一存儲群22而第一存儲群22可寫,則加上時(shí)間戳的更新后數(shù)據(jù)項(xiàng)寫回第一存儲群22,若第一存儲群22只讀,則加上時(shí)間戳的更新后數(shù)據(jù)項(xiàng)寫入第二存儲群28。若原數(shù)據(jù)項(xiàng)對應(yīng)至第二存儲群28而第二存儲群28可寫,則加上時(shí)間戳的更新后數(shù)據(jù)項(xiàng)寫回第二存儲群28,若第二存儲群28只讀,則加上時(shí)間戳的更新后數(shù)據(jù)項(xiàng)寫入第一存儲群22。
[0081]在一實(shí)施例中,本發(fā)明的存儲方法還包括如圖7的判斷時(shí)間戳的步驟:
[0082]A90.讀取第一存儲群22與第二存儲群28對應(yīng)于同一數(shù)據(jù)索引的各個(gè)數(shù)據(jù)項(xiàng)。
[0083]A100.返回相同數(shù)據(jù)項(xiàng)中時(shí)間戳較新的數(shù)據(jù)項(xiàng)。
[0084]在另一實(shí)施例中,本發(fā)明的存儲方法還包括如圖8的判斷時(shí)間戳的步驟:
[0085]Al 10.讀取第一存儲群22與第二存儲群28的同一個(gè)數(shù)據(jù)項(xiàng)。
[0086]A120.返回相同數(shù)據(jù)項(xiàng)中時(shí)間戳較新的數(shù)據(jù)項(xiàng)。
[0087]請參閱圖3至圖4及圖9,本發(fā)明的存儲方法還包括如圖9刪除數(shù)據(jù)項(xiàng)的步驟,包括:
[0088]A130.讀取第一存儲群22及第二存儲群28。
[0089]A140.將要?jiǎng)h除的數(shù)據(jù)項(xiàng)從對應(yīng)的存儲群中刪除。
[0090]上述步驟A140包括:
[0091]A1400.判斷要?jiǎng)h除的數(shù)據(jù)項(xiàng)是否在第一存儲群22,若是,進(jìn)入步驟A1402,若否,進(jìn)入步驟A1404。
[0092]A1402.刪除第一存儲群22對應(yīng)的數(shù)據(jù)項(xiàng)。
[0093]A1404.刪除第二存儲群28對應(yīng)的數(shù)據(jù)項(xiàng)。
[0094]以下將介紹將數(shù)據(jù)分拆及容錯(cuò)存儲數(shù)據(jù)的實(shí)際例子。請參閱圖4及圖10,圖10為本發(fā)明的存儲方法將數(shù)據(jù)分拆后的組知示意圖。圖中所示是以鍵值對(Key/Value pair)的數(shù)據(jù)庫為例,然而本發(fā)明并非限制在鍵值對的數(shù)據(jù)庫,也可以適用于其它類型的數(shù)據(jù)庫。
[0095]本發(fā)明的存儲方法將同一個(gè)數(shù)據(jù)索弓Kkey)對應(yīng)的數(shù)據(jù)分拆成多個(gè)數(shù)據(jù)項(xiàng)(value),數(shù)據(jù)索引例如是QQ號,本實(shí)施例中同一個(gè)數(shù)據(jù)索引對應(yīng)的數(shù)據(jù)分拆成15個(gè)數(shù)據(jù)項(xiàng)(S卩15個(gè)value),以數(shù)據(jù)項(xiàng)I至數(shù)據(jù)項(xiàng)15表示,每個(gè)數(shù)據(jù)項(xiàng)例如是QQ的說說、動(dòng)態(tài)的一條記錄。每個(gè)數(shù)據(jù)項(xiàng)可以寫入第一存儲群22或第二存儲群28,在圖10中,數(shù)據(jù)項(xiàng)1、3、8、
9、10、12、13、15寫入第一存儲群22,數(shù)據(jù)項(xiàng)2、3、4、5、6、7、11、14寫入第二存儲群28。
[0096]由于一個(gè)數(shù)據(jù)索引對應(yīng)的數(shù)據(jù)分拆成15個(gè)數(shù)據(jù)項(xiàng),與現(xiàn)有技術(shù)相比,讀寫粒度更小。
[0097]若需要寫入(亦即添加)數(shù)據(jù)項(xiàng)16時(shí),首先讀取第一存儲群22與第二存儲群28,如上所述,本發(fā)明的存儲方法可以判斷哪一個(gè)存儲群的負(fù)載較少,將數(shù)據(jù)項(xiàng)16寫入數(shù)據(jù)較少的存儲群,達(dá)到均衡優(yōu)化的目的,例如把數(shù)據(jù)項(xiàng)16寫入第一存儲群22,由于第二存儲群28數(shù)據(jù)未變動(dòng),不需要重新寫入第二存儲群28,也就是說,不需要作無效寫入的動(dòng)作。簡言之,寫入數(shù)據(jù)項(xiàng)時(shí)只需要寫入第一存儲群22與第二存儲群28的其中一個(gè),與現(xiàn)有技術(shù)相比,本發(fā)明的存儲方法可大幅減少寫入時(shí)間,增加存儲架構(gòu)的效率。
[0098]更新時(shí),假設(shè)數(shù)據(jù)項(xiàng)3初始是存儲在第一存儲群22中,需要更新數(shù)據(jù)項(xiàng)3時(shí)若第一存儲群22發(fā)生只讀的情況,亦即第一存儲群22只能讀取而不能寫入,本發(fā)明的存儲方法可以將數(shù)據(jù)項(xiàng)3寫入第二存儲群并加上一時(shí)間戳,后續(xù)要讀取數(shù)據(jù)項(xiàng)3時(shí),本發(fā)明的存儲方法會讀取第一存儲群22與第二存儲群28,判斷第二存儲群28的數(shù)據(jù)項(xiàng)3為最新的并傳給應(yīng)用單元20,后續(xù)要寫入第一存儲群22時(shí),可以將第一存儲群22的數(shù)據(jù)項(xiàng)3刪除。
[0099]刪除時(shí),假設(shè)要?jiǎng)h除數(shù)據(jù)項(xiàng)1,讀取第一存儲群22與第二存儲群28,發(fā)現(xiàn)數(shù)據(jù)項(xiàng)I是在第二存儲群28,刪除數(shù)據(jù)項(xiàng)I后再寫入第一存儲群22,而第二存儲群28的數(shù)據(jù)項(xiàng)并未變動(dòng),因此第二存儲群28不需要作無效寫入的動(dòng)作。
[0100]應(yīng)用單元20讀取時(shí),會讀取第一存儲群22與第二存儲群24的數(shù)據(jù)項(xiàng),將重復(fù)的數(shù)據(jù)項(xiàng)刪除,例如將第一存儲群22的數(shù)據(jù)項(xiàng)3 (具有較舊的時(shí)間戳)刪除。
[0101]請參閱圖11,其為本發(fā)明中存儲裝置90的方塊圖。所述存儲裝置用于存儲架構(gòu),所述存儲架構(gòu)包括應(yīng)用單元、以及至少兩個(gè)存儲群(以下以第一存儲群以及第二存儲群說明),其中每個(gè)存儲群用于管理至少兩個(gè)存儲器,存儲裝置包括接收模塊900、分拆模塊910、時(shí)間戳標(biāo)識模塊模塊920、容災(zāi)判斷模塊930、寫入模塊940、讀取模塊950、負(fù)載判斷模塊960、時(shí)間戳判斷模塊970以及刪除模塊980。
[0102]接收模塊900用于接收應(yīng)用單元傳來的數(shù)據(jù)。
[0103]分拆模塊910連接至接收模塊900,用于將同一數(shù)據(jù)索引對應(yīng)的數(shù)據(jù)分拆成至少兩個(gè)數(shù)據(jù)項(xiàng)。
[0104]時(shí)間戳標(biāo)識模塊920連接至分拆模塊910,用于為每個(gè)數(shù)據(jù)項(xiàng)加上時(shí)間戳。
[0105]容災(zāi)判斷模塊930用于判斷第一存儲群與第二存儲群是否只讀。
[0106]寫入模塊940連接至?xí)r間戳標(biāo)識模塊920及容災(zāi)判斷模塊930,用于將所述至少兩個(gè)數(shù)據(jù)項(xiàng)存儲到第一存儲群與第二存儲群的至少其中之一。
[0107]讀取模塊950連接至?xí)r間戳標(biāo)識模塊920,用于讀取第一存儲群與第二存儲群中的數(shù)據(jù)項(xiàng)。
[0108]負(fù)載判斷模塊960連接至寫入模塊940,用于判斷第一存儲群與第二存儲群的負(fù)載情況。
[0109]時(shí)間戳判斷模塊970連接至讀取模塊950,用于判斷第一存儲群與第二存儲群中具有較新時(shí)間戳的數(shù)據(jù)項(xiàng)。
[0110]刪除模塊980連接至讀取模塊950,用于將要?jiǎng)h除的數(shù)據(jù)項(xiàng)從對應(yīng)的存儲群中刪除。
[0111]本發(fā)明的存儲方法及存儲裝置能確保應(yīng)用單元的數(shù)據(jù)一定能寫入兩個(gè)存儲群的其中一個(gè),使得應(yīng)用單元達(dá)到訪問容災(zāi)的功能,亦即隨時(shí)都能可讀可寫,同時(shí)數(shù)據(jù)又不會不一致。再者,由于數(shù)據(jù)分拆儲存,因此添加、更新或刪除數(shù)據(jù)時(shí)只需要針對對應(yīng)的存儲群作寫入的動(dòng)作,能大幅降低寫入時(shí)間,增加效率。
[0112]綜上所述,雖然本發(fā)明已以優(yōu)選實(shí)施例揭露如上,但上述優(yōu)選實(shí)施例并非用以限制本發(fā)明,本領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動(dòng)與潤飾,因此本發(fā)明的保護(hù)范圍以權(quán)利要求界定的范圍為準(zhǔn)。
【權(quán)利要求】
1.一種存儲方法,用于存儲架構(gòu),所述存儲架構(gòu)包括應(yīng)用單元以及至少兩個(gè)存儲群,其特征在于,所述存儲方法包括: 接收所述應(yīng)用單元傳來的數(shù)據(jù); 將同一數(shù)據(jù)索引對應(yīng)的數(shù)據(jù)分拆成至少兩個(gè)數(shù)據(jù)項(xiàng); 為每個(gè)數(shù)據(jù)項(xiàng)加上時(shí)間戳;以及 根據(jù)所述至少兩個(gè)存儲群的可寫狀態(tài),將所述至少兩個(gè)數(shù)據(jù)項(xiàng)存儲到所述兩個(gè)存儲群的至少其中之一。
2.根據(jù)權(quán)利要求1所述的存儲方法,其特征在于,根據(jù)所述至少兩個(gè)存儲群的可寫狀態(tài),將所述至少兩個(gè)數(shù)據(jù)項(xiàng)存儲到所述兩個(gè)存儲群的至少其中之一的步驟中包括: 若要寫入的存儲群為只讀,則將所述數(shù)據(jù)項(xiàng)寫入所述至少兩個(gè)存儲群的另外一個(gè)。
3.根據(jù)權(quán)利要求1或2所述的存儲方法,其特征在于,根據(jù)所述至少兩個(gè)存儲群的可寫狀態(tài),將所述至少兩個(gè)數(shù)據(jù)項(xiàng)存儲到所述兩個(gè)存儲群的至少其中之一的步驟中包括: 若所述至少兩個(gè)存儲群均為可寫,則根據(jù)所述至少兩個(gè)存儲群的負(fù)載情況,將所述數(shù)據(jù)項(xiàng)寫入所述至少兩個(gè)存儲群的至少其中之一。
4.根據(jù)權(quán)利要求1所述的容錯(cuò)存儲方法,其特征在于,還包括: 讀取所述至少兩個(gè)存儲群中對應(yīng)的數(shù)據(jù)項(xiàng),將所述數(shù)據(jù)項(xiàng)更新后,加上時(shí)間戳, 若原數(shù)據(jù)項(xiàng)對應(yīng)的存儲群可寫,則更新后寫回原存儲群; 若原數(shù)據(jù)項(xiàng)對應(yīng)的存儲群只讀,則更新后將該數(shù)據(jù)項(xiàng)寫入其它可寫存儲群至少其中之
O
5.根據(jù)權(quán)利要求1所述的存儲方法,其特征在于,還包括: 讀取所述至少兩個(gè)存儲群對應(yīng)于同一數(shù)據(jù)索引的各個(gè)數(shù)據(jù)項(xiàng),以及返回相同數(shù)據(jù)項(xiàng)中時(shí)間戳較新的數(shù)據(jù)項(xiàng); 或者 讀取所述至少兩個(gè)存儲群的同一個(gè)數(shù)據(jù)項(xiàng),以及返回相同數(shù)據(jù)項(xiàng)中時(shí)間戳較新的數(shù)據(jù)項(xiàng)。
6.根據(jù)權(quán)利要求1所述的存儲方法,其特征在于,還包括: 讀取所述至少兩個(gè)存儲群;以及 將要?jiǎng)h除的數(shù)據(jù)項(xiàng)從對應(yīng)的存儲群中刪除。
7.根據(jù)權(quán)利要求1-6任一項(xiàng)所述的存儲方法,其特征在于,每個(gè)存儲群至少包括一個(gè)存儲服務(wù)器與一個(gè)容災(zāi)服務(wù)器。
8.一種存儲裝置,用于存儲架構(gòu),所述存儲架構(gòu)包括應(yīng)用單元以及至少兩個(gè)存儲群,其特征在于,所述存儲裝置包括: 接收模塊,用于接收所述應(yīng)用單元傳來的數(shù)據(jù); 分拆模塊,連接至所述接收模塊,用于將同一數(shù)據(jù)索引對應(yīng)的數(shù)據(jù)分拆成至少兩個(gè)數(shù)據(jù)項(xiàng); 時(shí)間戳標(biāo)識模塊,連接至所述分拆模塊,用于為每個(gè)數(shù)據(jù)項(xiàng)加上時(shí)間戳; 容災(zāi)判斷模塊,用于判斷所述至少兩個(gè)存儲群是否只讀;以及寫入模塊,連接至所述時(shí)間戳標(biāo)識模塊及所述容災(zāi)判斷模塊,用于將所述至少兩個(gè)數(shù)據(jù)項(xiàng)存儲到所述兩個(gè)存儲群的至少其中之一。
9.根據(jù)權(quán)利要求8所述的存儲裝置,其特征在于,還包括: 讀取模塊,連接至所述時(shí)間戳標(biāo)識模塊,用于讀取所述至少兩個(gè)存儲群中的數(shù)據(jù)項(xiàng)。
10.根據(jù)權(quán)利要求8所述的存儲裝置,其特征在于,還包括: 負(fù)載判斷模塊,連接至所述寫入模塊,用于判斷所述兩個(gè)存儲群的負(fù)載情況。
11.根據(jù)權(quán)利要求8所述的存儲裝置,其特征在于,還包括: 時(shí)間戳判斷模塊,連接至所述讀取模塊,用于判斷所述至少兩個(gè)存儲群中具有較新時(shí)間戳的數(shù)據(jù)項(xiàng)。
12.根據(jù)權(quán)利要求8所述的存儲裝置,其特征在于,還包括: 刪除模塊,連接至所 述讀取模塊,用于將要?jiǎng)h除的數(shù)據(jù)項(xiàng)從對應(yīng)的存儲群中刪除。
【文檔編號】G06F17/30GK103778025SQ201210403994
【公開日】2014年5月7日 申請日期:2012年10月22日 優(yōu)先權(quán)日:2012年10月22日
【發(fā)明者】朱建平, 許劍峰, 時(shí)冰川 申請人:深圳市騰訊計(jì)算機(jī)系統(tǒng)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
天柱县| 宜州市| 诸城市| 商水县| 上犹县| 淮阳县| 昔阳县| 浦江县| 溧水县| 庆元县| 于田县| 牡丹江市| 台前县| 科技| 娱乐| 浑源县| 金山区| 定日县| 保定市| 秦皇岛市| 孝昌县| 木里| 江门市| 大兴区| 惠东县| 固始县| 栾川县| 历史| 城口县| 尉氏县| 康保县| 廊坊市| 巴林左旗| 澎湖县| 凤山县| 宜宾县| 曲阳县| 道孚县| 长治市| 汝城县| 富源县|