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

數(shù)據(jù)存儲方法、裝置和存儲系統(tǒng)的制作方法

文檔序號:6500329閱讀:274來源:國知局
數(shù)據(jù)存儲方法、裝置和存儲系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)存儲方法、裝置和存儲系統(tǒng),屬于終端設(shè)備領(lǐng)域。所述方法包括:獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況;根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù);獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù);將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。該裝置包括:第一獲取模塊、確定模塊、第二獲取模塊和數(shù)據(jù)存儲模塊。本發(fā)明通過采用多級存儲引擎進(jìn)行數(shù)據(jù)的存儲,提高了數(shù)據(jù)的訪問效率,從當(dāng)前存儲引擎中獲取下一級存儲引擎的數(shù)據(jù),使得數(shù)據(jù)調(diào)度更加合理,進(jìn)一步降低了用戶的訪問時間。
【專利說明】數(shù)據(jù)存儲方法、裝置和存儲系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機領(lǐng)域,特別涉及一種數(shù)據(jù)存儲方法、裝置和存儲系統(tǒng)。
【背景技術(shù)】
[0002]在傳統(tǒng)的數(shù)據(jù)庫環(huán)境下,信息的訪問速度是數(shù)據(jù)庫技術(shù)性能的衡量要素之一,而信息的訪問速度和數(shù)據(jù)庫中的存儲形式息息相關(guān),現(xiàn)有數(shù)據(jù)庫中的數(shù)據(jù)存儲一般是分布式存儲,而根據(jù)這種存儲形式的每一次數(shù)據(jù)訪問,都必須通過數(shù)據(jù)查詢語言在數(shù)據(jù)庫中進(jìn)行查詢,以得到對應(yīng)的數(shù)據(jù),對于訪問頻繁的數(shù)據(jù),也是如此,重復(fù)的檢索使得訪問效率較低,也降低了獲取數(shù)據(jù)的速度。
[0003]現(xiàn)有技術(shù)中,通過采用分布式緩存技術(shù)提高數(shù)據(jù)庫的可擴展性。該技術(shù)可以在一臺或多臺服務(wù)器的隨機存儲器中緩存數(shù)據(jù)庫中的數(shù)據(jù),用戶通過從隨機存儲器中讀取數(shù)據(jù),與從本地數(shù)據(jù)庫檢索、加載數(shù)據(jù)相比,在速度上有了顯著的提高。
[0004]在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:
[0005]分布式緩存技術(shù)雖然提高了訪問的速度,但是需要用戶自行對存儲在隨機存儲器中的數(shù)據(jù)預(yù)先進(jìn)行調(diào)度,無法根據(jù)業(yè)務(wù)需要自動選擇最優(yōu)的存儲組合,此外,該技術(shù)只能進(jìn)行兩層存儲,即本地數(shù)據(jù)庫存儲和隨機存儲器存儲,在隨機存儲器中存儲的數(shù)據(jù)具有不穩(wěn)定性。

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

[0006]為了解決數(shù)據(jù)自行調(diào)度以及數(shù)據(jù)穩(wěn)定的問題,本發(fā)明實施例提供了一種數(shù)據(jù)存儲方法、裝置和存儲系統(tǒng)。所述技術(shù)方案如下:
[0007]—方面,提供了一種數(shù)據(jù)存儲方法,所述方法包括:
[0008]獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況;
[0009]根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù);
[0010]獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù);
[0011]將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。
[0012]另一方面,提供了一種數(shù)據(jù)存儲裝置,所述裝置包括:
[0013]第一獲取模塊,用于獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況;
[0014]確定模塊,用于根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù);
[0015]第二獲取模塊,用于獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù);
[0016]數(shù)據(jù)存儲模塊,用于將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。
[0017]又一方面,提供了一種存儲系統(tǒng),所述系統(tǒng)包括接入機設(shè)備以及兩級以上的存儲引擎,
[0018]其中,所述接入機設(shè)備被配置用于執(zhí)行以下方法:
[0019]獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況;
[0020]根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù);
[0021]獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù);
[0022]將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。
[0023]本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:
[0024]本發(fā)明實施例提供了一種數(shù)據(jù)存儲方法、裝置和存儲系統(tǒng),通過獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況;根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù);獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù);將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。采用本發(fā)明提供的技術(shù)方案,通過采用多級存儲引擎進(jìn)行數(shù)據(jù)的存儲,提高了數(shù)據(jù)的訪問效率,從當(dāng)前存儲引擎中獲取需要存儲至下一級存儲引擎的數(shù)據(jù),使得數(shù)據(jù)調(diào)度更加合理,進(jìn)一步降低了用戶的訪問時間。
【專利附圖】

【附圖說明】
[0025]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0026]圖1是本發(fā)明實施例中提供的一種數(shù)據(jù)存儲方法流程圖;
[0027]圖2a是本發(fā)明實施例中提供的一種數(shù)據(jù)存儲方法流程圖;
[0028]圖2b是本發(fā)明實施例中提供的一種數(shù)據(jù)存儲方法示意圖;
[0029]圖3是本發(fā)明實施例中提供的一種數(shù)據(jù)存儲裝置結(jié)構(gòu)示意圖。
【具體實施方式】
[0030]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進(jìn)一步地詳細(xì)描述。
[0031]為了便于對本發(fā)明技術(shù)方案的理解,在此對本發(fā)明實施例涉及到的概念進(jìn)行解釋:
[0032]存儲引擎,存儲引擎是一種適用于服務(wù)器、數(shù)據(jù)庫和表格的存儲機制,一個存儲引擎可以是服務(wù)器集群中的一個單獨服務(wù)器,還可以是服務(wù)器上的功能模塊,存儲引擎的存儲介質(zhì)可以根據(jù)需要進(jìn)行選擇,且存儲引擎可以拆卸,方便用戶的使用。
[0033]CCNS (cloud common nosql service,反數(shù)據(jù)庫查詢語言服務(wù))接入機,提供一個存儲介質(zhì)無關(guān)的反數(shù)據(jù)庫查詢服務(wù)平臺,其中,nosql為非關(guān)系型數(shù)據(jù)庫。
[0034]主存儲引擎和從存儲引擎,在本發(fā)明實施例中,采用多級存儲引擎存儲數(shù)據(jù)庫中的數(shù)據(jù),同一個數(shù)據(jù)庫中可具有兩級或兩級以上的存儲引擎,根據(jù)其在數(shù)據(jù)庫中的地位可以分為主存儲引擎和從存儲引擎。其中,主存儲引擎用于存儲數(shù)據(jù)庫中的訪問量高的數(shù)據(jù)。優(yōu)選地,主存儲引擎采用CMEM (Cloud Memcache,基于云的對象緩存系統(tǒng)),CMEM具有高性能內(nèi)存級持久化分布式的存儲服務(wù),適用于數(shù)據(jù)量小、訪問量高、key-value (鍵-值)存儲的場景。
[0035]在本發(fā)明實施例中,對于主存儲引擎來說,可以具有多個從存儲引擎,而對于從存儲引擎來說,也可以有其相對應(yīng)的從存儲引擎,也即是,存儲數(shù)據(jù)庫中多個具有上下級關(guān)系的存儲引擎。
[0036]圖1是本發(fā)明實施例中提供的一種數(shù)據(jù)存儲方法流程圖。參見圖1,該方法包括:
[0037]101:獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況;
[0038]在本發(fā)明實施例中,由于采用多級存儲引擎存儲數(shù)據(jù),為了最大程度上避免對用戶的使用造成影響,根據(jù)各級存儲引擎中的數(shù)據(jù)訪問情況進(jìn)行數(shù)據(jù)的調(diào)度,訪問時長較短的數(shù)據(jù)存儲在上級的存儲引擎中,訪問時長較長的數(shù)據(jù)存儲在下級的存儲引擎中。
[0039]其中,當(dāng)前存儲引擎的數(shù)據(jù)訪問情況至少包括存儲引擎存儲的被訪問次數(shù)和訪問時間,該訪問包括但不限于對數(shù)據(jù)的查詢、更新、修改、插入和調(diào)用等操作。在對各級存儲引擎的數(shù)據(jù)調(diào)度過程中,可以同時根據(jù)各個存儲引擎的數(shù)據(jù)訪問情況,對各個存儲引擎的數(shù)據(jù)進(jìn)行調(diào)度,還可以根據(jù)各個存儲引擎的數(shù)據(jù)訪問情況,逐個對各個存儲引擎的數(shù)據(jù)進(jìn)行調(diào)度。
[0040]102:根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù);
[0041]具體地,根據(jù)當(dāng)前存儲引擎中的數(shù)據(jù)訪問情況,獲取數(shù)據(jù)最后一次被訪問的時間到當(dāng)前時間的間隔時長,當(dāng)數(shù)據(jù)的間隔時長大于或等于預(yù)設(shè)存儲時長,說明該數(shù)據(jù)的訪問頻率較低,將該數(shù)據(jù)作為需要存儲至下一級存儲引擎的數(shù)據(jù),當(dāng)數(shù)據(jù)的間隔時長小于預(yù)設(shè)存儲時長,說明該數(shù)據(jù)的訪問頻率較高,則該數(shù)據(jù)不需要被存儲至下一級存儲引擎的數(shù)據(jù)。
[0042]103:獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù);
[0043]在確定當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù)后,以復(fù)制的方式從當(dāng)前存儲引擎中獲取該數(shù)據(jù)。
[0044]104:將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。
[0045]在獲取到需要存儲至下一級存儲引擎的數(shù)據(jù)后,將該數(shù)據(jù)寫入下一級存儲引擎,并從當(dāng)前存儲引擎中刪除該已經(jīng)存儲至下一級存儲引擎的數(shù)據(jù)。
[0046]上述過程是數(shù)據(jù)調(diào)度過程中從當(dāng)前存儲引擎中獲取下一級存儲引擎中的數(shù)據(jù)的過程。對于各級存儲引擎而言,在數(shù)據(jù)存儲過程中,下一級存儲引擎總是從上一級存儲引擎中獲取數(shù)據(jù),這樣各級存儲引擎中存儲的數(shù)據(jù)就形成了一個具有時間梯度的數(shù)據(jù),這些數(shù)據(jù)的存儲情況反映了被訪問時間的情況。對于訪問頻率高,訪問間隔時長短的數(shù)據(jù)總是存儲在級別較高上級的存儲引擎中,以方便用戶的訪問,而對于訪問頻率低,訪問間隔時長長的數(shù)據(jù)總是存儲在級別較低的下級的存儲引擎中,有效縮短了用戶的訪問時間。
[0047]而在將需要存儲至下一級存儲引擎的數(shù)據(jù)存儲至下一級存儲引擎后,將當(dāng)前存儲引擎中的需要存儲至下一級存儲引擎的數(shù)據(jù)刪除,減少了當(dāng)前存儲引擎中數(shù)據(jù)的數(shù)據(jù)量,在訪問當(dāng)前數(shù)據(jù)中的數(shù)據(jù)時,避免了進(jìn)行大量的數(shù)據(jù)查找。[0048]優(yōu)選地,存儲系統(tǒng)中各個存儲引擎的數(shù)據(jù)存儲可以采用key-value的形式,在將數(shù)據(jù)存儲至下一級存儲引擎中時,根據(jù)該需要存儲的數(shù)據(jù)的key值,若下一級存儲引擎中已存在相同的key對應(yīng)的數(shù)據(jù),則使用獲取到的數(shù)據(jù)覆蓋下一級存儲引擎中已存在的相同key對應(yīng)的數(shù)據(jù),若下一級存儲引擎中不存在相同的key對應(yīng)的數(shù)據(jù),則將獲取到的數(shù)據(jù)直接進(jìn)行存儲至下一級存儲引擎。
[0049]按照上述方法,在各級存儲引擎中依次進(jìn)行數(shù)據(jù)的存儲,將一個數(shù)據(jù)庫的數(shù)據(jù)按照數(shù)據(jù)訪問情況分別放置在不同的存儲引擎中,存儲引擎越多,數(shù)據(jù)存儲的分配就越細(xì)。通過數(shù)據(jù)在各級存儲引擎中進(jìn)行存儲使得數(shù)據(jù)得到了有效合理地調(diào)度,避免了人工不合理的調(diào)度帶來的數(shù)據(jù)訪問問題。在用戶訪問的時候,從上向下在各級存儲引擎中進(jìn)行查找,對于訪問頻率高的數(shù)據(jù)在上級的存儲引擎中很快就能查找到,不需要繼續(xù)在下級的存儲引擎中進(jìn)行查找,避免了在大量數(shù)據(jù)中進(jìn)行查找?guī)淼脑L問速度慢的問題,加快了服務(wù)器的工作效率。
[0050]本發(fā)明實施例通過獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況;根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù);獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù);將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。采用本發(fā)明提供的技術(shù)方案,通過采用多級存儲引擎進(jìn)行數(shù)據(jù)的存儲,提高了數(shù)據(jù)的訪問效率,從當(dāng)前存儲引擎中獲取下一級存儲引擎的數(shù)據(jù),使得數(shù)據(jù)調(diào)度更加合理,進(jìn)一步降低了用戶的訪問時間。
[0051]可選地,根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù),包括:
[0052]根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,判斷所述當(dāng)前存儲引擎中是否包括指定類型數(shù)據(jù),所述指定類型數(shù)據(jù)為存儲時長超過預(yù)設(shè)存儲時長且訪問次數(shù)低于預(yù)設(shè)閾值的數(shù)據(jù);
[0053]如果所述當(dāng)前存儲引擎中包括指定類型數(shù)據(jù),則將所述指定類型數(shù)據(jù)確定為需要存儲至下一級存儲引擎的數(shù)據(jù)。
[0054]可選地,將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù),包括:
[0055]將所述獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎;
[0056]當(dāng)所述需要存儲至下一級存儲引擎的數(shù)據(jù)未處于被訪問狀態(tài)時,刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。
[0057]可選地,所述方法還包括:
[0058]接收用戶的業(yè)務(wù)請求,所述業(yè)務(wù)請求攜帶訪問對象和操作方式;
[0059]根據(jù)所述操作方式,按照所述操作方式對應(yīng)的查找方法,在各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
[0060]可選地,根據(jù)所述操作方式,按照所述操作方式對應(yīng)的查找方法,在各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作,包括:
[0061]如果所述操作方式是刪除操作,根據(jù)所述訪問對象,從下向上逐級在各級存儲引擎中查找所述訪問對象,刪除所述訪問對象對應(yīng)的數(shù)據(jù);
[0062]如果所述操作方式不是刪除操作,根據(jù)所述訪問對象,從上向下逐級在所述各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
[0063]可選地,如果所述操作方式是刪除操作,根據(jù)所述訪問對象,從下向上逐級在各級存儲引擎中查找所述訪問對象,刪除所述訪問對象,包括:
[0064]如果所述操作方式是刪除操作,按照所述各級存儲引擎的級別,從下向上逐級在各級存儲引擎中查找所述訪問對象,當(dāng)被查找的存儲引擎上存在所述訪問對象對應(yīng)的數(shù)據(jù)時,刪除所述訪問對象對應(yīng)的數(shù)據(jù)。
[0065]可選地,如果所述操作方式不是刪除操作,根據(jù)所述訪問對象,從上向下逐級在所述各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作,包括:
[0066]判斷所述兩級以上的存儲引擎中的主存儲引擎中是否存在所述訪問對象對應(yīng)的數(shù)據(jù);
[0067]如果所述主存儲引擎中存在所述訪問對象對應(yīng)的數(shù)據(jù),從主存儲引擎中獲取所述對應(yīng)的數(shù)據(jù);
[0068]如果主存儲引擎中不存在所述訪問對象對應(yīng)的數(shù)據(jù),按照所述各級存儲引擎的級另IJ,從上向下逐級在所述各級存儲引擎中查找所述訪問對象對應(yīng)的數(shù)據(jù),直到查找到和所述訪問對象對應(yīng)的數(shù)據(jù),將所述查找到的數(shù)據(jù)移動到所述主存儲引擎中;
[0069]在所述主存儲引擎中,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
[0070]圖2a是本發(fā)明實施例中提供的一種數(shù)據(jù)存儲方法流程圖。參見圖2a,該方法包括:
[0071]201:獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況;
[0072]在對各級存儲引擎的數(shù)據(jù)調(diào)度過程中,按照存儲引擎的級別高低,依次選取存儲引擎作為當(dāng)前存儲引擎,獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,并在根據(jù)當(dāng)前存儲引擎的數(shù)據(jù)訪問情況進(jìn)行數(shù)據(jù)調(diào)度后,再對其他各級存儲引擎進(jìn)行同理的遍歷,或隨機從多級存儲引擎中任意選取一個或多個存儲引擎作為當(dāng)前存儲引擎,并在根據(jù)當(dāng)前存儲引擎的數(shù)據(jù)訪問情況進(jìn)行數(shù)據(jù)調(diào)度后,再對其他各級存儲引擎進(jìn)行同理的遍歷。
[0073]需要說明的是,該過程可以周期性地進(jìn)行,即每隔預(yù)設(shè)時長,獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,還可以由預(yù)設(shè)條件觸發(fā),即當(dāng)滿足預(yù)設(shè)條件時,獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,如,當(dāng)存儲系統(tǒng)的數(shù)據(jù)總?cè)萘砍^預(yù)設(shè)閾值時,獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,該預(yù)設(shè)時長、預(yù)設(shè)條件均可以由技術(shù)人員在系統(tǒng)建立時設(shè)置或后續(xù)調(diào)整,本發(fā)明實施例對此不作具體限定。
[0074]202:根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,判斷所述當(dāng)前存儲引擎中是否包括指定類型數(shù)據(jù),所述指定類型數(shù)據(jù)為存儲時長超過預(yù)設(shè)存儲時長且訪問次數(shù)低于預(yù)設(shè)閾值的數(shù)據(jù);
[0075]其中,指定類型數(shù)據(jù)也即是需要存儲到下一級存儲引擎的數(shù)據(jù)。CCNS接入機獲取當(dāng)前存儲引擎中的各個數(shù)據(jù)的被訪問時間,如果數(shù)據(jù)最后一次被訪問的時間到當(dāng)前時間的間隔時長大于或等于預(yù)設(shè)時長,則該數(shù)據(jù)為指定類型數(shù)據(jù),也即是當(dāng)前存儲引擎中包括指定類型數(shù)據(jù);如果間隔時長小于預(yù)設(shè)時長,則該數(shù)據(jù)不為指定類型數(shù)據(jù),也即是當(dāng)前存儲引擎中不包括指定類型數(shù)據(jù)。
[0076]本發(fā)明實施例僅以當(dāng)前存儲引擎中包括指定類型數(shù)據(jù)為例進(jìn)行說明,對于當(dāng)前存儲引擎中不包括指定類型數(shù)據(jù)的情況,則不進(jìn)行后續(xù)的指定類型數(shù)據(jù)的獲取和存儲的步驟。
[0077]203:如果所述當(dāng)前存儲引擎中包括指定類型數(shù)據(jù),則將所述指定類型數(shù)據(jù)確定為需要存儲至下一級存儲引擎的數(shù)據(jù);
[0078]步驟202-203是根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù)的過程。
[0079]204:從當(dāng)前存儲引擎中獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù);
[0080]優(yōu)選地,由于各個存儲引擎上的數(shù)據(jù)以鍵-值(Key-Value)的形式存儲,則該獲取過程可以為:根據(jù)需要存儲至下一級存儲引擎的數(shù)據(jù)的Key值,獲取當(dāng)前存儲引擎中與該需要存儲至下一級存儲引擎的數(shù)據(jù)的Key值相應(yīng)的數(shù)據(jù)。
[0081]205:將所述獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎;
[0082]優(yōu)選地,由于各個存儲引擎上的數(shù)據(jù)以鍵-值(Key-Value)的形式存儲,則該存儲過程可以為:將該需要存儲至下一級存儲引擎的數(shù)據(jù)存儲至下一級存儲引擎。優(yōu)選地,根據(jù)需要存儲至下一級存儲引擎的數(shù)據(jù)的Key值,判斷該下一級存儲引擎中是否包括該Key值對應(yīng)的數(shù)據(jù),如果是,使用需要存儲至下一級存儲引擎的數(shù)據(jù)覆蓋下一級存儲引擎中該Key值對應(yīng)的數(shù)據(jù),如果否,將該需要存儲至下一級存儲引擎的數(shù)據(jù)存儲至下一級存儲引擎。
[0083]可選地,在存儲系統(tǒng)中,對數(shù)據(jù)進(jìn)行調(diào)度以及執(zhí)行數(shù)據(jù)獲取和存儲的可以為同一服務(wù)器上的不同功能模塊,該服務(wù)器可以為CCNS接入機,如功能模塊可以為用于進(jìn)行數(shù)據(jù)調(diào)度的調(diào)度模塊和用于進(jìn)行數(shù)據(jù)獲取和存儲的存儲模塊。
[0084]優(yōu)選地,在存儲系統(tǒng)中,對數(shù)據(jù)進(jìn)行調(diào)度以及執(zhí)行數(shù)據(jù)獲取和存儲的可以分別為不同的服務(wù)器,如通過用于進(jìn)行數(shù)據(jù)調(diào)度的調(diào)度服務(wù)器(CCNS_SCheduler)對各個存儲引擎中的數(shù)據(jù)進(jìn)行調(diào)度,并通過用于進(jìn)行數(shù)據(jù)獲取和存儲的CCNS接入機對數(shù)據(jù)進(jìn)行處理。具體地,圖2b是本發(fā)明實施例中提供的一種數(shù)據(jù)存儲方法示意圖,如圖2b所示,該步驟201-204可以包括:調(diào)度服務(wù)器根據(jù)當(dāng)前存儲引擎的數(shù)據(jù)訪問情況采用LRU(Least Recently Used,最近最少使用)算法判斷當(dāng)前存儲引擎中是否包括指定類型數(shù)據(jù),當(dāng)當(dāng)前存儲引擎中包括指定類型數(shù)據(jù)時,向用于進(jìn)行數(shù)據(jù)獲取和存儲的CCNS接入機發(fā)送調(diào)度(move)命令,該調(diào)度命令攜帶該指定類型數(shù)據(jù)的Key。當(dāng)CCNS接入機接收到調(diào)度命令時,根據(jù)調(diào)度命令向當(dāng)前存儲引擎發(fā)送獲取(get)命令以獲取該指定類型數(shù)據(jù),該獲取命令攜帶指定類型數(shù)據(jù)的Key,并將從當(dāng)前存儲引擎獲取到的數(shù)據(jù)通過存儲命令(set)存儲至下一級存儲引擎。
[0085]206:判斷所述需要存儲至下一級存儲引擎的數(shù)據(jù)是否處于被訪問狀態(tài);
[0086]如果是,結(jié)束;
[0087]如果否,執(zhí)行步驟207 ;
[0088]由于用戶訪問和數(shù)據(jù)調(diào)度的時間是不可預(yù)料的,二者可能會發(fā)生沖突,所以,為了避免用戶訪問和數(shù)據(jù)調(diào)度沖突的問題,判斷當(dāng)前存儲引擎中需要存儲至下一級存儲引擎的數(shù)據(jù)是否處于被訪問狀態(tài),根據(jù)判斷的結(jié)果,進(jìn)行相應(yīng)地處理。
[0089]CCNS接入機根據(jù)需要存儲至下一級存儲引擎的數(shù)據(jù)的狀態(tài),判斷需要存儲至下一級存儲引擎的數(shù)據(jù)是否處于被訪問狀態(tài),如果需要存儲至下一級存儲引擎的數(shù)據(jù)未處于被訪問狀態(tài),則刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù),如果需要存儲至下一級存儲引擎的數(shù)據(jù)處于被訪問狀態(tài),不刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。[0090]207:當(dāng)所述需要存儲至下一級存儲引擎的數(shù)據(jù)未處于被訪問狀態(tài)時,刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。
[0091]當(dāng)需要存儲至下一級存儲引擎的數(shù)據(jù)未處于被訪問狀態(tài)時,刪除當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù),可以避免在訪問其他數(shù)據(jù)時對該數(shù)據(jù)的查找?guī)淼臅r間損耗。
[0092]步驟205-207是將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)的過程。通過CCNS接入機對數(shù)據(jù)在各級存儲引擎中的調(diào)度,實現(xiàn)了數(shù)據(jù)在各級存儲引擎中的合理分配,加快了數(shù)據(jù)訪問的速度。
[0093]需要說明的是,各級存儲引擎的存儲時長是指數(shù)據(jù)的總存儲時長,而預(yù)設(shè)存儲時長是指該存儲引擎中應(yīng)存放數(shù)據(jù)的存儲時長,可如主存儲引擎的預(yù)設(shè)存儲時長為第一時長,即是該主存儲引擎中應(yīng)用于存儲已存儲時長低于第一時長的數(shù)據(jù),而二級存儲引擎的預(yù)設(shè)存儲時長為第二時長,三級存儲引擎的預(yù)設(shè)存儲時長為第三時長,存儲系統(tǒng)中可以包含多級存儲引擎,在此不再一一舉例說明。而一般地,由于對存儲系統(tǒng)中各個存儲引擎中所存儲的數(shù)據(jù)按照時間進(jìn)行調(diào)度,使得被經(jīng)常訪問的數(shù)據(jù)能夠存儲于上級存儲引擎,而訪問次數(shù)少或未被訪問過的數(shù)據(jù)能夠存儲于下級存儲引擎,根據(jù)數(shù)據(jù)的利用率和受歡迎度進(jìn)行了合理的存儲。
[0094]進(jìn)一步可選地,本發(fā)明實施例還在上述數(shù)據(jù)存儲方法的基礎(chǔ)上,提供了以下步驟208-214:
[0095]208:接收用戶的業(yè)務(wù)請求,所述業(yè)務(wù)請求攜帶訪問對象和操作方式;
[0096]在本發(fā)明實施例中,CCNS接入機除了用于維護(hù)各級存儲引擎、實現(xiàn)數(shù)據(jù)的調(diào)度以夕卜,還用于接收用戶的業(yè)務(wù)請求,完成數(shù)據(jù)訪問和對應(yīng)的數(shù)據(jù)的操作。
[0097]具體地,CCNS接入機接收用戶的業(yè)務(wù)請求,獲取該業(yè)務(wù)請求攜帶的訪問對象以及對該訪問對象的操作方式。
[0098]209:判斷所述操作方式是否是刪除操作,如果是,執(zhí)行步驟210,如果否,執(zhí)行步驟 211 ;
[0099]具體地,由于存儲系統(tǒng)中各級存儲引擎對數(shù)據(jù)的存儲是按照訪問量的多少進(jìn)行存儲的,因此,作為第一級存儲引擎的主存儲引擎中的數(shù)據(jù)訪問量最高,其他各級存儲引擎依次遞減。而由于數(shù)據(jù)在調(diào)度過程中,同一個數(shù)據(jù)可能存儲在不同的存儲引擎中,根據(jù)操作方式的不同,對各級存儲引擎進(jìn)行的查找方法也不同。因此,根據(jù)操作方式,按照該操作方式對應(yīng)的查找方法,在各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。具體地,CCNS接入機對操作方式進(jìn)行判斷,如果該操作方式是刪除操作,則根據(jù)刪除操作對應(yīng)的查找方法在各級存儲引擎中查找該訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作;如果該操作方式不是刪除操作,則根據(jù)非刪除操作對應(yīng)的查找方式在各級存儲引擎中查找該訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
[0100]210:如果所述操作方式是刪除操作,根據(jù)所述訪問對象,從下向上逐級在各級存儲引擎中查找所述訪問對象,并刪除所述訪問對象對應(yīng)的數(shù)據(jù);
[0101]具體地,如果所述操作方式是刪除操作,按照所述各級存儲引擎的級別和該訪問對象,從下向上逐級在各級存儲引擎中查找所述訪問對象,當(dāng)被查找的存儲引擎上存在所述訪問對象對應(yīng)的數(shù)據(jù)時,刪除所述訪問對象對應(yīng)的數(shù)據(jù)。
[0102]由于在各級存儲引擎中都可能存在訪問對象對應(yīng)的數(shù)據(jù),所以只要刪除最上一級的存儲引擎中的對應(yīng)的數(shù)據(jù)就可以看作是刪除成功。
[0103]在本發(fā)明實施例中,采用了從下向上的刪除方式,只要用戶收到刪除失敗的消息,說明包含該訪問對象對應(yīng)的數(shù)據(jù)的上級存儲引擎的對應(yīng)的數(shù)據(jù)刪除失敗。當(dāng)用戶收到刪除成功的消息時,說明包含該訪問對象對應(yīng)的數(shù)據(jù)的上級存儲引擎的對應(yīng)的數(shù)據(jù)刪除成功,避免了由于采用從上向下的刪除方式,當(dāng)某一級存儲引擎中的對應(yīng)數(shù)據(jù)刪除失敗時,將刪除失敗消息返回給用戶,用戶不能判斷是否已將包含該訪問對象對應(yīng)的數(shù)據(jù)的最上一級的存儲引擎中的對應(yīng)的數(shù)據(jù)刪除的情況,避免了不能準(zhǔn)確判斷該刪除操作是否成功的情況,不會造成用戶重復(fù)發(fā)送該業(yè)務(wù)請求的冗余操作,提高了訪問的效率。
[0104]211:判斷所述兩級以上的存儲引擎中的主存儲引擎中是否存在所述訪問對象對應(yīng)的數(shù)據(jù),如果是,執(zhí)行步驟212,如果否,執(zhí)行步驟213 ;
[0105]其中,主存儲引擎用于存儲數(shù)據(jù)庫中的訪問量高的數(shù)據(jù)。對于訪問量高的數(shù)據(jù),CCNS接入機根據(jù)訪問對象可以直接從主存儲引擎中找到對應(yīng)的數(shù)據(jù),而對于訪問量低的數(shù)據(jù),CCNS接入機在主存儲引擎中不能找到對應(yīng)的數(shù)據(jù),需要在各級存儲引擎中進(jìn)行查找。
[0106]需要說明的是,如果需要在數(shù)據(jù)庫中直接寫入新的對象,而不是對已有對象的操作,則不需要進(jìn)行以下的步驟,直接將新的對象寫入到主存儲引擎中即可。
[0107]212:如果主存儲引擎中存在所述訪問對象對應(yīng)的數(shù)據(jù),從主存儲引擎中獲取所述對應(yīng)的數(shù)據(jù);
[0108]如果CCNS接入機在主存儲引擎中查找到訪問對象對應(yīng)的數(shù)據(jù),通過獲取(get)命令獲取該對應(yīng)的數(shù)據(jù),并根據(jù)操作方式對該對應(yīng)的數(shù)據(jù)進(jìn)行處理。
[0109]213:如果主存儲引擎中不存在所述訪問對象對應(yīng)的數(shù)據(jù),按照所述各級存儲引擎的級別,從上向下逐級在所述各級存儲引擎中查找所述訪問對象對應(yīng)的數(shù)據(jù),直到查找到和所述訪問對象對應(yīng)的數(shù)據(jù),將所述查找到的數(shù)據(jù)移動到所述主存儲引擎中;
[0110]如果CCNS接入機在主存儲引擎中沒有找到訪問對象對應(yīng)的數(shù)據(jù),說明該數(shù)據(jù)的訪問量較少,可能存儲于主存儲引擎以外的其他存儲引擎中,因此需要在其他的各級存儲引擎中進(jìn)行查找。
[0111]當(dāng)在其他存儲引擎中查找到對應(yīng)的數(shù)據(jù)后,由于該次訪問使得對應(yīng)的數(shù)據(jù)的訪問量改變,也就是該數(shù)據(jù)的訪問時間在預(yù)設(shè)時長內(nèi),CNNS接入機將該數(shù)據(jù)移動到主存儲引擎中,進(jìn)一步地,CNNS接入機對該對應(yīng)的數(shù)據(jù)按照用戶的操作方式進(jìn)行處理。
[0112]需要說明的是,該步驟213將訪問對象對應(yīng)的數(shù)據(jù)移動到主存儲引擎中進(jìn)行存儲,而不對原數(shù)據(jù)進(jìn)行刪除,可以達(dá)到數(shù)據(jù)備份的目的。
[0113]214:在所述主存儲引擎中,對和所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
[0114]其中,操作包括對數(shù)據(jù)的讀、寫、更新等。CNNS接入機根據(jù)用戶的業(yè)務(wù)請求中的操作方式,對主存儲引擎中對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
[0115]步驟213-214是如果所述操作方式不是刪除操作,根據(jù)所述訪問對象,從上向下逐級在所述各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作的過程。
[0116]步驟209-214是根據(jù)所述操作方式,按照所述操作方式對應(yīng)的查找方法,在各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作的過程。
[0117]本發(fā)明實施例的執(zhí)行主體可以CCNS接入機,也可以為CCNS接入機的功能模塊,而各個存儲引擎可以為存儲引擎接入機。
[0118]本發(fā)明實施例通過獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況;根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù);獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù);將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。采用本發(fā)明提供的技術(shù)方案,通過采用多級存儲引擎進(jìn)行數(shù)據(jù)的存儲,提高了數(shù)據(jù)的訪問效率,從當(dāng)前存儲引擎中獲取需要存儲至下一級存儲引擎的數(shù)據(jù),使得數(shù)據(jù)調(diào)度更加合理,進(jìn)一步降低了用戶的訪問時間。
[0119]圖3是本發(fā)明實施例中提供的一種數(shù)據(jù)存儲裝置結(jié)構(gòu)示意圖。參見圖3,該裝置包括:
[0120]第一獲取模塊301,用于獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況;
[0121]確定模塊302,用于根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù);
[0122]第二獲取模塊303,用于獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù);
[0123]數(shù)據(jù)存儲模塊304,用于將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。
[0124]所述確定模塊302包括:
[0125]判斷單元,用于根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,判斷所述當(dāng)前存儲引擎中是否包括指定類型數(shù)據(jù),所述指定類型數(shù)據(jù)為存儲時長超過預(yù)設(shè)存儲時長且訪問次數(shù)低于預(yù)設(shè)閾值的數(shù)據(jù);
[0126]確定單元,用于如果所述當(dāng)前存儲引擎中包括指定類型數(shù)據(jù),則將所述指定類型數(shù)據(jù)確定為需要存儲至下一級存儲引擎的數(shù)據(jù)。
[0127]所述數(shù)據(jù)存儲模塊304包括:
[0128]存儲單元,用于將所述獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎;
[0129]刪除單元,用于當(dāng)所述需要存儲至下一級存儲引擎的數(shù)據(jù)未處于被訪問狀態(tài)時,刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。
[0130]所述裝置還包括:
[0131]接收模塊305,用于接收用戶的業(yè)務(wù)請求,所述業(yè)務(wù)請求攜帶訪問對象和操作方式;
[0132]操作模塊306,用于根據(jù)所述操作方式,按照所述操作方式對應(yīng)的查找裝置,在各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
[0133]所述操作模塊306包括:
[0134]第一操作單元,用于如果所述操作方式是刪除操作,根據(jù)所述訪問對象,從下向上逐級在各級存儲引擎中查找所述訪問對象,刪除所述訪問對象對應(yīng)的數(shù)據(jù);
[0135]第二操作單元,用于如果所述操作方式不是刪除操作,根據(jù)所述訪問對象,從上向下逐級在所述各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
[0136]所述第一操作單元用于如果所述操作方式是刪除操作,按照所述各級存儲引擎的級別,從下向上逐級在各級存儲引擎中查找所述訪問對象,當(dāng)被查找的存儲引擎上存在所述訪問對象對應(yīng)的數(shù)據(jù)時,刪除所述訪問對象對應(yīng)的數(shù)據(jù)。[0137]所述第二操作單元包括:
[0138]判斷子單元,用于判斷所述兩級以上的存儲引擎中的主存儲引擎中是否存在所述訪問對象對應(yīng)的數(shù)據(jù);
[0139]數(shù)據(jù)獲取子單元,用于如果所述主存儲引擎中存在所述訪問對象對應(yīng)的數(shù)據(jù),從主存儲引擎中獲取所述對應(yīng)的數(shù)據(jù);
[0140]所述數(shù)據(jù)獲取子單元還用于如果主存儲引擎中不存在所述訪問對象對應(yīng)的數(shù)據(jù),按照所述各級存儲引擎的級別,從上向下逐級在所述各級存儲引擎中查找所述訪問對象對應(yīng)的數(shù)據(jù),直到查找到和所述訪問對象對應(yīng)的數(shù)據(jù),將所述查找到的數(shù)據(jù)移動到所述主存儲引擎中;
[0141]操作子單元,用于在所述主存儲引擎中,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
[0142]本發(fā)明實施例通過獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況;根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù);獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù);將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。采用本發(fā)明提供的裝置,通過采用多級存儲引擎進(jìn)行數(shù)據(jù)的存儲,提高了數(shù)據(jù)的訪問效率,從當(dāng)前存儲引擎中獲取需要存儲至下一級存儲引擎的數(shù)據(jù),使得數(shù)據(jù)調(diào)度更加合理,進(jìn)一步降低了用戶的訪問時間。
[0143]需要說明的是:上述實施例提供的數(shù)據(jù)存儲裝置在數(shù)據(jù)存儲時,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設(shè)備的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的數(shù)據(jù)存儲裝置與數(shù)據(jù)存儲方法實施例屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。
[0144]本發(fā)明提供了一種存儲系統(tǒng)的第一種可能實現(xiàn)方式,在該第一種可能實現(xiàn)方式中,所述系統(tǒng)包括接入機設(shè)備以及兩級以上的存儲引擎,
[0145]其中,所述接入機設(shè)備被配置用于執(zhí)行以下方法:
[0146]獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況;
[0147]根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù);
[0148]獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù);
[0149]將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。
[0150]在上述存儲系統(tǒng)的基礎(chǔ)上,本發(fā)明實施例的第二種可能實現(xiàn)方式中,根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù),包括:
[0151]根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,判斷所述當(dāng)前存儲引擎中是否包括指定類型數(shù)據(jù),所述指定類型數(shù)據(jù)為存儲時長超過預(yù)設(shè)存儲時長且訪問次數(shù)低于預(yù)設(shè)閾值的數(shù)據(jù);
[0152]如果所述當(dāng)前存儲引擎中包括指定類型數(shù)據(jù),則將所述指定類型數(shù)據(jù)確定為需要存儲至下一級存儲引擎的數(shù)據(jù)。[0153]在上述存儲系統(tǒng)的基礎(chǔ)上,本發(fā)明實施例的第三種可能實現(xiàn)方式中,將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù),包括:
[0154]將所述獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎;
[0155]當(dāng)所述需要存儲至下一級存儲引擎的數(shù)據(jù)未處于被訪問狀態(tài)時,刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。
[0156]在上述存儲系統(tǒng)的基礎(chǔ)上,本發(fā)明實施例的第四種可能實現(xiàn)方式中,所述方法還包括:
[0157]接收用戶的業(yè)務(wù)請求,所述業(yè)務(wù)請求攜帶訪問對象和操作方式;
[0158]根據(jù)所述操作方式,按照所述操作方式對應(yīng)的查找方法,在各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
[0159]在上述存儲系統(tǒng)的基礎(chǔ)上,本發(fā)明實施例的第五種可能實現(xiàn)方式中,根據(jù)所述操作方式,按照所述操作方式對應(yīng)的查找方法,在各級存儲弓I擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作,包括:
[0160]如果所述操作方式是刪除操作,根據(jù)所述訪問對象,從下向上逐級在各級存儲引擎中查找所述訪問對象,刪除所述訪問對象對應(yīng)的數(shù)據(jù);
[0161]如果所述操作方式不是刪除操作,根據(jù)所述訪問對象,從上向下逐級在所述各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
[0162]在上述存儲系統(tǒng)的基礎(chǔ)上,本發(fā)明實施例的第六種可能實現(xiàn)方式中,如果所述操作方式是刪除操作,根據(jù)所述訪問對象,從下向上逐級在各級存儲引擎中查找所述訪問對象,刪除所述訪問對象,包括:
[0163]如果所述操作方式是刪除操作,按照所述各級存儲引擎的級別,從下向上逐級在各級存儲引擎中查找所述訪問對象,當(dāng)被查找的存儲引擎上存在所述訪問對象對應(yīng)的數(shù)據(jù)時,刪除所述訪問對象對應(yīng)的數(shù)據(jù)。
[0164]在上述存儲系統(tǒng)的基礎(chǔ)上,本發(fā)明實施例的第七種可能實現(xiàn)方式中,如果所述操作方式不是刪除操作,根據(jù)所述訪問對象,從上向下逐級在所述各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作,包括:
[0165]判斷所述兩級以上的存儲引擎中的主存儲引擎中是否存在所述訪問對象對應(yīng)的數(shù)據(jù);
[0166]如果所述主存儲引擎中存在所述訪問對象對應(yīng)的數(shù)據(jù),從主存儲引擎中獲取所述對應(yīng)的數(shù)據(jù);
[0167]如果主存儲引擎中不存在所述訪問對象對應(yīng)的數(shù)據(jù),按照所述各級存儲引擎的級另O,從上向下逐級在所述各級存儲引擎中查找所述訪問對象對應(yīng)的數(shù)據(jù),直到查找到和所述訪問對象對應(yīng)的數(shù)據(jù),將所述查找到的數(shù)據(jù)移動到所述主存儲引擎中;
[0168]在所述主存儲引擎中,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
[0169]本發(fā)明實施例通過獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況;根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù);獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù);將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。采用本發(fā)明提供的裝置,通過采用多級存儲引擎進(jìn)行數(shù)據(jù)的存儲,提高了數(shù)據(jù)的訪問效率,從當(dāng)前存儲引擎中獲取需要存儲至下一級存儲引擎的數(shù)據(jù),使得數(shù)據(jù)調(diào)度更加合理,進(jìn)一步降低了用戶的訪問時間。
[0170]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
[0171 ] 以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種數(shù)據(jù)存儲方法,其特征在于,存儲系統(tǒng)中包括兩級以上的存儲引擎,所述方法包括: 獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況; 根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù); 獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù); 將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù),包括: 根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,判斷所述當(dāng)前存儲引擎中是否包括指定類型數(shù)據(jù),所述指定類型數(shù)據(jù)為存儲時長超過預(yù)設(shè)存儲時長且訪問次數(shù)低于預(yù)設(shè)閾值的數(shù)據(jù);如果所述當(dāng)前存儲引擎中包括指定類型數(shù)據(jù),則將所述指定類型數(shù)據(jù)確定為需要存儲至下一級存儲引擎的數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù),包括: 將所述獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎; 當(dāng)所述需要存儲至下一級存儲引擎的數(shù)據(jù)未處于被訪問狀態(tài)時,刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 接收用戶的業(yè)務(wù)請求,所述業(yè)務(wù)請求攜帶訪問對象和操作方式; 根據(jù)所述操作方式,按照所述操作方式對應(yīng)的查找方法,在各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,根據(jù)所述操作方式,按照所述操作方式對應(yīng)的查找方法,在各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作,包括: 如果所述操作方式是刪除操作,根據(jù)所述訪問對象,從下向上逐級在各級存儲引擎中查找所述訪問對象,刪除所述訪問對象對應(yīng)的數(shù)據(jù); 如果所述操作方式不是刪除操作,根據(jù)所述訪問對象,從上向下逐級在所述各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,如果所述操作方式是刪除操作,根據(jù)所述訪問對象,從下向上逐級在各級存儲引擎中查找所述訪問對象,刪除所述訪問對象,包括: 如果所述操作方式是刪除操作,按照所述各級存儲引擎的級別,從下向上逐級在各級存儲引擎中查找所述訪問對象,當(dāng)被查找的存儲引擎上存在所述訪問對象對應(yīng)的數(shù)據(jù)時,刪除所述訪問對象對應(yīng)的數(shù)據(jù)。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,如果所述操作方式不是刪除操作,根據(jù)所述訪問對象,從上向下逐級在所述各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作,包括: 判斷所述兩級以上的存儲引擎中的主存儲引擎中是否存在所述訪問對象對應(yīng)的數(shù)據(jù); 如果所述主存儲引擎中存在所述訪問對象對應(yīng)的數(shù)據(jù),從主存儲引擎中獲取所述對應(yīng)的數(shù)據(jù); 如果主存儲引擎中不存在所述訪問對象對應(yīng)的數(shù)據(jù),按照所述各級存儲引擎的級別,從上向下逐級在所述各級存儲引擎中查找所述訪問對象對應(yīng)的數(shù)據(jù),直到查找到和所述訪問對象對應(yīng)的數(shù)據(jù),將所述查找到的數(shù)據(jù)移動到所述主存儲引擎中; 在所述主存儲引擎中,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
8.一種數(shù)據(jù)存儲裝置,其特征在于,存儲系統(tǒng)中包括兩級以上的存儲引擎,所述裝置包括: 第一獲取模塊,用于獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況; 確定模塊,用于根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù)據(jù); 第二獲取模塊,用于獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù); 數(shù)據(jù)存儲模塊,用于將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述確定模塊包括: 判斷單元,用于根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,判斷所述當(dāng)前存儲引擎中是否包括指定類型數(shù)據(jù),所述指定類型數(shù)據(jù)為存儲時長超過預(yù)設(shè)存儲時長且訪問次數(shù)低于預(yù)設(shè)閾值的數(shù)據(jù); 確定單元,用于如果所述當(dāng)前存儲引擎中包括指定類型數(shù)據(jù),則將所述指定類型數(shù)據(jù)確定為需要存儲至下一級存儲引擎的數(shù)據(jù)。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述數(shù)據(jù)存儲模塊包括: 存儲單元,用于將所述獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎; 刪除單元,用于當(dāng)所述需要存儲至下一級存儲引擎的數(shù)據(jù)未處于被訪問狀態(tài)時,刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。
11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括: 接收模塊,用于接收用戶的業(yè)務(wù)請求,所述業(yè)務(wù)請求攜帶訪問對象和操作方式; 操作模塊,用于根據(jù)所述操作方式,按照所述操作方式對應(yīng)的查找裝置,在各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述操作模塊包括: 第一操作單元,用于如果所述操作方式是刪除操作,根據(jù)所述訪問對象,從下向上逐級在各級存儲引擎中查找所述訪問對象,刪除所述訪問對象對應(yīng)的數(shù)據(jù); 第二操作單元,用于如果所述操作方式不是刪除操作,根據(jù)所述訪問對象,從上向下逐級在所述各級存儲引擎中查找所述訪問對象,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述第一操作單元用于如果所述操作方式是刪除操作,按照所述各級存儲引擎的級別,從下向上逐級在各級存儲引擎中查找所述訪問對象,當(dāng)被查找的存儲引擎上存在所述訪問對象對應(yīng)的數(shù)據(jù)時,刪除所述訪問對象對應(yīng)的數(shù)據(jù)。
14.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述第二操作單元包括: 判斷子單元,用于判斷所述兩級以上的存儲引擎中的主存儲引擎中是否存在所述訪問對象對應(yīng)的數(shù)據(jù); 數(shù)據(jù)獲取子單元,用于如果所述主存儲引擎中存在所述訪問對象對應(yīng)的數(shù)據(jù),從主存儲引擎中獲取所述對應(yīng)的數(shù)據(jù); 所述數(shù)據(jù)獲取子單元還用于如果主存儲引擎中不存在所述訪問對象對應(yīng)的數(shù)據(jù),按照所述各級存儲引擎的級別,從上向下逐級在所述各級存儲引擎中查找所述訪問對象對應(yīng)的數(shù)據(jù),直到查找到和所述訪問對象對應(yīng)的數(shù)據(jù),將所述查找到的數(shù)據(jù)移動到所述主存儲引擎中; 操作子單元,用于在所述主存儲引擎中,對所述訪問對象對應(yīng)的數(shù)據(jù)進(jìn)行相應(yīng)地操作。
15.一種存儲系統(tǒng),其特征在于,所述系統(tǒng)包括接入機設(shè)備以及兩級以上的存儲引擎, 其中,所述接入機設(shè)備被配置用于執(zhí)行以下方法: 獲取當(dāng)前存儲引擎的數(shù)據(jù)訪問情況; 根據(jù)所述當(dāng)前存儲引擎的數(shù)據(jù)訪問情況,確定所述當(dāng)前存儲引擎中包括需要存儲至下一級存儲引擎的數(shù) 據(jù); 獲取所述需要存儲至下一級存儲引擎的數(shù)據(jù); 將獲取到的數(shù)據(jù)存儲至所述下一級存儲引擎,并刪除所述當(dāng)前存儲引擎中的相應(yīng)數(shù)據(jù)。
【文檔編號】G06F17/30GK104035925SQ201310068244
【公開日】2014年9月10日 申請日期:2013年3月4日 優(yōu)先權(quán)日:2013年3月4日
【發(fā)明者】張禮方, 肖立鵬, 曾凱源, 鐘超宇, 莊泗華 申請人:深圳市騰訊計算機系統(tǒng)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1