一種數(shù)據(jù)存儲(chǔ)方法、存儲(chǔ)裝置及存儲(chǔ)系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種數(shù)據(jù)存儲(chǔ)方法、存儲(chǔ)裝置及存儲(chǔ)系統(tǒng),用于解決IP硬盤(pán)難以在一個(gè)主鍵值之下保存多個(gè)版本的數(shù)據(jù)的問(wèn)題。所述方法應(yīng)用于存儲(chǔ)系統(tǒng)中,所述存儲(chǔ)系統(tǒng)包括主機(jī)和網(wǎng)絡(luò)互聯(lián)協(xié)議IP硬盤(pán),所述方法包括:所述IP硬盤(pán)接收所述主機(jī)發(fā)送的寫(xiě)數(shù)據(jù)請(qǐng)求,所述寫(xiě)數(shù)據(jù)請(qǐng)求中包含目標(biāo)數(shù)據(jù)、所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值及所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值;判斷所述主鍵值是否保存在所述IP硬盤(pán)中;如果是,則判斷所述主鍵值對(duì)應(yīng)的版本值集合中是否包含所述版本值;當(dāng)所述版本值集合中不包含所述版本值時(shí),則將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述IP硬盤(pán)。
【專利說(shuō)明】一種數(shù)據(jù)存儲(chǔ)方法、存儲(chǔ)裝置及存儲(chǔ)系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲(chǔ)領(lǐng)域,特別涉及一種數(shù)據(jù)存儲(chǔ)方法、存儲(chǔ)裝置及存儲(chǔ)系統(tǒng)。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)互聯(lián)協(xié)議(Internet Protocol, IP)硬盤(pán)為提供IP協(xié)議接口的硬盤(pán),由于IP硬盤(pán)能夠通過(guò)IP協(xié)議直接與主機(jī)進(jìn)行通信,不僅使得IP硬盤(pán)與主機(jī)間沒(méi)有了距離限制,而且能夠支持大規(guī)模并行訪問(wèn),大幅提高數(shù)據(jù)訪問(wèn)的速度。
[0003]目前,IP硬盤(pán)使用主鍵-數(shù)據(jù)(Key-Value)的結(jié)構(gòu)進(jìn)行數(shù)據(jù)存儲(chǔ),主機(jī)也以Key-Value接口對(duì)IP硬盤(pán)中的數(shù)據(jù)進(jìn)行訪問(wèn)。在Key-Value的結(jié)構(gòu)中,Key是主鍵,通常是一個(gè)字符串,保存在IP硬盤(pán)的索引區(qū)中,而Value中包含要存儲(chǔ)的數(shù)據(jù),保存在IP硬盤(pán)的數(shù)據(jù)區(qū)中,其中,一個(gè)Key中保存有Value在硬盤(pán)上的存儲(chǔ)空間的位置信息,Key與Value之間是--對(duì)應(yīng)的。
[0004]在對(duì)IP硬盤(pán)中的數(shù)據(jù)進(jìn)行修改操作時(shí),在數(shù)據(jù)區(qū)分配另一空閑的存儲(chǔ)空間保存修改后的Value,并將索引區(qū)中對(duì)應(yīng)Key中保存的位置信息更改為修改后的Value的存儲(chǔ)空間的位置信息,而為修改前的Value所分配的存儲(chǔ)空間需要被回收。
[0005]因此,現(xiàn)有技術(shù)中要對(duì)數(shù)據(jù)進(jìn)行修改必須將原有的Value刪除,難以在一個(gè)Key之下保存多個(gè)版本的Value,不方便查看一個(gè)Key對(duì)應(yīng)的歷史版本的數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0006]本申請(qǐng)實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)方法、存儲(chǔ)裝置及存儲(chǔ)系統(tǒng),用于解決現(xiàn)有技術(shù)中IP硬盤(pán)難以在一個(gè)主鍵值之下保存多個(gè)版本的數(shù)據(jù)的問(wèn)題。
[0007]第一方面,本申請(qǐng)實(shí)施例提供了一種數(shù)據(jù)存儲(chǔ)方法,所述方法應(yīng)用于存儲(chǔ)系統(tǒng)中,所述存儲(chǔ)系統(tǒng)包括主機(jī)和網(wǎng)絡(luò)互聯(lián)協(xié)議IP硬盤(pán),所述方法包括:
[0008]所述IP硬盤(pán)接收所述主機(jī)發(fā)送的寫(xiě)數(shù)據(jù)請(qǐng)求,所述寫(xiě)數(shù)據(jù)請(qǐng)求中包含目標(biāo)數(shù)據(jù)、所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值及所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值;
[0009]判斷所述主鍵值是否保存在所述IP硬盤(pán)中;
[0010]如果是,則判斷所述主鍵值對(duì)應(yīng)的版本值集合中是否包含所述版本值;
[0011]當(dāng)所述版本值集合中不包含所述版本值時(shí),則將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述IP硬盤(pán)。
[0012]結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述IP硬盤(pán)之后,所述方法還包括:將所述版本值寫(xiě)入所述版本值集合中。
[0013]結(jié)合第一方面,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0014]當(dāng)所述版本值集合中包含所述版本值時(shí),獲得所述版本值對(duì)應(yīng)的位置信息,所述位置信息包括所述版本值對(duì)應(yīng)的舊數(shù)據(jù)存儲(chǔ)在所述IP硬盤(pán)中的地址;
[0015]將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述地址對(duì)應(yīng)的存儲(chǔ)空間中。
[0016]結(jié)合第一方面,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0017]當(dāng)所述版本值集合中包含所述版本值時(shí),在所述IP硬盤(pán)中確定空閑的存儲(chǔ)空間,將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述空閑的存儲(chǔ)空間中;
[0018]將所述版本值對(duì)應(yīng)的位置信息修改為所述空閑的存儲(chǔ)空間的地址。
[0019]結(jié)合第一方面,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述方法還包括:所述寫(xiě)數(shù)據(jù)請(qǐng)求中的所述版本值是由所述主機(jī)根據(jù)在元數(shù)據(jù)中查詢的所述主鍵值的版本信息獲得的。
[0020]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式或者第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述方法還包括:所述IP硬盤(pán)接收所述主機(jī)發(fā)送的讀數(shù)據(jù)請(qǐng)求,所述讀數(shù)據(jù)請(qǐng)求中包含所述主鍵值及所述版本值;
[0021]根據(jù)所述主鍵值及所述版本值確定出所述位置信息;
[0022]讀取所述位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的所述目標(biāo)數(shù)據(jù)。
[0023]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式或者第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第六種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0024]所述IP硬盤(pán)接收所述主機(jī)發(fā)送的讀數(shù)據(jù)請(qǐng)求,所述讀數(shù)據(jù)請(qǐng)求包含所述主鍵值;
[0025]確定所述主鍵值對(duì)應(yīng)的版本值集合中版本最高的版本值是所述版本值;
[0026]獲得所述版本值對(duì)應(yīng)的位置信息;
[0027]讀取所述位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的所述目標(biāo)數(shù)據(jù)。
[0028]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式或者第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第七種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0029]所述IP硬盤(pán)接收所述主機(jī)發(fā)送的刪除數(shù)據(jù)請(qǐng)求,所述刪除數(shù)據(jù)請(qǐng)求包含所述主鍵值及所述版本值;
[0030]從所述主鍵值對(duì)應(yīng)的版本值集合中刪除所述版本值。
[0031]結(jié)合第一方面的第七種可能的實(shí)現(xiàn)方式,在第一方面的第八種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0032]刪除所述版本值對(duì)應(yīng)的位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的所述目標(biāo)數(shù)據(jù)。
[0033]結(jié)合第一方面的第七種可能的實(shí)現(xiàn)方式,在第一方面的第九種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0034]判斷所述主鍵值對(duì)應(yīng)的版本值集合中是否還存在除所述版本值之外的其它版本值;
[0035]若不存在,則從所述IP硬盤(pán)中刪除所述主鍵值。
[0036]第二方面,本申請(qǐng)實(shí)施例提供一種存儲(chǔ)裝置,包括:
[0037]存儲(chǔ)單元,用于利用非易失性存儲(chǔ)介質(zhì)來(lái)存儲(chǔ)數(shù)據(jù);
[0038]接口,用于利用網(wǎng)絡(luò)互聯(lián)協(xié)議接收寫(xiě)數(shù)據(jù)請(qǐng)求,所述寫(xiě)數(shù)據(jù)請(qǐng)求中包含目標(biāo)數(shù)據(jù)、所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值及所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值;
[0039]控制器,用于判斷所述主鍵值是否保存在所述IP硬盤(pán)中;如果是,則判斷所述主鍵值對(duì)應(yīng)的版本值集合中是否包含所述版本值;當(dāng)所述版本值集合中不包含所述版本值時(shí),將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述IP硬盤(pán)。
[0040]結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述控制器還用于:在將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述存儲(chǔ)單元之后,將所述版本值寫(xiě)入所述版本值集合中。
[0041]結(jié)合第二方面,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述控制器還用于:當(dāng)所述版本值集合中包含所述版本值時(shí),獲得所述版本值對(duì)應(yīng)的位置信息,所述位置信息包括所述版本值對(duì)應(yīng)的舊數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)單元中的地址;并將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述地址對(duì)應(yīng)的存儲(chǔ)空間中。
[0042]結(jié)合第二方面,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述控制器還用于:當(dāng)所述版本值集合中包含所述版本值時(shí),在所述存儲(chǔ)單元中確定空閑的存儲(chǔ)空間,將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述空閑的存儲(chǔ)空間中;并將所述版本值對(duì)應(yīng)的位置信息修改為所述空閑的存儲(chǔ)空間的地址。
[0043]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式或者第二方面的第三種可能的實(shí)現(xiàn)方式,在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述接口還用于:接收讀數(shù)據(jù)請(qǐng)求,所述讀數(shù)據(jù)請(qǐng)求中包含所述主鍵值及所述版本值;
[0044]所述控制器還用于:根據(jù)所述主鍵值及所述版本值確定出所述位置信息;讀取所述位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的所述目標(biāo)數(shù)據(jù)。
[0045]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式或者第二方面的第三種可能的實(shí)現(xiàn)方式,在第二方面的第五種可能的實(shí)現(xiàn)方式中,所述接口還用于:接收讀數(shù)據(jù)請(qǐng)求,所述讀數(shù)據(jù)請(qǐng)求包含所述主鍵值;
[0046]所述控制器還用于:確定所述主鍵值對(duì)應(yīng)的版本值集合中版本最高的版本值是所述版本值;獲得所述版本值對(duì)應(yīng)的位置信息;讀取所述位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的所述目標(biāo)數(shù)據(jù)。
[0047]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式或者第二方面的第三種可能的實(shí)現(xiàn)方式,在第二方面的第六種可能的實(shí)現(xiàn)方式中,所述接口還用于:接收刪除數(shù)據(jù)請(qǐng)求,所述刪除數(shù)據(jù)請(qǐng)求包含所述主鍵值及所述版本值;
[0048]所述控制器還用于:從所述主鍵值對(duì)應(yīng)的版本值集合中刪除所述版本值。
[0049]結(jié)合第二方面的第六種可能的實(shí)現(xiàn)方式,在第二方面的第七種可能的實(shí)現(xiàn)方式中,所述控制器還用于:刪除所述版本值對(duì)應(yīng)的位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的所述目標(biāo)數(shù)據(jù)。
[0050]結(jié)合第二方面的第六種可能的實(shí)現(xiàn)方式,在第二方面的第八種可能的實(shí)現(xiàn)方式中,所述控制器還用于:判斷所述主鍵值對(duì)應(yīng)的版本值集合中是否還存在除所述版本值之外的其它版本值;若不存在,則從所述IP硬盤(pán)中刪除所述主鍵值。
[0051]第三方面,本申請(qǐng)實(shí)施例提供一種存儲(chǔ)系統(tǒng),包括:
[0052]第二方面所述的存儲(chǔ)裝置;
[0053]主機(jī),用于根據(jù)用戶輸入信息生成數(shù)據(jù)處理請(qǐng)求,并向所述存儲(chǔ)裝置發(fā)送所述數(shù)據(jù)處理請(qǐng)求,所述數(shù)據(jù)處理請(qǐng)求包括寫(xiě)數(shù)據(jù)請(qǐng)求、讀數(shù)據(jù)請(qǐng)求、刪除數(shù)據(jù)請(qǐng)求。
[0054]結(jié)合第三方面,在第三方面的第一種可能的實(shí)現(xiàn)方式中,所述主機(jī)具體用于根據(jù)所述主機(jī)中存儲(chǔ)的元數(shù)據(jù)確定所述數(shù)據(jù)處理請(qǐng)求中包含的目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值。
[0055]結(jié)合第三方面的第一種可能的實(shí)現(xiàn)方式,在第三方面的第二種可能的實(shí)現(xiàn)方式中,所述主機(jī)還用于根據(jù)所述主機(jī)中存儲(chǔ)的元數(shù)據(jù)確定所述數(shù)據(jù)處理請(qǐng)求中包含的目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值。
[0056]結(jié)合第三方面,在第三方面的第三種可能的實(shí)現(xiàn)方式中,所述主機(jī)還用于向所述存儲(chǔ)裝置發(fā)送查詢指令,所述查詢指令用于使所述存儲(chǔ)裝置根據(jù)保存的元數(shù)據(jù)確定所述數(shù)據(jù)處理請(qǐng)求中包含的目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值。
[0057]本申請(qǐng)實(shí)施例中提供的一個(gè)或多個(gè)技術(shù)方案,至少具有如下技術(shù)效果或優(yōu)點(diǎn):
[0058]本申請(qǐng)實(shí)施例中,IP硬盤(pán)接收所述主機(jī)發(fā)送的寫(xiě)數(shù)據(jù)請(qǐng)求,所述寫(xiě)數(shù)據(jù)請(qǐng)求中包含目標(biāo)數(shù)據(jù)、所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值及所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值;判斷所述主鍵值是否保存在所述IP硬盤(pán)中;如果是,則判斷所述主鍵值對(duì)應(yīng)的版本值集合中是否包含所述版本值;當(dāng)所述版本值集合中不包含所述版本值時(shí),則將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述IP硬盤(pán)。由此可見(jiàn),在本發(fā)明實(shí)施例中,所述主鍵值可以對(duì)應(yīng)多個(gè)版本值,在執(zhí)行寫(xiě)數(shù)據(jù)請(qǐng)求時(shí),如果目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值對(duì)應(yīng)的版本值集合中不包含目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值,則在保留該主鍵值原對(duì)應(yīng)版本的數(shù)據(jù)的情況下,存儲(chǔ)所述目標(biāo)數(shù)據(jù),使得該主鍵值能夠?qū)?yīng)多個(gè)版本的數(shù)據(jù),便于查看歷史版本的數(shù)據(jù)以及執(zhí)行數(shù)據(jù)回退。
【專利附圖】
【附圖說(shuō)明】
[0059]為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)要介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0060]圖1為【背景技術(shù)】中IP硬盤(pán)修改數(shù)據(jù)的示意圖;
[0061]圖2為本申請(qǐng)實(shí)施例中IP硬盤(pán)中數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的示意圖;
[0062]圖3為本申請(qǐng)實(shí)施例中一種數(shù)據(jù)存儲(chǔ)方法的流程示意圖;
[0063]圖4a為本申請(qǐng)實(shí)施例中新建一個(gè)版本數(shù)據(jù)的示意圖;
[0064]圖4b為本申請(qǐng)實(shí)施例中更改一個(gè)版本的數(shù)據(jù)的示意圖;
[0065]圖5為本申請(qǐng)實(shí)施例中另一種數(shù)據(jù)存儲(chǔ)方法的流程示意圖;
[0066]圖6為本申請(qǐng)實(shí)施例中更改一個(gè)版本的數(shù)據(jù)的另一種方法的示意圖;
[0067]圖7為本申請(qǐng)實(shí)施例中又一種數(shù)據(jù)存儲(chǔ)方法的流程示意圖;
[0068]圖8為本申請(qǐng)實(shí)施例中又一種數(shù)據(jù)存儲(chǔ)方法的流程示意圖;
[0069]圖9為本申請(qǐng)實(shí)施例中又一種數(shù)據(jù)存儲(chǔ)方法的流程示意圖;
[0070]圖10為本申請(qǐng)實(shí)施例中存儲(chǔ)裝置的結(jié)構(gòu)示意框圖;
[0071]圖11為本申請(qǐng)實(shí)施例中存儲(chǔ)系統(tǒng)的示意框圖。
【具體實(shí)施方式】
[0072]參見(jiàn)圖1,現(xiàn)有技術(shù)中,如果IP硬盤(pán)中保存有Key-Valuel的鍵值對(duì),Valuel保存在數(shù)據(jù)區(qū),Key保存在索引區(qū),Key中保存有Valuel的存儲(chǔ)空間的位置信息,此時(shí)IP硬盤(pán)在響應(yīng)用戶讀取Key對(duì)應(yīng)數(shù)據(jù)的讀操作時(shí)將返回Valuel中的數(shù)據(jù)。而在數(shù)據(jù)修改后,Key中記錄新寫(xiě)入的Value2的存儲(chǔ)空間的位置信息,Valuel將被刪除,后續(xù)IP硬盤(pán)在響應(yīng)用戶讀取Key對(duì)應(yīng)數(shù)據(jù)的讀操作時(shí)將返回Value2中的數(shù)據(jù)。
[0073]因此,對(duì)于IP硬盤(pán)中保存的一個(gè)Key-Value鍵值對(duì),要對(duì)數(shù)據(jù)進(jìn)行修改必須將原有的Value刪除,難以在一個(gè)Key之下保存多個(gè)版本的Value,不方便查看一個(gè)Key對(duì)應(yīng)的歷史版本的數(shù)據(jù)。
[0074]為了解決上述技術(shù)問(wèn)題,本申請(qǐng)實(shí)施例中,在以Key-Value的結(jié)構(gòu)保存數(shù)據(jù)時(shí),在主鍵信息與數(shù)據(jù)之間增加了版本信息,一個(gè)主鍵值可以對(duì)應(yīng)多個(gè)版本值,每一個(gè)版本值對(duì)應(yīng)一項(xiàng)數(shù)據(jù),進(jìn)而實(shí)現(xiàn)在一個(gè)主鍵值之下保存多個(gè)版本的數(shù)據(jù),方便進(jìn)行數(shù)據(jù)回退及查看歷史版本的數(shù)據(jù)。
[0075]下面通過(guò)附圖以及具體實(shí)施例對(duì)本申請(qǐng)技術(shù)方案做詳細(xì)的說(shuō)明,應(yīng)當(dāng)理解本申請(qǐng)實(shí)施例以及實(shí)施例中的具體特征是對(duì)本申請(qǐng)技術(shù)方案的詳細(xì)的說(shuō)明,而不是對(duì)本申請(qǐng)技術(shù)方案的限定,在不沖突的情況下,本申請(qǐng)實(shí)施例以及實(shí)施例中的技術(shù)特征可以相互組合。
[0076]本申請(qǐng)實(shí)施例中,一項(xiàng)數(shù)據(jù)以主鍵-版本-數(shù)據(jù)(Key-Vers1n-Value)的結(jié)構(gòu)存儲(chǔ)在IP硬盤(pán)中,其中,每個(gè)主鍵值對(duì)應(yīng)一個(gè)版本值集合,該版本值集合中的每一個(gè)版本值對(duì)應(yīng)一位置信息,該位置信息中包含一項(xiàng)數(shù)據(jù)保存在IP硬盤(pán)中的存儲(chǔ)空間的地址,具體的,位置信息中可以包含數(shù)據(jù)在IP硬盤(pán)中的偏移量。因此,根據(jù)一個(gè)主鍵值及該主鍵值對(duì)應(yīng)的版本值集合中的一個(gè)版本值,可以唯一確定出IP硬盤(pán)中存儲(chǔ)的一項(xiàng)數(shù)據(jù)。
[0077]可選的,參見(jiàn)圖2,IP硬盤(pán)的存儲(chǔ)空間可分為索引區(qū)和數(shù)據(jù)區(qū),其中,索引區(qū)中保存有元數(shù)據(jù),所述元數(shù)據(jù)包含主鍵值以及各個(gè)版本值之間的對(duì)應(yīng)關(guān)系;而數(shù)據(jù)區(qū)用于保存數(shù)據(jù)。索引區(qū)中的一個(gè)版本值對(duì)應(yīng)的一項(xiàng)數(shù)據(jù)在數(shù)據(jù)區(qū)中的存儲(chǔ)空間的位置信息。
[0078]主鍵-版本-數(shù)據(jù)結(jié)構(gòu)中,版本值用于區(qū)分對(duì)應(yīng)一個(gè)主鍵值的多個(gè)數(shù)據(jù),版本值本身可以是數(shù)字序列、時(shí)間戳或者是包含時(shí)間戳的信息、用戶標(biāo)識(shí)或者與用戶標(biāo)識(shí)相關(guān)的信息、以及與數(shù)據(jù)分布有關(guān)的信息,等等。
[0079]為了便于理解,首先介紹主機(jī)生成需要發(fā)送給IP硬盤(pán)的寫(xiě)數(shù)據(jù)請(qǐng)求的過(guò)程,具體如下:
[0080]主機(jī)存儲(chǔ)的元數(shù)據(jù)中包含已保存文件的文件名(或者與文件名等同的用于標(biāo)識(shí)文件的標(biāo)識(shí))與主鍵值的對(duì)應(yīng)關(guān)系。實(shí)際情況中,一個(gè)文件需要被劃分為多個(gè)數(shù)據(jù)塊來(lái)進(jìn)行存儲(chǔ),每個(gè)數(shù)據(jù)塊對(duì)應(yīng)有一個(gè)主鍵值,因此,元數(shù)據(jù)中保存有一個(gè)文件的每一個(gè)數(shù)據(jù)塊與主鍵值的對(duì)應(yīng)關(guān)系。
[0081]用戶在存儲(chǔ)文件時(shí),向主機(jī)輸入目標(biāo)數(shù)據(jù),以及目標(biāo)數(shù)據(jù)的文件名,主機(jī)接收到用戶輸入的上述信息后,查詢主機(jī)存儲(chǔ)的元數(shù)據(jù),根據(jù)主機(jī)存儲(chǔ)的元數(shù)據(jù)確定目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值。
[0082]可選的,主機(jī)存儲(chǔ)的元數(shù)據(jù)中還包含主鍵值的版本信息,即一個(gè)主鍵值對(duì)應(yīng)的版本值集合中包含有哪些版本值。主機(jī)可以根據(jù)主機(jī)存儲(chǔ)的元數(shù)據(jù)中包含主鍵值的版本信息確定寫(xiě)數(shù)據(jù)請(qǐng)求中的版本值。例如,在針對(duì)一個(gè)主鍵值新建一個(gè)版本的數(shù)據(jù)時(shí),生成一個(gè)不同于主鍵值的版本值集合中當(dāng)前存在的版本值的新的版本值。
[0083]可選的,由于IP硬盤(pán)中存儲(chǔ)的元數(shù)據(jù)中包含該IP硬盤(pán)保存的主鍵值對(duì)應(yīng)的版本信息,因此,主機(jī)可以向IP硬盤(pán)請(qǐng)求IP硬盤(pán)存儲(chǔ)的元數(shù)據(jù),并根據(jù)IP硬盤(pán)的元數(shù)據(jù)確定寫(xiě)數(shù)據(jù)請(qǐng)求中的版本值。
[0084]實(shí)際情況中,用戶可能會(huì)要求使用當(dāng)前輸入的目標(biāo)數(shù)據(jù)覆蓋之前的某一版本的數(shù)據(jù),主機(jī)可以根據(jù)用戶輸入的被覆蓋版本的信息與主機(jī)或IP硬盤(pán)存儲(chǔ)的元數(shù)據(jù)確定出被覆蓋數(shù)據(jù)對(duì)應(yīng)的版本值,亦即目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值。
[0085]而如果主機(jī)查詢?cè)獢?shù)據(jù)之后,如果確定元數(shù)據(jù)中不包含用戶輸入的文件名,則表明用戶要存儲(chǔ)新的文件,主機(jī)將分配一個(gè)IP硬盤(pán)當(dāng)前不存在的主鍵值,并針對(duì)該主鍵值新建一個(gè)版本值,指示IP硬盤(pán)根據(jù)分配的主鍵值和版本值來(lái)存儲(chǔ)目標(biāo)數(shù)據(jù)。
[0086]可選的,一個(gè)文件劃分的多個(gè)數(shù)據(jù)塊分別對(duì)應(yīng)不同IP硬盤(pán)中的主鍵值,即數(shù)據(jù)塊被分別存儲(chǔ)在不同的IP硬盤(pán)中。
[0087]參見(jiàn)圖3,為本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法的流程示意圖,該流程可包括:
[0088]步驟101:1P硬盤(pán)接收主機(jī)發(fā)送的寫(xiě)數(shù)據(jù)請(qǐng)求,寫(xiě)數(shù)據(jù)請(qǐng)求中包含目標(biāo)數(shù)據(jù)、目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值及目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值;
[0089]步驟102:判斷該主鍵值是否保存在IP硬盤(pán)中;若是,則轉(zhuǎn)入步驟103 ;
[0090]步驟103:判斷該主鍵值對(duì)應(yīng)的版本值集合中是否存在目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值;若不存在,則轉(zhuǎn)入步驟104 ;
[0091]步驟104:將目標(biāo)數(shù)據(jù)寫(xiě)入IP硬盤(pán)。
[0092]具體的,步驟101中,IP硬盤(pán)接收主機(jī)發(fā)送的寫(xiě)數(shù)據(jù)請(qǐng)求,該寫(xiě)數(shù)據(jù)請(qǐng)求中包含主機(jī)采用前述方式確定出的目標(biāo)數(shù)據(jù)、目標(biāo)數(shù)據(jù)的主鍵值以及目標(biāo)數(shù)據(jù)的版本值。本申請(qǐng)實(shí)施例中,IP硬盤(pán)可以設(shè)置在主機(jī)內(nèi)部,這種情況下,IP硬盤(pán)可以通過(guò)總線與主機(jī)中的包括處理器在內(nèi)的模塊進(jìn)行通信。另外,IP硬盤(pán)也可以設(shè)置在主機(jī)外部,IP硬盤(pán)可以利用IP協(xié)議與主機(jī)進(jìn)行通信,接收主機(jī)發(fā)送的寫(xiě)數(shù)據(jù)請(qǐng)求。
[0093]IP硬盤(pán)收到寫(xiě)數(shù)據(jù)請(qǐng)求之后,IP硬盤(pán)中的控制器首先判斷目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值是一個(gè)新的主鍵值,還是當(dāng)前已經(jīng)存在的主鍵值。如果控制器判斷出IP硬盤(pán)中已經(jīng)存在了目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值,則進(jìn)一步判斷該主鍵值對(duì)應(yīng)的版本值集合中是否已經(jīng)存在目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值。如果判斷出該版本值集合中不包含目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值,則表明需要在該主鍵值之下新建一個(gè)版本的數(shù)據(jù),在保留該主鍵值原對(duì)應(yīng)版本的數(shù)據(jù)的情況下,在IP硬盤(pán)中的空閑存儲(chǔ)空間中存儲(chǔ)所述目標(biāo)數(shù)據(jù),使得該主鍵值能夠?qū)?yīng)多個(gè)版本的數(shù)據(jù),便于查看歷史版本的數(shù)據(jù)以及執(zhí)行數(shù)據(jù)回退。
[0094]可選的,數(shù)據(jù)存儲(chǔ)方法還包括:
[0095]步驟105:將該版本值寫(xiě)入版本值集合中。
[0096]具體的,步驟105與步驟104沒(méi)有嚴(yán)格的先后順序關(guān)系,步驟105可以在步驟104之前執(zhí)行,可以與步驟104同時(shí)執(zhí)行,也可以在步驟104之后執(zhí)行。通過(guò)將目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值加入目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值對(duì)應(yīng)的版本值集合中,而該版本值中包含有目標(biāo)數(shù)據(jù)的存儲(chǔ)空間的位置信息,使得通過(guò)該主鍵值能夠查詢到目標(biāo)數(shù)據(jù)以及目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本信息,便于對(duì)目標(biāo)數(shù)據(jù)進(jìn)行管理。
[0097]參見(jiàn)圖4a,對(duì)上述技術(shù)方案舉例說(shuō)明:在存儲(chǔ)數(shù)據(jù)之前,索引區(qū)中的Key對(duì)應(yīng)的版本值集合中包含V1、V2,在獲取到Put (Key,V3,Value3)的寫(xiě)數(shù)據(jù)請(qǐng)求時(shí),在判斷出Key對(duì)應(yīng)的版本值集合中不包含V3時(shí),在數(shù)據(jù)區(qū)中一空閑存儲(chǔ)空間存儲(chǔ)Value3,并在Key對(duì)應(yīng)的版本值集合中添加V3,在V3中寫(xiě)入Value3的存儲(chǔ)空間的位置信息。
[0098]上述技術(shù)方案中,IP硬盤(pán)以主鍵-版本-數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)數(shù)據(jù),使得一個(gè)主鍵值之下可以保存多個(gè)版本的數(shù)據(jù),進(jìn)而允許以新建版本值的方式來(lái)更新數(shù)據(jù),而不刪除之前的歷史版本的數(shù)據(jù),便于查看歷史版本的數(shù)據(jù)以及執(zhí)行數(shù)據(jù)的回退。
[0099]進(jìn)一步,步驟103執(zhí)行時(shí),若確定版本值集合中存在目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值,則轉(zhuǎn)入步驟106,執(zhí)行如下流程:
[0100]步驟106:獲得該版本值對(duì)應(yīng)的位置信息,該位置信息包括版本值對(duì)應(yīng)的舊數(shù)據(jù)存儲(chǔ)在IP硬盤(pán)中的地址;
[0101]步驟107:將目標(biāo)數(shù)據(jù)寫(xiě)入獲得的地址對(duì)應(yīng)的存儲(chǔ)空間中。
[0102]具體的,如果控制器判斷出索引區(qū)中已經(jīng)存在了目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值,以及該主鍵值對(duì)應(yīng)的版本值集合中已經(jīng)存在目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值,則表明需要對(duì)當(dāng)前已存在的一個(gè)版本對(duì)應(yīng)的數(shù)據(jù)進(jìn)行修改,執(zhí)行步驟106?107,確定出需要被覆蓋的在先版本對(duì)應(yīng)的數(shù)據(jù)的存儲(chǔ)空間,在確定出的存儲(chǔ)空間處寫(xiě)入目標(biāo)數(shù)據(jù)。
[0103]例如,參見(jiàn)圖4b,在存儲(chǔ)數(shù)據(jù)之前,索引區(qū)中的Key對(duì)應(yīng)的版本值集合中包含V1、V2,在獲取到Put (Key,VI,Value3)的寫(xiě)數(shù)據(jù)請(qǐng)求時(shí),在判斷出Key對(duì)應(yīng)的版本值集合中已經(jīng)存在Vl時(shí),獲取Vl中包含的存儲(chǔ)空間信息,確定出Vl對(duì)應(yīng)的舊數(shù)據(jù)Valuel在數(shù)據(jù)區(qū)中的存儲(chǔ)空間,在該存儲(chǔ)空間覆蓋寫(xiě)入Value3。
[0104]上述技術(shù)方案中,可以對(duì)一個(gè)主鍵值的某一版本的數(shù)據(jù)進(jìn)行修改,而不影響該主鍵值的其他版本的數(shù)據(jù),容易對(duì)數(shù)據(jù)進(jìn)行維護(hù),提高了數(shù)據(jù)的有效性。
[0105]進(jìn)一步,步驟102執(zhí)行時(shí),如果確定IP硬盤(pán)中不存在目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值,則轉(zhuǎn)入步驟108,執(zhí)行如下流程:
[0106]步驟108:在IP硬盤(pán)的空閑存儲(chǔ)空間中保存目標(biāo)數(shù)據(jù);
[0107]步驟109:在IP硬盤(pán)中寫(xiě)入目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值,并將目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值與寫(xiě)入的該主鍵值進(jìn)行對(duì)應(yīng)存儲(chǔ),以及在存儲(chǔ)的版本值中添加該空閑存儲(chǔ)空間的位置信肩、O
[0108]具體的,在目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值為新的主鍵值時(shí),IP硬盤(pán)將分配一空閑存儲(chǔ)空間存儲(chǔ)接收的數(shù)據(jù),并在IP硬盤(pán)中對(duì)應(yīng)的寫(xiě)入接收的主鍵值和版本值。由于寫(xiě)入的數(shù)據(jù)為主鍵值對(duì)應(yīng)的第一個(gè)版本的數(shù)據(jù),因此,該主鍵值的版本值集合中只有新寫(xiě)入的版本值,該版本值中包含存儲(chǔ)新寫(xiě)入數(shù)據(jù)的存儲(chǔ)空間的位置信息。
[0109]另外,步驟109可以與步驟108同時(shí)執(zhí)行,或者先于步驟108執(zhí)行,或者在步驟108之后執(zhí)行,本申請(qǐng)實(shí)施例不予限定。
[0110]參見(jiàn)圖5,為本申請(qǐng)實(shí)施例提供的另一種數(shù)據(jù)存儲(chǔ)方法的流程示意圖,該流程可包括:
[0111]步驟201:1P硬盤(pán)接收主機(jī)發(fā)送的寫(xiě)數(shù)據(jù)請(qǐng)求,寫(xiě)數(shù)據(jù)請(qǐng)求中包含目標(biāo)數(shù)據(jù)、目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值及目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值;
[0112]步驟202:判斷目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值是否保存在IP硬盤(pán)中;
[0113]步驟203:在IP硬盤(pán)中保存有該主鍵值時(shí),判斷該主鍵值對(duì)應(yīng)的版本值集合中是否存在目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值;
[0114]步驟204:當(dāng)該版本值集合中包含目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值時(shí),在IP硬盤(pán)中確定空閑的存儲(chǔ)空間,將目標(biāo)數(shù)據(jù)寫(xiě)入該空閑的存儲(chǔ)空間中;
[0115]步驟205:將該版本值對(duì)應(yīng)的位置信息修改為該空閑的存儲(chǔ)空間的地址。
[0116]具體的,步驟201?204的實(shí)施方式可以參考步驟101?104的實(shí)施方式。圖5對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)方法與圖3對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)方法的區(qū)別在于:在控制器判斷出索引區(qū)中已經(jīng)存在了目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值,以及該主鍵值對(duì)應(yīng)的版本值集合中已經(jīng)存在目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值后,在對(duì)某一版本值對(duì)應(yīng)的數(shù)據(jù)進(jìn)行更新時(shí),不是直接在該版本值對(duì)應(yīng)的舊數(shù)據(jù)的存儲(chǔ)空間處寫(xiě)入新數(shù)據(jù),而是在數(shù)據(jù)區(qū)的空閑位置處寫(xiě)入新數(shù)據(jù),然后將該版本值中包含的位置信息更新為新寫(xiě)入數(shù)據(jù)的存儲(chǔ)空間的地址。
[0117]例如,參見(jiàn)圖6,在存儲(chǔ)數(shù)據(jù)之前,索引區(qū)中的Key對(duì)應(yīng)的版本值集合中包含V1、V2,在獲取到Put (Key, V2,Value3)的寫(xiě)數(shù)據(jù)請(qǐng)求時(shí),在判斷出Key對(duì)應(yīng)的版本值集合中已經(jīng)存在V2時(shí),在數(shù)據(jù)區(qū)中一空閑存儲(chǔ)空間存儲(chǔ)Value3,并將V2中保存的存儲(chǔ)空間位置信息更新為Value3的存儲(chǔ)空間的位置信息。
[0118]上述技術(shù)方案中,避免了在原數(shù)據(jù)的存儲(chǔ)空間寫(xiě)入新數(shù)據(jù)時(shí)可能產(chǎn)生的錯(cuò)誤,例如數(shù)據(jù)混淆錯(cuò)誤、原數(shù)據(jù)存儲(chǔ)空間的容量小于新數(shù)據(jù)的大小導(dǎo)致的新數(shù)據(jù)不完整錯(cuò)誤,另夕卜,還能避免原數(shù)據(jù)存儲(chǔ)空間大于新數(shù)據(jù)大小造成的存儲(chǔ)空間浪費(fèi)。
[0119]可選的,步驟205之后,釋放該版本值對(duì)應(yīng)的舊數(shù)據(jù)的存儲(chǔ)空間,避免存儲(chǔ)空間浪費(fèi)。
[0120]進(jìn)一步,參見(jiàn)圖7,數(shù)據(jù)存儲(chǔ)方法還可以包括如下流程:
[0121]步驟301:1P硬盤(pán)接收主機(jī)發(fā)送的讀數(shù)據(jù)請(qǐng)求,讀數(shù)據(jù)請(qǐng)求中包含目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值及目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值;
[0122]步驟302:根據(jù)該主鍵值及該版本值確定出位置信息;
[0123]步驟303:讀取該位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的目標(biāo)數(shù)據(jù)。
[0124]具體的,用戶在讀取之前寫(xiě)入的數(shù)據(jù)時(shí)需要向主機(jī)輸入目標(biāo)數(shù)據(jù)的文件名以及表明要讀取哪個(gè)版本的數(shù)據(jù)的信息,主機(jī)查詢本地元數(shù)據(jù)或者同時(shí)向IP硬盤(pán)請(qǐng)求元數(shù)據(jù),確定出目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值以及版本值。
[0125]而IP硬盤(pán)保存的元數(shù)據(jù)保存有:數(shù)據(jù)對(duì)應(yīng)的主鍵值、數(shù)據(jù)對(duì)應(yīng)的版本值、用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)空間的位置信息三者的對(duì)應(yīng)關(guān)系。步驟302中,IP硬盤(pán)中的處理器根據(jù)讀數(shù)據(jù)請(qǐng)求中的主鍵值、版本值以及IP硬盤(pán)中元數(shù)據(jù)的上述對(duì)應(yīng)關(guān)系即可確定出一位置信息,該位置信息即待讀取的目標(biāo)數(shù)據(jù)在IP硬盤(pán)中存儲(chǔ)空間的位置信息。步驟303中,根據(jù)該位置信息定位出數(shù)據(jù),即為目標(biāo)數(shù)據(jù),向主機(jī)返回目標(biāo)數(shù)據(jù),實(shí)現(xiàn)目標(biāo)數(shù)據(jù)的讀取。
[0126]上述技術(shù)方案中,能夠在一個(gè)主鍵值對(duì)應(yīng)有多個(gè)數(shù)據(jù)的情況下,準(zhǔn)確、便捷地讀取用戶需要的數(shù)據(jù)。
[0127]進(jìn)一步,參見(jiàn)圖8,數(shù)據(jù)存儲(chǔ)方法還可以包括如下流程:
[0128]步驟401:1P硬盤(pán)接收主機(jī)發(fā)送的讀數(shù)據(jù)請(qǐng)求,讀數(shù)據(jù)請(qǐng)求包含目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值;
[0129]步驟402:確定該主鍵值對(duì)應(yīng)的版本值集合中版本最高的版本值是目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值;
[0130]步驟403:獲得版本值對(duì)應(yīng)的位置信息;
[0131]步驟404:讀取位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的目標(biāo)數(shù)據(jù)。
[0132]具體的,本方法與圖7對(duì)應(yīng)的方法的區(qū)別在于:實(shí)際情況中,用戶可能沒(méi)有輸入要讀取那個(gè)版本的數(shù)據(jù)的相關(guān)信息,主機(jī)發(fā)送給IP硬盤(pán)的讀數(shù)據(jù)請(qǐng)求中不包含目標(biāo)數(shù)據(jù)的版本值,IP硬盤(pán)在接收到這一類的讀取數(shù)據(jù)請(qǐng)求時(shí),默認(rèn)要讀取該主鍵值對(duì)應(yīng)的版本值集合中版本最高的版本值對(duì)應(yīng)的數(shù)據(jù),向主機(jī)返回該版本最高的版本值對(duì)應(yīng)的數(shù)據(jù)。
[0133]實(shí)施過(guò)程中,可根據(jù)主鍵-版本-數(shù)據(jù)結(jié)構(gòu)中版本值自身的屬性來(lái)確定出版本最高的版本值。例如,在版本值為不斷累加的數(shù)字序列時(shí),對(duì)應(yīng)數(shù)值最大的數(shù)字序列即為版本值(比如,在版本值集合中只有1.1和1.2這兩個(gè)版本值時(shí),可確定版本值1.2為最高版本);而在版本值為時(shí)間戳或者包含時(shí)間戳的信息時(shí),可以確定出對(duì)應(yīng)最晚時(shí)間的版本值為版本最聞的版本值。
[0134]上述技術(shù)方案中,IP硬盤(pán)能夠在接收到不包含版本信息的讀數(shù)據(jù)請(qǐng)求時(shí)返回目標(biāo)數(shù)據(jù)的主鍵值對(duì)應(yīng)的版本最高的版本值對(duì)應(yīng)的數(shù)據(jù),便于用戶通過(guò)快捷便利地讀取數(shù)據(jù)。
[0135]進(jìn)一步,參見(jiàn)圖9,數(shù)據(jù)存儲(chǔ)方法還可以包括如下流程:
[0136]步驟501:1P硬盤(pán)接收主機(jī)發(fā)送的刪除數(shù)據(jù)請(qǐng)求,刪除數(shù)據(jù)請(qǐng)求包含目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值及目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值;
[0137]步驟502:從該主鍵值對(duì)應(yīng)的版本值集合中刪除目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值。
[0138]具體的,用戶在刪除數(shù)據(jù)時(shí)向主機(jī)輸入目標(biāo)數(shù)據(jù)對(duì)應(yīng)的文件名及表明要?jiǎng)h除哪個(gè)版本的文件的信息。主機(jī)查詢本地元數(shù)據(jù)或者同時(shí)向IP硬盤(pán)請(qǐng)求元數(shù)據(jù),確定出目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值以及版本值。
[0139]IP硬盤(pán)在接收到刪除數(shù)據(jù)請(qǐng)求后,從目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值對(duì)應(yīng)的版本值集合中刪除目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值,在刪除該版本值之后,與該主鍵值對(duì)應(yīng)的數(shù)據(jù)中已經(jīng)不包含目標(biāo)數(shù)據(jù),進(jìn)而實(shí)現(xiàn)快速、準(zhǔn)確地刪除主鍵值對(duì)應(yīng)的一個(gè)版本數(shù)據(jù)。
[0140]可選的,步驟501之后,數(shù)據(jù)存儲(chǔ)方法還可以包括如下步驟:
[0141]步驟503:刪除版本值對(duì)應(yīng)的位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的目標(biāo)數(shù)據(jù)。
[0142]具體的,還可以刪除IP硬盤(pán)中與目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值對(duì)應(yīng)的數(shù)據(jù),從物理層面上徹底刪除待刪除的數(shù)據(jù),提高存儲(chǔ)空間的效用。其中,步驟503可以與步驟502同時(shí)進(jìn)行,也可以在步驟502之前進(jìn)行;在保存了目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值中的位置信息之后,步驟503也可以在步驟502之后進(jìn)行。
[0143]可選的,在步驟502之后,數(shù)據(jù)存儲(chǔ)方法還可以包括如下步驟:
[0144]步驟504:判斷該主鍵值對(duì)應(yīng)的版本值集合中是否還存在除目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值之外的其它版本值;若不存在,則執(zhí)行步驟505 ;
[0145]步驟505:從IP硬盤(pán)中刪除該主鍵值。
[0146]具體的,在將版本值刪除之后,控制器將判斷該主鍵值對(duì)應(yīng)的版本值集合中是否還存在其他的版本值,如果還存在,則結(jié)束進(jìn)程。如果不存在其他版本值了,表明已經(jīng)沒(méi)有數(shù)據(jù)與該主鍵值相對(duì)應(yīng),該主鍵值已經(jīng)沒(méi)有存在的必要,此時(shí)可以刪除該主鍵值,提高存儲(chǔ)主鍵值的索引區(qū)的存儲(chǔ)空間的效用。
[0147]本申請(qǐng)實(shí)施例中,IP硬盤(pán)中存儲(chǔ)的元數(shù)據(jù)可以是以列表或數(shù)據(jù)庫(kù)的形式,列表或數(shù)據(jù)庫(kù)中保存有主鍵值、版本值、數(shù)據(jù)的存儲(chǔ)空間的位置信息三者的對(duì)應(yīng)關(guān)系。另外,IP硬盤(pán)中存儲(chǔ)的元數(shù)據(jù)也可以是IP硬盤(pán)索引區(qū)中保存的主鍵值與版本值的形式存在,其中,每一個(gè)主鍵值中包含于主鍵值對(duì)應(yīng)的每一個(gè)版本值的信息(可以是版本值的地址信息、版本名,等等),通過(guò)該信息可以獲知主鍵值對(duì)應(yīng)有哪些版本值,而每一個(gè)版本值中包含有位置信息,該位置信息用于表征一項(xiàng)數(shù)據(jù)在IP硬盤(pán)中的存儲(chǔ)空間的位置。
[0148]基于相同的發(fā)明構(gòu)思,本申請(qǐng)實(shí)施例提供了一種存儲(chǔ)裝置,參見(jiàn)圖10,存儲(chǔ)裝置包括總線600,以及連接到總線600的控制器601、存儲(chǔ)單元602、接口 603。
[0149]其中,存儲(chǔ)單元602用于利用非易失性存儲(chǔ)介質(zhì)來(lái)存儲(chǔ)數(shù)據(jù);接口 603,用于利用網(wǎng)絡(luò)互聯(lián)協(xié)議接收寫(xiě)數(shù)據(jù)請(qǐng)求,寫(xiě)數(shù)據(jù)請(qǐng)求中包含目標(biāo)數(shù)據(jù)、目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值及目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值。本申請(qǐng)實(shí)施例中接口 603可以是獨(dú)立的通信模塊,也可以是控制器601提供的通信接口。
[0150]而控制器601用于:判斷目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值是否保存在IP硬盤(pán)中;如果是,則判斷該主鍵值對(duì)應(yīng)的版本值集合中是否包含目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值;當(dāng)版本值集合中不包含版本值時(shí),將目標(biāo)數(shù)據(jù)寫(xiě)入IP硬盤(pán)。
[0151]可選的,控制器601還用于:在將目標(biāo)數(shù)據(jù)寫(xiě)入存儲(chǔ)單元之后,將目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值寫(xiě)入版本值集合中。
[0152]可選的,控制器601還用于:當(dāng)版本值集合中包含目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值時(shí),獲得該版本值對(duì)應(yīng)的位置信息,該位置信息包括目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值對(duì)應(yīng)的舊數(shù)據(jù)存儲(chǔ)在存儲(chǔ)單元中的地址;并將目標(biāo)數(shù)據(jù)寫(xiě)入地址對(duì)應(yīng)的存儲(chǔ)空間中。
[0153]可選的,控制器還用于:當(dāng)版本值集合中包含目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值時(shí),在存儲(chǔ)單元中確定空閑的存儲(chǔ)空間,將目標(biāo)數(shù)據(jù)寫(xiě)入空閑的存儲(chǔ)空間中;并將目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值對(duì)應(yīng)的位置信息修改為該空閑的存儲(chǔ)空間的地址。
[0154]可選的,接口 603還用于:接收讀數(shù)據(jù)請(qǐng)求,該讀數(shù)據(jù)請(qǐng)求中包含主鍵值及版本值;
[0155]控制器601還用于:根據(jù)主鍵值及版本值確定出位置信息;讀取位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的目標(biāo)數(shù)據(jù)。
[0156]可選的,接口 603還用于:接收讀數(shù)據(jù)請(qǐng)求,讀數(shù)據(jù)請(qǐng)求包含主鍵值;
[0157]控制器601還用于:確定主鍵值對(duì)應(yīng)的版本值集合中版本最高的版本值是版本值;獲得版本值對(duì)應(yīng)的位置信息;讀取位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的目標(biāo)數(shù)據(jù)。
[0158]可選的,接口 603還用于:接收刪除數(shù)據(jù)請(qǐng)求,刪除數(shù)據(jù)請(qǐng)求包含主鍵值及版本值;
[0159]控制器601還用于:從目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值對(duì)應(yīng)的版本值集合中刪除版本值。
[0160]可選的,控制器601還用于:刪除版本值對(duì)應(yīng)的位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的目標(biāo)數(shù)據(jù)。
[0161]可選的,控制器601還用于:判斷目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值對(duì)應(yīng)的版本值集合中是否還存在除該版本值之外的其它版本值;若不存在,則從IP硬盤(pán)中刪除主鍵值。
[0162]前述實(shí)施例中的數(shù)據(jù)存儲(chǔ)方法中的各種數(shù)據(jù)存儲(chǔ)方式和具體實(shí)例同樣適用于本實(shí)施例的存儲(chǔ)裝置,通過(guò)前述實(shí)施例中對(duì)數(shù)據(jù)存儲(chǔ)方法的詳細(xì)描述,本領(lǐng)域技術(shù)人員可以清楚的知道本實(shí)施例中存儲(chǔ)裝置的實(shí)施方法,所以為了說(shuō)明書(shū)的簡(jiǎn)潔,在此不再詳述。
[0163]基于相同的發(fā)明構(gòu)思,本申請(qǐng)實(shí)施例還提供了一種存儲(chǔ)系統(tǒng),參見(jiàn)圖11,該系統(tǒng)包括主機(jī)701和存儲(chǔ)裝置702。
[0164]其中,存儲(chǔ)裝置702為前述包括總線600、控制器601、存儲(chǔ)單元602、接口 603的存儲(chǔ)裝置。
[0165]而主機(jī)701用于:根據(jù)用戶輸入信息生成數(shù)據(jù)處理請(qǐng)求,并向存儲(chǔ)裝置702發(fā)送數(shù)據(jù)處理請(qǐng)求,數(shù)據(jù)處理請(qǐng)求包括寫(xiě)數(shù)據(jù)請(qǐng)求、讀數(shù)據(jù)請(qǐng)求、刪除數(shù)據(jù)請(qǐng)求。
[0166]可選的,主機(jī)701具體用于根據(jù)主機(jī)701中存儲(chǔ)的元數(shù)據(jù)確定數(shù)據(jù)處理請(qǐng)求中包含的目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值。
[0167]可選的,主機(jī)701還用于根據(jù)主機(jī)701中存儲(chǔ)的元數(shù)據(jù)確定數(shù)據(jù)處理請(qǐng)求中包含的目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值。
[0168]可選的,主機(jī)701還用于向存儲(chǔ)裝置發(fā)送查詢指令,查詢指令用于使存儲(chǔ)裝置根據(jù)保存的元數(shù)據(jù)確定數(shù)據(jù)處理請(qǐng)求中包含的目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值。
[0169]可選的,主機(jī)701向存儲(chǔ)裝置發(fā)送的查詢指令用于使存儲(chǔ)裝置返回目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值對(duì)應(yīng)的版本信息;主機(jī)701還用于根據(jù)存儲(chǔ)裝置返回的版本信息確定目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值。
[0170]較佳的,主機(jī)701包括:總線及連接到總線的處理器、隨機(jī)存儲(chǔ)器、只讀存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備、收發(fā)器。其中,處理器通過(guò)總線分別耦接隨機(jī)存取存儲(chǔ)器、只讀存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備以及收發(fā)器。當(dāng)需要運(yùn)行主機(jī)701時(shí),通過(guò)固化在只讀存儲(chǔ)器中的基本輸入輸出系統(tǒng)引導(dǎo)系統(tǒng)進(jìn)行啟動(dòng),引導(dǎo)主機(jī)701進(jìn)入正常運(yùn)行狀態(tài)。而在主機(jī)701進(jìn)入正常運(yùn)行狀態(tài)后,在隨機(jī)存取存儲(chǔ)器中運(yùn)行應(yīng)用程序和操作系統(tǒng)。
[0171]輸入設(shè)備用于獲取用戶輸入信息,例如觸摸屏、鍵盤(pán),等等。輸出設(shè)備用于向用戶輸出信息,例如顯示器、揚(yáng)聲器,等等。而收發(fā)器用于與存儲(chǔ)裝置702進(jìn)行通信。
[0172]前述實(shí)施例中的數(shù)據(jù)存儲(chǔ)方法中的各種數(shù)據(jù)存儲(chǔ)方式和具體實(shí)例同樣適用于本實(shí)施例的存儲(chǔ)系統(tǒng),通過(guò)前述實(shí)施例中對(duì)數(shù)據(jù)存儲(chǔ)方法的詳細(xì)描述,本領(lǐng)域技術(shù)人員可以清楚的知道本實(shí)施例中存儲(chǔ)系統(tǒng)的實(shí)施方法,所以為了說(shuō)明書(shū)的簡(jiǎn)潔,在此不再詳述。
[0173]本申請(qǐng)實(shí)施例中提供的一個(gè)或多個(gè)技術(shù)方案,至少具有如下技術(shù)效果或優(yōu)點(diǎn):
[0174]本申請(qǐng)實(shí)施例中,IP硬盤(pán)接收所述主機(jī)發(fā)送的寫(xiě)數(shù)據(jù)請(qǐng)求,所述寫(xiě)數(shù)據(jù)請(qǐng)求中包含目標(biāo)數(shù)據(jù)、所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值及所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值;判斷所述主鍵值是否保存在所述IP硬盤(pán)中;如果是,則判斷所述主鍵值對(duì)應(yīng)的版本值集合中是否包含所述版本值;當(dāng)所述版本值集合中不包含所述版本值時(shí),則將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述IP硬盤(pán)。由此可見(jiàn),在本發(fā)明實(shí)施例中,所述主鍵值可以對(duì)應(yīng)多個(gè)版本值,在執(zhí)行寫(xiě)數(shù)據(jù)請(qǐng)求時(shí),如果目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值對(duì)應(yīng)的版本值集合中不包含目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值,則在保留該主鍵值原對(duì)應(yīng)版本的數(shù)據(jù)的情況下,存儲(chǔ)所述目標(biāo)數(shù)據(jù),使得該主鍵值能夠?qū)?yīng)多個(gè)版本的數(shù)據(jù),便于查看歷史版本的數(shù)據(jù)以及執(zhí)行數(shù)據(jù)回退。
[0175]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0176]本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
[0177]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0178]盡管已描述了本申請(qǐng)的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請(qǐng)范圍的所有變更和修改。
[0179]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本申請(qǐng)進(jìn)行各種改動(dòng)和變型而不脫離本申請(qǐng)的精神和范圍。這樣,倘若本申請(qǐng)的這些修改和變型屬于本申請(qǐng)權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請(qǐng)也意圖包含這些改動(dòng)和變型在內(nèi)。
【權(quán)利要求】
1.一種數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述方法應(yīng)用于存儲(chǔ)系統(tǒng)中,所述存儲(chǔ)系統(tǒng)包括主機(jī)和網(wǎng)絡(luò)互聯(lián)協(xié)議IP硬盤(pán),所述方法包括: 所述IP硬盤(pán)接收所述主機(jī)發(fā)送的寫(xiě)數(shù)據(jù)請(qǐng)求,所述寫(xiě)數(shù)據(jù)請(qǐng)求中包含目標(biāo)數(shù)據(jù)、所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值及所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值; 判斷所述主鍵值是否保存在所述IP硬盤(pán)中; 如果是,則判斷所述主鍵值對(duì)應(yīng)的版本值集合中是否包含所述版本值; 當(dāng)所述版本值集合中不包含所述版本值時(shí),則將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述IP硬盤(pán)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述IP硬盤(pán)之后,所述方法還包括:將所述版本值寫(xiě)入所述版本值集合中。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)所述版本值集合中包含所述版本值時(shí),獲得所述版本值對(duì)應(yīng)的位置信息,所述位置信息包括所述版本值對(duì)應(yīng)的舊數(shù)據(jù)存儲(chǔ)在所述IP硬盤(pán)中的地址; 將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述地址對(duì)應(yīng)的存儲(chǔ)空間中。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)所述版本值集合中包含所述版本值時(shí),在所述IP硬盤(pán)中確定空閑的存儲(chǔ)空間,將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述空閑的存儲(chǔ)空間中; 將所述版本值對(duì)應(yīng)的位置信息修改為所述空閑的存儲(chǔ)空間的地址。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:所述寫(xiě)數(shù)據(jù)請(qǐng)求中的所述版本值是由所述主機(jī)根據(jù)在元數(shù)據(jù)中查詢的所述主鍵值的版本信息獲得的。
6.根據(jù)權(quán)利要求3或4所述的方法,其特征在于,所述方法還包括: 所述IP硬盤(pán)接收所述主機(jī)發(fā)送的讀數(shù)據(jù)請(qǐng)求,所述讀數(shù)據(jù)請(qǐng)求中包含所述主鍵值及所述版本值; 根據(jù)所述主鍵值及所述版本值確定出所述位置信息; 讀取所述位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的所述目標(biāo)數(shù)據(jù)。
7.根據(jù)權(quán)利要求3或4所述的方法,其特征在于,所述方法還包括: 所述IP硬盤(pán)接收所述主機(jī)發(fā)送的讀數(shù)據(jù)請(qǐng)求,所述讀數(shù)據(jù)請(qǐng)求包含所述主鍵值; 確定所述主鍵值對(duì)應(yīng)的版本值集合中版本最高的版本值是所述版本值; 獲得所述版本值對(duì)應(yīng)的位置信息; 讀取所述位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的所述目標(biāo)數(shù)據(jù)。
8.根據(jù)權(quán)利要求3或4所述的方法,其特征在于,所述方法還包括: 所述IP硬盤(pán)接收所述主機(jī)發(fā)送的刪除數(shù)據(jù)請(qǐng)求,所述刪除數(shù)據(jù)請(qǐng)求包含所述主鍵值及所述版本值; 從所述主鍵值對(duì)應(yīng)的版本值集合中刪除所述版本值。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述方法還包括: 刪除所述版本值對(duì)應(yīng)的位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的所述目標(biāo)數(shù)據(jù)。
10.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述方法還包括: 判斷所述主鍵值對(duì)應(yīng)的版本值集合中是否還存在除所述版本值之外的其它版本值; 若不存在,則從所述IP硬盤(pán)中刪除所述主鍵值。
11.一種存儲(chǔ)裝置,其特征在于,包括: 存儲(chǔ)單元,用于利用非易失性存儲(chǔ)介質(zhì)來(lái)存儲(chǔ)數(shù)據(jù); 接口,用于利用網(wǎng)絡(luò)互聯(lián)協(xié)議接收寫(xiě)數(shù)據(jù)請(qǐng)求,所述寫(xiě)數(shù)據(jù)請(qǐng)求中包含目標(biāo)數(shù)據(jù)、所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值及所述目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值; 控制器,用于判斷所述主鍵值是否保存在所述IP硬盤(pán)中;如果是,則判斷所述主鍵值對(duì)應(yīng)的版本值集合中是否包含所述版本值;當(dāng)所述版本值集合中不包含所述版本值時(shí),將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述IP硬盤(pán)。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述控制器還用于:在將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述存儲(chǔ)單元之后,將所述版本值寫(xiě)入所述版本值集合中。
13.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述控制器還用于:當(dāng)所述版本值集合中包含所述版本值時(shí),獲得所述版本值對(duì)應(yīng)的位置信息,所述位置信息包括所述版本值對(duì)應(yīng)的舊數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)單元中的地址;并將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述地址對(duì)應(yīng)的存儲(chǔ)空間中。
14.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述控制器還用于:當(dāng)所述版本值集合中包含所述版本值時(shí),在所述存儲(chǔ)單元中確定空閑的存儲(chǔ)空間,將所述目標(biāo)數(shù)據(jù)寫(xiě)入所述空閑的存儲(chǔ)空間中;并將所述版本值對(duì)應(yīng)的位置信息修改為所述空閑的存儲(chǔ)空間的地址。
15.根據(jù)權(quán)利要求13或14所述的裝置,其特征在于,所述接口還用于:接收讀數(shù)據(jù)請(qǐng)求,所述讀數(shù)據(jù)請(qǐng)求中包含所述主鍵值及所述版本值; 所述控制器還用于:根據(jù)所述主鍵值及所述版本值確定出所述位置信息;讀取所述位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的所述目標(biāo)數(shù)據(jù)。
16.根據(jù)權(quán)利要求13或14所述的裝置,其特征在于,所述接口還用于:接收讀數(shù)據(jù)請(qǐng)求,所述讀數(shù)據(jù)請(qǐng)求包含所述主鍵值; 所述控制器還用于:確定所述主鍵值對(duì)應(yīng)的版本值集合中版本最高的版本值是所述版本值;獲得所述版本值對(duì)應(yīng)的位置信息;讀取所述位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的所述目標(biāo)數(shù)據(jù)。
17.根據(jù)權(quán)利要求13或14所述的裝置,其特征在于,所述接口還用于:接收刪除數(shù)據(jù)請(qǐng)求,所述刪除數(shù)據(jù)請(qǐng)求包含所述主鍵值及所述版本值; 所述控制器還用于:從所述主鍵值對(duì)應(yīng)的版本值集合中刪除所述版本值。
18.根據(jù)權(quán)利要求17所述的裝置,其特征在于,所述控制器還用于:刪除所述版本值對(duì)應(yīng)的位置信息對(duì)應(yīng)的存儲(chǔ)空間中存儲(chǔ)的所述目標(biāo)數(shù)據(jù)。
19.根據(jù)權(quán)利要求17所述的裝置,其特征在于,所述控制器還用于:判斷所述主鍵值對(duì)應(yīng)的版本值集合中是否還存在除所述版本值之外的其它版本值;若不存在,則從所述IP硬盤(pán)中刪除所述主鍵值。
20.一種存儲(chǔ)系統(tǒng),其特征在于,包括: 根據(jù)權(quán)利要求11-19中任一權(quán)利要求所述的存儲(chǔ)裝置; 主機(jī),用于根據(jù)用戶輸入信息生成數(shù)據(jù)處理請(qǐng)求,并向所述存儲(chǔ)裝置發(fā)送所述數(shù)據(jù)處理請(qǐng)求,所述數(shù)據(jù)處理請(qǐng)求包括寫(xiě)數(shù)據(jù)請(qǐng)求、讀數(shù)據(jù)請(qǐng)求、刪除數(shù)據(jù)請(qǐng)求。
21.根據(jù)權(quán)利要求20所述的系統(tǒng),其特征在于,所述主機(jī)具體用于根據(jù)所述主機(jī)中存儲(chǔ)的元數(shù)據(jù)確定所述數(shù)據(jù)處理請(qǐng)求中包含的目標(biāo)數(shù)據(jù)對(duì)應(yīng)的主鍵值。
22.根據(jù)權(quán)利要求21所述的系統(tǒng),其特征在于,所述主機(jī)還用于根據(jù)所述主機(jī)中存儲(chǔ)的元數(shù)據(jù)確定所述數(shù)據(jù)處理請(qǐng)求中包含的目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值。
23.根據(jù)權(quán)利要求20所述的系統(tǒng),其特征在于,所述主機(jī)還用于向所述存儲(chǔ)裝置發(fā)送查詢指令,所述查詢指令用于使所述存儲(chǔ)裝置根據(jù)保存的元數(shù)據(jù)確定所述數(shù)據(jù)處理請(qǐng)求中包含的目標(biāo)數(shù)據(jù)對(duì)應(yīng)的版本值。
【文檔編號(hào)】G06F3/06GK104238963SQ201410526359
【公開(kāi)日】2014年12月24日 申請(qǐng)日期:2014年9月30日 優(yōu)先權(quán)日:2014年9月30日
【發(fā)明者】張雷, 肖壘 申請(qǐng)人:華為技術(shù)有限公司