本技術(shù)涉及序列數(shù)據(jù)處理,特別是涉及序列數(shù)據(jù)的處理方法、存儲(chǔ)設(shè)備及存儲(chǔ)系統(tǒng)。
背景技術(shù):
1、存儲(chǔ)設(shè)備被廣泛應(yīng)用,用于存儲(chǔ)各種數(shù)據(jù)。但是相關(guān)的存儲(chǔ)設(shè)備通常是基于塊存儲(chǔ)接口的存儲(chǔ)設(shè)備,如基于nand介質(zhì)的各種存儲(chǔ)設(shè)備等。因存儲(chǔ)設(shè)備基于塊存儲(chǔ),則數(shù)據(jù)在存儲(chǔ)時(shí),需要以塊邏輯進(jìn)行劃分,并存儲(chǔ)至相應(yīng)的存儲(chǔ)單元。
2、因此,在存儲(chǔ)序列數(shù)據(jù)時(shí),需要將序列數(shù)據(jù)以專有的序列數(shù)據(jù)格式編碼到連續(xù)的序列文件中,序列文件在文件系統(tǒng)中按照塊的邏輯拆分、映射并存儲(chǔ)到塊存儲(chǔ)器的塊地址上;在讀取時(shí),獲取對(duì)應(yīng)塊中的數(shù)據(jù),然后將這些數(shù)據(jù)重組得到序列文件,對(duì)序列文件進(jìn)行解碼,得到序列數(shù)據(jù)。這樣讀寫(xiě)序列數(shù)據(jù)的過(guò)程繁瑣,在存儲(chǔ)射中保存的序列數(shù)據(jù)也會(huì)丟失相應(yīng)的序列信息,無(wú)法高效地對(duì)序列數(shù)據(jù)的存儲(chǔ)進(jìn)行組織和管理,降低了存儲(chǔ)效率和性能。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供了序列數(shù)據(jù)的處理方法、存儲(chǔ)設(shè)備及存儲(chǔ)系統(tǒng),能夠在主機(jī)端大幅度簡(jiǎn)化主機(jī)端的軟件棧,降低主機(jī)端的存儲(chǔ)訪問(wèn)對(duì)主機(jī)端處理器的占用,提升實(shí)際應(yīng)用中的存儲(chǔ)效率和性能,提升存儲(chǔ)器的使用壽命。
2、第一方面,本技術(shù)提供一種序列數(shù)據(jù)的處理方法,應(yīng)用于存儲(chǔ)設(shè)備,存儲(chǔ)設(shè)備以序列數(shù)據(jù)流的形式進(jìn)行數(shù)據(jù)處理操作,方法包括:存儲(chǔ)設(shè)備接收主機(jī)端發(fā)送的序列數(shù)據(jù);存儲(chǔ)設(shè)備將序列數(shù)據(jù)以序列數(shù)據(jù)流的形式存儲(chǔ),并設(shè)置對(duì)應(yīng)的序列數(shù)據(jù)索引;存儲(chǔ)設(shè)備接收主機(jī)端發(fā)送對(duì)序列數(shù)據(jù)的數(shù)據(jù)操作指令,基于序列數(shù)據(jù)索引對(duì)相應(yīng)的序列數(shù)據(jù)進(jìn)行對(duì)應(yīng)處理。
3、其中,存儲(chǔ)設(shè)備包括至少一個(gè)序列容器,每個(gè)序列容器存儲(chǔ)一種或者多種序列數(shù)據(jù),每個(gè)序列容器有唯一的容器id;序列容器在創(chuàng)建時(shí)和/或創(chuàng)建后設(shè)置序列容器的屬性;其中,序列容器的屬性存儲(chǔ)所存儲(chǔ)的序列數(shù)據(jù)的第一描述信息,第一描述信息用于使主機(jī)端通過(guò)第一描述信息確定訪問(wèn)和使用相關(guān)的序列數(shù)據(jù)的方式。
4、其中,響應(yīng)于存儲(chǔ)設(shè)備中刪除序列容器,刪除所有存儲(chǔ)在序列容器內(nèi)所有的序列數(shù)據(jù);在刪除序列容器時(shí),響應(yīng)于存儲(chǔ)設(shè)備設(shè)置為數(shù)據(jù)保護(hù)模式,不允許刪除序列容器。
5、其中,每一序列容器中存在至少一個(gè)序列數(shù)據(jù)流,每個(gè)序列數(shù)據(jù)流中保存同一種類的序列數(shù)據(jù),有唯一的序列數(shù)據(jù)流id;存儲(chǔ)設(shè)備響應(yīng)于序列數(shù)據(jù)流刪除指令,刪除與序列數(shù)據(jù)流刪除指令對(duì)應(yīng)的序列數(shù)據(jù)流上所有的序列數(shù)據(jù),其中,序列數(shù)據(jù)流可設(shè)置為無(wú)法刪除;序列數(shù)據(jù)流在創(chuàng)建后設(shè)置序列數(shù)據(jù)流的屬性;序列數(shù)據(jù)流的屬性包含存儲(chǔ)在序列數(shù)據(jù)流上數(shù)據(jù)的第二描述信息。
6、其中,序列容器具有唯一的序列空間,序列空間有對(duì)應(yīng)的序列id,序列id用于描述序列容器中的序列數(shù)據(jù)流中的序列數(shù)據(jù)在序列空間中的位置;序列數(shù)據(jù)流中序列數(shù)據(jù)的新舊關(guān)系由序列id的大小確定;序列數(shù)據(jù)流的序列數(shù)據(jù)流id和序列id構(gòu)成序列數(shù)據(jù)索引,在序列容器中序列數(shù)據(jù)索引對(duì)應(yīng)唯一的序列數(shù)據(jù),其它序列數(shù)據(jù)只能替換原有的序列數(shù)據(jù)或者添加到原有的序列數(shù)據(jù)之后。
7、其中,序列容器支持循環(huán)覆蓋功能,循環(huán)覆蓋功能設(shè)置有保留序列id長(zhǎng)度;在循環(huán)覆蓋功能開(kāi)啟的情況下,響應(yīng)于序列容器中寫(xiě)入新的序列數(shù)據(jù),刪除在新的序列id和保留序列id長(zhǎng)度構(gòu)成的區(qū)間之外的序列數(shù)據(jù)。
8、其中,用序列數(shù)據(jù)索引集合標(biāo)識(shí)多個(gè)序列數(shù)據(jù)索引,在序列數(shù)據(jù)指令中使用,同時(shí)對(duì)多個(gè)序列數(shù)據(jù)進(jìn)行操作;序列數(shù)據(jù)索引集合是多個(gè)序列數(shù)據(jù)索引的組合,或者序列數(shù)據(jù)索引集合是多個(gè)序列數(shù)據(jù)流id和序列id的組合;或者,序列數(shù)據(jù)索引集合是序列id區(qū)間和至少一個(gè)序列數(shù)據(jù)流id的組合,用于標(biāo)識(shí)至少一個(gè)序列數(shù)據(jù)流在序列id區(qū)間內(nèi)的所有序列數(shù)據(jù);其中,序列id區(qū)間用于表示位于區(qū)間內(nèi)所有的序列id的集合。
9、其中,響應(yīng)于序列數(shù)據(jù)刪除指令,刪除數(shù)據(jù)刪除指令對(duì)應(yīng)的目標(biāo)序列容器中序列數(shù)據(jù)索引集合所對(duì)應(yīng)的序列數(shù)據(jù)。
10、其中,響應(yīng)于序列數(shù)據(jù)壓縮指令,壓縮序列數(shù)據(jù)壓縮指令中的數(shù)據(jù)索引集合所對(duì)應(yīng)的序列數(shù)據(jù),使用壓縮后的序列數(shù)據(jù)取代原始的序列數(shù)據(jù);響應(yīng)于序列數(shù)據(jù)流設(shè)置為壓縮模式,對(duì)寫(xiě)入序列數(shù)據(jù)流的序列數(shù)據(jù)使用給定的壓縮算法進(jìn)行壓縮;其中,壓縮后的序列數(shù)據(jù)在讀取或者計(jì)算使用前,使用給定的解壓縮算法進(jìn)行解壓,得到壓縮前的序列數(shù)據(jù)。
11、其中,存儲(chǔ)設(shè)備響應(yīng)于序列數(shù)據(jù)合并指令,對(duì)序列數(shù)據(jù)合并指令對(duì)應(yīng)的序列數(shù)據(jù)流上的序列數(shù)據(jù)進(jìn)行合并操作。
12、其中,響應(yīng)于數(shù)據(jù)保護(hù)指令,將數(shù)據(jù)保護(hù)指令中的數(shù)據(jù)索引集合對(duì)應(yīng)的序列數(shù)據(jù)開(kāi)啟數(shù)據(jù)保護(hù),數(shù)據(jù)索引集合所對(duì)應(yīng)的序列數(shù)據(jù)以及對(duì)應(yīng)的序列數(shù)據(jù)索引無(wú)法被刪除或更改;響應(yīng)于序列容器和/或的序列數(shù)據(jù)流設(shè)置為數(shù)據(jù)保護(hù)選項(xiàng),數(shù)據(jù)保護(hù)選項(xiàng)中對(duì)應(yīng)的序列數(shù)據(jù)流上的所有序列數(shù)據(jù)以及對(duì)應(yīng)的序列數(shù)據(jù)索引無(wú)法被刪除或者更改。
13、其中,響應(yīng)于序列容器或者序列數(shù)據(jù)流的數(shù)據(jù)保護(hù)功能開(kāi)啟,不允許對(duì)受保護(hù)的數(shù)據(jù)流中已經(jīng)寫(xiě)入的序列數(shù)據(jù)進(jìn)行刪除和/或變更;和/或,響應(yīng)于序列容器或者序列數(shù)據(jù)流的數(shù)據(jù)保護(hù)功能開(kāi)啟,受保護(hù)的序列數(shù)據(jù)流中僅允許寫(xiě)入序列id比序列數(shù)據(jù)流中最新的序列id更新的序列數(shù)據(jù);和/或,響應(yīng)于序列容器或者序列數(shù)據(jù)流的數(shù)據(jù)保護(hù)功能開(kāi)啟,序列容器中所有的序列數(shù)據(jù)流上僅允許寫(xiě)入序列id位于序列id保護(hù)區(qū)間內(nèi)的序列數(shù)據(jù);其中,序列id保護(hù)區(qū)間是由序列容器中最新的序列id和序列容器數(shù)據(jù)保護(hù)功能中的序列id保護(hù)區(qū)間的區(qū)間長(zhǎng)度確定。
14、其中,序列數(shù)據(jù)流的數(shù)據(jù)保護(hù)功能開(kāi)啟的情況下,響應(yīng)于開(kāi)啟序列數(shù)據(jù)流保護(hù)功能,在序列數(shù)據(jù)標(biāo)簽的簽名字段中增加對(duì)應(yīng)序列數(shù)據(jù)的序列簽名,用以保護(hù)對(duì)應(yīng)的數(shù)據(jù)流的數(shù)據(jù)完整性。
15、其中,每一個(gè)開(kāi)啟數(shù)據(jù)保護(hù)功能的序列容器都有一個(gè)序列簽名私鑰,序列簽名私鑰無(wú)法被外部獲取,序列簽名私鑰對(duì)應(yīng)的序列簽名公鑰保存在序列容器的屬性中,用于驗(yàn)證受保護(hù)序列數(shù)據(jù)流的數(shù)據(jù)完整性;其中,序列容器的屬性中包含序列簽名公鑰、相關(guān)信息,以及序列存儲(chǔ)器安全私鑰對(duì)序列簽名公鑰和相關(guān)信息的簽名;響應(yīng)于第一驗(yàn)證指令,利用序列存儲(chǔ)器獲取的序列存儲(chǔ)器安全公鑰驗(yàn)證相關(guān)信息的簽名,證明序列簽名公鑰以及相關(guān)信息的完整性;響應(yīng)于第二驗(yàn)證指令,利用序列數(shù)據(jù)簽名驗(yàn)證當(dāng)前序列id、當(dāng)前序列數(shù)據(jù)、當(dāng)前序列數(shù)據(jù)標(biāo)簽、以及上一個(gè)序列數(shù)據(jù)的序列id和簽名的完整性;其中,序列數(shù)據(jù)簽名是使用序列簽名私鑰對(duì)包含序列數(shù)據(jù)流上一個(gè)序列數(shù)據(jù)的序列id和簽名、當(dāng)前序列id、當(dāng)前序列數(shù)據(jù)、當(dāng)前序列數(shù)據(jù)標(biāo)簽進(jìn)行簽名得到。
16、其中,響應(yīng)于開(kāi)啟序列數(shù)據(jù)流保護(hù)功能,對(duì)序列容器中所有受保護(hù)的序列數(shù)據(jù)流上最新序列數(shù)據(jù)的序列id以及簽名信息進(jìn)行簽名,得到容器簽名,并將容器簽名存放于序列容器的屬性中,容器簽名用于保證序列存儲(chǔ)器中所有受保護(hù)序列數(shù)據(jù)流的完整性。
17、其中,響應(yīng)于序列數(shù)據(jù)加密指令,加密存儲(chǔ)序列數(shù)據(jù)加密指令中的序列數(shù)據(jù)索引集合所對(duì)應(yīng)的序列數(shù)據(jù);響應(yīng)于序列容器開(kāi)啟序列數(shù)據(jù)加密功能或序列數(shù)據(jù)流開(kāi)啟序列數(shù)據(jù)加密功能,使用指定的序列加密秘鑰加密存儲(chǔ)對(duì)應(yīng)的序列數(shù)據(jù);其中,序列加密秘鑰通過(guò)秘鑰生成或者交換得到。
18、其中,序列數(shù)據(jù)流的配置信息的配置范圍在序列容器的配置信息的配置范圍內(nèi)。
19、其中,序列數(shù)據(jù)流的配置信息包括數(shù)據(jù)的存儲(chǔ)要求、大小、格式、標(biāo)簽、查詢方式和運(yùn)算方式至少一種。
20、其中,序列數(shù)據(jù)流上配置至少一個(gè)序列數(shù)據(jù)標(biāo)簽,配置的內(nèi)容包括標(biāo)簽的類型,長(zhǎng)短,缺省值,可以進(jìn)行的標(biāo)簽運(yùn)算中的至少一種;響應(yīng)于序列數(shù)據(jù)流上寫(xiě)入或者修改的所有序列數(shù)據(jù),且序列數(shù)據(jù)流配置了序列數(shù)據(jù)標(biāo)簽,將所配置的序列數(shù)據(jù)標(biāo)簽的數(shù)據(jù)作為序列數(shù)據(jù)索引的補(bǔ)充部分進(jìn)行存儲(chǔ);響應(yīng)于對(duì)序列數(shù)據(jù)流的操作指令,對(duì)序列數(shù)據(jù)標(biāo)簽中至少一個(gè)標(biāo)簽項(xiàng)進(jìn)行規(guī)則運(yùn)算,在規(guī)則運(yùn)算的結(jié)果符合要求時(shí),對(duì)序列數(shù)據(jù)流執(zhí)行與操作指令對(duì)應(yīng)的操作;響應(yīng)于序列數(shù)據(jù)流配置了序列數(shù)據(jù)標(biāo)簽,且操作指令需要使用序列數(shù)據(jù)索引集合,利用標(biāo)簽過(guò)濾運(yùn)算對(duì)序列數(shù)據(jù)索引集合進(jìn)行過(guò)濾和調(diào)整,得到過(guò)濾后的序列數(shù)據(jù)索引集合。
21、其中,序列容器包括至少一個(gè)序列數(shù)據(jù)流;響應(yīng)于對(duì)序列數(shù)據(jù)流的配置鎖定,序列容器中無(wú)法新增序列數(shù)據(jù)流,以及至少一個(gè)數(shù)據(jù)流的配置信息無(wú)法更改。
22、其中,序列id由序列數(shù)據(jù)在主機(jī)端的形成時(shí)刻決定。
23、其中,序列數(shù)據(jù)包含音視頻數(shù)據(jù);音視頻數(shù)據(jù)的描述信息保存到序列容器的屬性中;音視頻數(shù)據(jù)中來(lái)自同一個(gè)源和/或同一個(gè)編碼的音頻或者視頻流數(shù)據(jù)使用同一序列數(shù)據(jù)流存儲(chǔ),對(duì)應(yīng)的音頻或者視頻流信息保存到對(duì)應(yīng)的序列數(shù)據(jù)流屬性中;來(lái)自不同的源或者不同編碼的音頻或者視頻流數(shù)據(jù)使用不同的序列數(shù)據(jù)流存儲(chǔ)。
24、其中,響應(yīng)于對(duì)至少一個(gè)序列數(shù)據(jù)流的計(jì)數(shù)操作,統(tǒng)計(jì)至少一個(gè)序列數(shù)據(jù)流中給定序列數(shù)據(jù)索引表達(dá)式上的數(shù)據(jù)的數(shù)量;或者,響應(yīng)于對(duì)至少一個(gè)序列數(shù)據(jù)流的列表操作,確定至少一個(gè)序列數(shù)據(jù)流中給定索引區(qū)間內(nèi)的數(shù)據(jù)的數(shù)量、數(shù)據(jù)大小和/或標(biāo)簽。
25、其中,序列數(shù)據(jù)包含音視頻數(shù)據(jù),存儲(chǔ)設(shè)備響應(yīng)于轉(zhuǎn)碼指令,利用存儲(chǔ)設(shè)備中的編解碼電路,對(duì)轉(zhuǎn)碼指令對(duì)應(yīng)的第一編碼標(biāo)準(zhǔn)的音視頻數(shù)據(jù)進(jìn)行解碼以及編碼操作,得到第二編碼標(biāo)準(zhǔn)的音視頻數(shù)據(jù)。
26、其中,序列數(shù)據(jù)為區(qū)塊鏈數(shù)據(jù);存儲(chǔ)設(shè)備將序列數(shù)據(jù)以序列數(shù)據(jù)流的形式存儲(chǔ),并設(shè)置對(duì)應(yīng)的序列數(shù)據(jù)索引,包括:將區(qū)塊鏈數(shù)據(jù)的高度值作為序列id,將區(qū)塊鏈數(shù)據(jù)的區(qū)塊數(shù)據(jù)以數(shù)據(jù)流的形式存儲(chǔ),并設(shè)置對(duì)應(yīng)的序列數(shù)據(jù)索引。
27、其中,區(qū)塊鏈數(shù)據(jù)包括主鏈數(shù)據(jù)和分叉鏈數(shù)據(jù);將區(qū)塊鏈數(shù)據(jù)的高度值作為序列id,將區(qū)塊鏈數(shù)據(jù)的區(qū)塊數(shù)據(jù)以數(shù)據(jù)流的形式存儲(chǔ),并設(shè)置對(duì)應(yīng)的序列數(shù)據(jù)索引,包括:以主鏈數(shù)據(jù)的高度值作為序列id,利用第一數(shù)據(jù)流存儲(chǔ)主鏈數(shù)據(jù),以分叉鏈數(shù)據(jù)的高度值作為序列id,利用第二數(shù)據(jù)流存儲(chǔ)分叉鏈數(shù)據(jù)。
28、其中,區(qū)塊鏈數(shù)據(jù)包括主鏈數(shù)據(jù)和側(cè)鏈數(shù)據(jù);將區(qū)塊鏈數(shù)據(jù)的高度值作為序列id,將區(qū)塊鏈數(shù)據(jù)的區(qū)塊數(shù)據(jù)以數(shù)據(jù)流的形式存儲(chǔ),并設(shè)置對(duì)應(yīng)的序列數(shù)據(jù)索引,包括:以主鏈數(shù)據(jù)的高度值作為序列id,利用第一數(shù)據(jù)流存儲(chǔ)主鏈數(shù)據(jù),以側(cè)鏈數(shù)據(jù)的高度值作為序列id,利用第二數(shù)據(jù)流存儲(chǔ)側(cè)鏈數(shù)據(jù)。
29、第二方面,本技術(shù)提供一種存儲(chǔ)設(shè)備,該存儲(chǔ)設(shè)備包括處理器、存儲(chǔ)單元、內(nèi)存以及接口單元,所述存儲(chǔ)單元用于存儲(chǔ)計(jì)算機(jī)程序以及序列數(shù)據(jù),處理器用于執(zhí)行計(jì)算機(jī)程序以對(duì)存儲(chǔ)設(shè)備實(shí)現(xiàn)如第一方面提供的方法,接口單元和主機(jī)端的處理器對(duì)接,完成主機(jī)端和存儲(chǔ)設(shè)備的數(shù)據(jù)通信。
30、第三方面,本技術(shù)提供一種存儲(chǔ)系統(tǒng),該存儲(chǔ)系統(tǒng)包括:主機(jī)端;存儲(chǔ)設(shè)備,存儲(chǔ)設(shè)備與主機(jī)端通信連接,存儲(chǔ)設(shè)備如第二方面提供的存儲(chǔ)設(shè)備。
31、本技術(shù)的有益效果是:區(qū)別于現(xiàn)有技術(shù)的情況,本技術(shù)提供的序列數(shù)據(jù)的處理方法,將序列數(shù)據(jù)以數(shù)據(jù)流形式進(jìn)行存儲(chǔ),并設(shè)置對(duì)應(yīng)的序列數(shù)據(jù)索引,通過(guò)序列數(shù)據(jù)索引查找對(duì)應(yīng)的序列數(shù)據(jù),能夠在主機(jī)端大幅度簡(jiǎn)化主機(jī)端的軟件棧,降低主機(jī)端的存儲(chǔ)訪問(wèn)對(duì)主機(jī)端處理器的占用,提升實(shí)際應(yīng)用中的存儲(chǔ)效率和性能,提升存儲(chǔ)器的使用壽命;在存儲(chǔ)設(shè)備側(cè)可以更有效地組織各種存儲(chǔ)介質(zhì),減少不必要的垃圾回收,降低存儲(chǔ)介質(zhì)的磨損,提升存儲(chǔ)設(shè)備的使用壽命,降低對(duì)超額配的空間和動(dòng)態(tài)隨機(jī)存取內(nèi)存的使用,降低存儲(chǔ)設(shè)備的成本。