亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

存儲(chǔ)方法及存儲(chǔ)裝置制造方法

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

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

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

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