亚洲综合日韩精品欧美综合区,日韩国产在线一区,久久久精品一二三区,午夜精品久久久久久中宇69,国产做爰一区二区三区视频,aa天堂,三级在线视频

一種結(jié)構(gòu)化數(shù)據(jù)存儲方法、電子設(shè)備和計算機程序產(chǎn)品與流程

文檔序號:42295512發(fā)布日期:2025-06-27 18:32閱讀:5來源:國知局

本申請涉及數(shù)據(jù)存儲,尤其涉及一種結(jié)構(gòu)化數(shù)據(jù)存儲方法、電子設(shè)備和計算機程序產(chǎn)品。


背景技術(shù):

1、目前,業(yè)務(wù)系統(tǒng)產(chǎn)生的結(jié)構(gòu)化數(shù)據(jù)一般使用mysql等各種關(guān)系型數(shù)據(jù)庫進行存儲。然而,結(jié)構(gòu)化數(shù)據(jù)在進入數(shù)據(jù)庫系統(tǒng)的引擎管理空間時,通常需要被轉(zhuǎn)換為引擎內(nèi)部的數(shù)據(jù)結(jié)構(gòu),并進行序列化后再完成持久化,導(dǎo)致較高的時間延遲和額外的系統(tǒng)性能開銷。


技術(shù)實現(xiàn)思路

1、有鑒于此,本申請實施例提供了一種結(jié)構(gòu)化數(shù)據(jù)存儲方法、電子設(shè)備和計算機程序產(chǎn)品,能夠降低數(shù)據(jù)持久化的時間延遲和系統(tǒng)性能開銷。

2、本申請實施例的第一方面提供了一種結(jié)構(gòu)化數(shù)據(jù)存儲方法,包括:

3、獲取待存儲的結(jié)構(gòu)化數(shù)據(jù);

4、按照定義的數(shù)據(jù)結(jié)構(gòu),將結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為第一虛擬內(nèi)存空間中描述的多個實體;其中,數(shù)據(jù)結(jié)構(gòu)包括固定長度字段和非固定長度字段,每個實體的內(nèi)容包括固定長度字段的數(shù)據(jù)和非固定長度字段的索引信息,索引信息為對應(yīng)的非固定長度字段的數(shù)據(jù)的存儲位置相對于第二虛擬內(nèi)存空間的初始地址的偏移;第一虛擬內(nèi)存空間為通過內(nèi)存映射方式構(gòu)建的,磁盤中的第一文件在內(nèi)存中對應(yīng)的虛擬空間;第二虛擬內(nèi)存空間為通過內(nèi)存映射方式構(gòu)建的,磁盤中的第二文件在內(nèi)存中對應(yīng)的虛擬空間;

5、將多個實體的內(nèi)容寫入第一文件,以及將多個實體的非固定長度字段的數(shù)據(jù)寫入第二文件。

6、本申請實施例的技術(shù)方案在磁盤中創(chuàng)建第一文件和第二文件,且通過內(nèi)存映射方式分別構(gòu)建第一文件在內(nèi)存中對應(yīng)的第一虛擬內(nèi)存空間以及第二文件在內(nèi)存中對應(yīng)的第二虛擬內(nèi)存空間;在獲取待存儲的結(jié)構(gòu)化數(shù)據(jù)后,按照定義的數(shù)據(jù)結(jié)構(gòu),將結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為第一虛擬內(nèi)存空間中描述的多個實體,該數(shù)據(jù)結(jié)構(gòu)包括固定長度字段和非固定長度字段,每個實體的內(nèi)容包括固定長度字段的數(shù)據(jù)和非固定長度字段的索引信息,索引信息為對應(yīng)的非固定長度字段的數(shù)據(jù)的存儲位置相對于第二虛擬內(nèi)存空間的初始地址的偏移;然后,將多個實體的內(nèi)容寫入第一文件,以及將多個實體的非固定長度字段的數(shù)據(jù)寫入第二文件。上述過程通過內(nèi)存映射方式獲得磁盤文件對應(yīng)的虛擬內(nèi)存空間,利用虛擬內(nèi)存空間的虛擬地址即可直接映射獲取磁盤文件中存儲的結(jié)構(gòu)化數(shù)據(jù),這樣能夠脫離數(shù)據(jù)庫系統(tǒng)內(nèi)部機制的限制,在一定程度上降低數(shù)據(jù)持久化的時間延遲和系統(tǒng)性能開銷。

7、在本申請實施例的一種實現(xiàn)方式中,第二文件包括多個存儲塊;將多個實體的非固定長度字段的數(shù)據(jù)寫入第二文件,包括:

8、獲取第二文件對應(yīng)的位圖文件;其中,位圖文件的每個比特位分別用于表示第二文件的每個存儲塊的占用情況;

9、根據(jù)位圖文件,從多個存儲塊中確定可寫入數(shù)據(jù)的目標(biāo)存儲塊,并將多個實體的非固定長度字段的數(shù)據(jù)寫入目標(biāo)存儲塊。

10、在本申請實施例的一種實現(xiàn)方式中,獲取第二文件對應(yīng)的位圖文件,包括:

11、根據(jù)第三虛擬內(nèi)存空間中的虛擬地址,從磁盤中獲取位圖文件;其中,第三虛擬內(nèi)存空間為通過內(nèi)存映射方式構(gòu)建的,位圖文件在內(nèi)存中對應(yīng)的虛擬空間。

12、在本申請實施例的一種實現(xiàn)方式中,該方法還包括:

13、從第二文件的各個存儲塊中確定待整理存儲塊;

14、從無效字符數(shù)組包含的各個元素對象中確定與待整理存儲塊對應(yīng)的目標(biāo)元素對象;其中,各個元素對象與第二文件的各個存儲塊一一對應(yīng),每個元素對象記錄對應(yīng)的存儲塊中已寫入的所有數(shù)據(jù)的無效字符數(shù)量;

15、若目標(biāo)元素對象記錄的無效字符數(shù)量超過預(yù)設(shè)閾值,則對待整理存儲塊執(zhí)行數(shù)據(jù)整理操作。

16、在本申請實施例的一種實現(xiàn)方式中,該方法還包括:

17、當(dāng)?shù)诙募娜我獯鎯K被寫入數(shù)據(jù)時,在寫入的數(shù)據(jù)前方添加第一字節(jié)符;

18、當(dāng)該任意存儲塊中已寫入的任意數(shù)據(jù)發(fā)生長度變化時,將該任意數(shù)據(jù)前方的第一字節(jié)符修改為第二字節(jié)符,并更新該任意存儲塊對應(yīng)的元素對象記錄的無效字符數(shù)量。

19、在本申請實施例的一種實現(xiàn)方式中,每個元素對象還記錄對應(yīng)的存儲塊中已寫入的每個非固定長度字段的數(shù)據(jù)各自對應(yīng)的實體標(biāo)識和字段標(biāo)識;對待整理存儲塊執(zhí)行數(shù)據(jù)整理操作,包括:

20、將待整理存儲塊中前方為第一字節(jié)符的數(shù)據(jù)確定為有效數(shù)據(jù),并將有效數(shù)據(jù)寫入一個新存儲塊;

21、根據(jù)有效數(shù)據(jù)對應(yīng)的實體標(biāo)識和字段標(biāo)識,更新該新存儲塊對應(yīng)的元素對象。

22、在本申請實施例的一種實現(xiàn)方式中,在對待整理存儲塊執(zhí)行數(shù)據(jù)整理操作之后,還包括:

23、從第二文件的各個存儲塊中確定免整理存儲塊;

24、將免整理存儲塊移動至第二文件中待整理存儲塊的初始位置;

25、根據(jù)免整理存儲塊對應(yīng)的元素對象記錄的實體標(biāo)識,確定第一文件中的待更新實體;

26、從第一文件中讀取待更新實體的內(nèi)容,并根據(jù)免整理存儲塊對應(yīng)的元素對象記錄的字段標(biāo)識和初始位置,對待更新實體的內(nèi)容中的非固定長度字段的索引信息進行更新。

27、在本申請實施例的一種實現(xiàn)方式中,在按照定義的數(shù)據(jù)結(jié)構(gòu),將結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為第一虛擬內(nèi)存空間中描述的多個實體之后,還包括:

28、將每個實體作為一個節(jié)點,在第一虛擬內(nèi)存空間中基于大頂堆算法或小頂堆算法實現(xiàn)多個實體的排序;其中,節(jié)點的數(shù)值為對應(yīng)實體的指定字段的數(shù)值。

29、本申請實施例的第二方面提供了一種結(jié)構(gòu)化數(shù)據(jù)存儲裝置,包括:

30、數(shù)據(jù)獲取模塊,用于獲取待存儲的結(jié)構(gòu)化數(shù)據(jù);

31、數(shù)據(jù)轉(zhuǎn)換模塊,用于按照定義的數(shù)據(jù)結(jié)構(gòu),將結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為第一虛擬內(nèi)存空間中描述的多個實體;其中,數(shù)據(jù)結(jié)構(gòu)包括固定長度字段和非固定長度字段,每個實體的內(nèi)容包括固定長度字段的數(shù)據(jù)和非固定長度字段的索引信息,索引信息為對應(yīng)的非固定長度字段的數(shù)據(jù)的存儲位置相對于第二虛擬內(nèi)存空間的初始地址的偏移;第一虛擬內(nèi)存空間為通過內(nèi)存映射方式構(gòu)建的,磁盤中的第一文件在內(nèi)存中對應(yīng)的虛擬空間;第二虛擬內(nèi)存空間為通過內(nèi)存映射方式構(gòu)建的,磁盤中的第二文件在內(nèi)存中對應(yīng)的虛擬空間;

32、數(shù)據(jù)寫入模塊,用于將多個實體的內(nèi)容寫入第一文件,以及將多個實體的非固定長度字段的數(shù)據(jù)寫入第二文件。

33、本申請實施例的第三方面提供了一種電子設(shè)備,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如本申請實施例的第一方面提供的結(jié)構(gòu)化數(shù)據(jù)存儲方法。

34、本申請實施例的第四方面提供了一種計算機程序產(chǎn)品,當(dāng)計算機程序產(chǎn)品在電子設(shè)備上運行時,使得電子設(shè)備執(zhí)行如本申請實施例的第一方面提供的結(jié)構(gòu)化數(shù)據(jù)存儲方法。

35、本申請實施例的第五方面提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如本申請實施例的第一方面提供的結(jié)構(gòu)化數(shù)據(jù)存儲方法。

36、可以理解的是,上述第二方面至第五方面的有益效果可以參見上述第一方面中的相關(guān)描述,在此不再贅述。



技術(shù)特征:

1.一種結(jié)構(gòu)化數(shù)據(jù)存儲方法,其特征在于,包括:

2.如權(quán)利要求1所述的方法,其特征在于,所述第二文件包括多個存儲塊;所述將所述多個實體的非固定長度字段的數(shù)據(jù)寫入所述第二文件,包括:

3.如權(quán)利要求2所述的方法,其特征在于,所述獲取所述第二文件對應(yīng)的位圖文件,包括:

4.如權(quán)利要求2所述的方法,其特征在于,還包括:

5.如權(quán)利要求4所述的方法,其特征在于,還包括:

6.如權(quán)利要求5所述的方法,其特征在于,每個所述元素對象還記錄對應(yīng)的存儲塊中已寫入的每個非固定長度字段的數(shù)據(jù)各自對應(yīng)的實體標(biāo)識和字段標(biāo)識;所述對所述待整理存儲塊執(zhí)行數(shù)據(jù)整理操作,包括:

7.如權(quán)利要求6所述的方法,其特征在于,在對所述待整理存儲塊執(zhí)行數(shù)據(jù)整理操作之后,還包括:

8.如權(quán)利要求1至7任一項所述的方法,其特征在于,在按照定義的數(shù)據(jù)結(jié)構(gòu),將所述結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為第一虛擬內(nèi)存空間中描述的多個實體之后,還包括:

9.一種電子設(shè)備,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運行的計算機程序,其特征在于,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如權(quán)利要求1至8任一項所述的結(jié)構(gòu)化數(shù)據(jù)存儲方法。

10.一種計算機程序產(chǎn)品,其特征在于,當(dāng)所述計算機程序產(chǎn)品在電子設(shè)備上運行時,使得電子設(shè)備執(zhí)行如權(quán)利要求1至8任一項所述的結(jié)構(gòu)化數(shù)據(jù)存儲方法。


技術(shù)總結(jié)
本申請涉及數(shù)據(jù)存儲技術(shù)領(lǐng)域,提出一種結(jié)構(gòu)化數(shù)據(jù)存儲方法、電子設(shè)備和計算機程序產(chǎn)品。該方法按照定義的數(shù)據(jù)結(jié)構(gòu),將待存儲的結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為第一虛擬內(nèi)存空間中描述的多個實體,該數(shù)據(jù)結(jié)構(gòu)包括固定長度字段和非固定長度字段,每個實體的內(nèi)容包括固定長度字段的數(shù)據(jù)和非固定長度字段的索引信息,索引信息為對應(yīng)的非固定長度字段的數(shù)據(jù)的存儲位置相對于第二虛擬內(nèi)存空間的初始地址的偏移;第一虛擬內(nèi)存空間為第一文件在內(nèi)存中對應(yīng)的虛擬空間;第二虛擬內(nèi)存空間為第二文件在內(nèi)存中對應(yīng)的虛擬空間;將多個實體的內(nèi)容寫入第一文件,以及將多個實體的非固定長度字段的數(shù)據(jù)寫入第二文件。采用該方法能夠降低數(shù)據(jù)持久化的時間延遲和系統(tǒng)性能開銷。

技術(shù)研發(fā)人員:胡麥芳,邱煒偉,郭威,黃方蕾,尚璇
受保護的技術(shù)使用者:杭州趣鏈科技有限公司
技術(shù)研發(fā)日:
技術(shù)公布日:2025/6/26
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1