本申請涉及數(shù)據(jù)存儲,尤其涉及一種針對內(nèi)存受限的數(shù)據(jù)處理方法及相關(guān)裝置。
背景技術(shù):
1、針對大量數(shù)據(jù)進(jìn)行計(jì)算時,若機(jī)器資源充足,則可以通過多臺機(jī)器構(gòu)建的分布式存儲和分布式計(jì)算集群來完成計(jì)算,而只有單臺機(jī)器時,在計(jì)算過程中則會出現(xiàn)內(nèi)存不足的問題。目前,為解決這個問題,一般是通過頁面置換算法、內(nèi)存壓縮算法、交換空間機(jī)制對內(nèi)存進(jìn)行壓縮和交換,從而在一定程度上節(jié)省和擴(kuò)大內(nèi)存空間。
2、但是,目前方案中的頁面置換算法并沒有直接優(yōu)化內(nèi)存數(shù)據(jù)的計(jì)算,而是基于頁面的訪問頻率或最近使用情況做出決策,可能會發(fā)生頻繁的頁面置換,從而導(dǎo)致大量的磁盤的讀寫操作,從而降低系統(tǒng)的整體性能。其中,內(nèi)存壓縮算法也只有被選定壓縮的數(shù)據(jù)才能享受到壓縮帶來的內(nèi)存空間節(jié)省,無法滿足全部內(nèi)存數(shù)據(jù)。另外,磁盤的讀寫操作將會消耗大量的計(jì)算資源,從而導(dǎo)致計(jì)算資源集中在讀寫操作上,降低了機(jī)器的處理能力。
3、因此,如何對內(nèi)存數(shù)據(jù)進(jìn)行存儲優(yōu)化,并改進(jìn)內(nèi)存計(jì)算和文件交互機(jī)制,以優(yōu)化內(nèi)存利用率并提高大量數(shù)據(jù)計(jì)算的處理性能,成為待解決的問題。
技術(shù)實(shí)現(xiàn)思路
1、本申請實(shí)施例提供一種針對內(nèi)存受限的數(shù)據(jù)處理方法及相關(guān)裝置,實(shí)現(xiàn)了對內(nèi)存數(shù)據(jù)的存儲優(yōu)化,并對內(nèi)存計(jì)算和文件交互機(jī)制進(jìn)行改進(jìn),以優(yōu)化內(nèi)存利用率并提高大量數(shù)據(jù)計(jì)算的處理性能。
2、第一方面,本申請實(shí)施例提供了一種針對內(nèi)存受限的數(shù)據(jù)處理方法,應(yīng)用于數(shù)據(jù)解析轉(zhuǎn)換機(jī),目標(biāo)設(shè)備包括所述數(shù)據(jù)解析轉(zhuǎn)換機(jī)、目標(biāo)應(yīng)用程序、目標(biāo)內(nèi)存和目標(biāo)磁盤,所述方法包括:
3、獲取所述目標(biāo)應(yīng)用程序?qū)?yīng)的第一對象;所述第一對象存儲在所述目標(biāo)內(nèi)存;所述第一對象包括第一對象數(shù)據(jù)和第一對象定義;
4、確定所述第一對象定義對應(yīng)的第一引用地址,并根據(jù)預(yù)設(shè)的編碼函數(shù)對所述第一引用地址進(jìn)行壓縮,得到第二引用地址;所述第二引用地址用于指向所述第一對象定義;
5、根據(jù)預(yù)設(shè)存儲結(jié)構(gòu)將所述第一對象數(shù)據(jù)按照預(yù)設(shè)存儲規(guī)則進(jìn)行填充,得到參考第一對象數(shù)據(jù),以節(jié)省所述目標(biāo)內(nèi)存的數(shù)據(jù)空間;
6、在所述目標(biāo)磁盤中創(chuàng)建自恢復(fù)日志文件,并根據(jù)所述自恢復(fù)日志文件確定自恢復(fù)日志文件寫操作機(jī)制;所述自恢復(fù)日志文件寫操作機(jī)制用于存儲數(shù)據(jù)處理操作,以確保數(shù)據(jù)在系統(tǒng)崩潰或故障后能夠恢復(fù);
7、獲取所述參考第一對象數(shù)據(jù)關(guān)聯(lián)的第一數(shù)據(jù)處理指令;
8、根據(jù)所述自恢復(fù)日志文件寫操作機(jī)制對所述參考第一對象數(shù)據(jù)執(zhí)行所述第一數(shù)據(jù)處理指令,得到目標(biāo)第一對象數(shù)據(jù),以提高數(shù)據(jù)處理效率。
9、第二方面,本申請實(shí)施例提供了一種針對內(nèi)存受限的數(shù)據(jù)處理裝置,應(yīng)用于數(shù)據(jù)解析轉(zhuǎn)換機(jī),目標(biāo)設(shè)備包括所述數(shù)據(jù)解析轉(zhuǎn)換機(jī)、目標(biāo)應(yīng)用程序、目標(biāo)內(nèi)存和目標(biāo)磁盤,所述裝置包括獲取模塊、確定模塊、填充模塊、創(chuàng)建模塊以及執(zhí)行模塊,其中:
10、所述獲取模塊,用于獲取所述目標(biāo)應(yīng)用程序?qū)?yīng)的第一對象;所述第一對象存儲在所述目標(biāo)內(nèi)存;所述第一對象包括第一對象數(shù)據(jù)和第一對象定義;
11、所述確定模塊,用于確定所述第一對象定義對應(yīng)的第一引用地址,并根據(jù)預(yù)設(shè)的編碼函數(shù)對所述第一引用地址進(jìn)行壓縮,得到第二引用地址;所述第二引用地址用于指向所述第一對象定義;
12、所述填充模塊,用于根據(jù)預(yù)設(shè)存儲結(jié)構(gòu)將所述第一對象數(shù)據(jù)按照預(yù)設(shè)存儲規(guī)則進(jìn)行填充,得到參考第一對象數(shù)據(jù),以節(jié)省所述目標(biāo)內(nèi)存的數(shù)據(jù)空間;
13、所述創(chuàng)建模塊,用于在所述目標(biāo)磁盤中創(chuàng)建自恢復(fù)日志文件,并根據(jù)所述自恢復(fù)日志文件確定自恢復(fù)日志文件寫操作機(jī)制;所述自恢復(fù)日志文件寫操作機(jī)制用于存儲數(shù)據(jù)處理操作,以確保數(shù)據(jù)在系統(tǒng)崩潰或故障后能夠恢復(fù);
14、所述獲取模塊,還用于獲取所述參考第一對象數(shù)據(jù)關(guān)聯(lián)的第一數(shù)據(jù)處理指令;
15、所述執(zhí)行模塊,用于根據(jù)所述自恢復(fù)日志文件寫操作機(jī)制對所述參考第一對象數(shù)據(jù)執(zhí)行所述第一數(shù)據(jù)處理指令,得到目標(biāo)第一對象數(shù)據(jù),以提高數(shù)據(jù)處理效率。
16、第三方面,本申請實(shí)施例提供一種電子設(shè)備,包括處理器、存儲器、通信接口以及一個或多個程序,其中,上述一個或多個程序被存儲在上述存儲器中,并且被配置由上述處理器執(zhí)行,上述程序包括用于執(zhí)行本申請實(shí)施例第一方面任一方法中的步驟的指令。
17、第四方面,本申請實(shí)施例提供了一種計(jì)算機(jī)可讀存儲介質(zhì),其中,上述計(jì)算機(jī)可讀存儲介質(zhì)存儲用于電子數(shù)據(jù)交換的計(jì)算機(jī)程序,其中,上述計(jì)算機(jī)程序使得計(jì)算機(jī)執(zhí)行如本申請實(shí)施例第一方面任一方法中所描述的部分或全部步驟。
18、第五方面,本申請實(shí)施例提供了一種計(jì)算機(jī)程序產(chǎn)品,其中,上述計(jì)算機(jī)程序產(chǎn)品包括存儲了計(jì)算機(jī)程序的非瞬時性計(jì)算機(jī)可讀存儲介質(zhì),上述計(jì)算機(jī)程序可操作來使計(jì)算機(jī)執(zhí)行如本申請實(shí)施例第一方面任一方法中所描述的部分或全部步驟。該計(jì)算機(jī)程序產(chǎn)品可以為一個軟件安裝包。
19、通過實(shí)施本申請實(shí)施例,實(shí)現(xiàn)了對內(nèi)存數(shù)據(jù)的存儲優(yōu)化,并對內(nèi)存計(jì)算和文件交互機(jī)制進(jìn)行改進(jìn),以優(yōu)化內(nèi)存利用率并提高大量數(shù)據(jù)計(jì)算的處理性能。
1.一種針對內(nèi)存受限的數(shù)據(jù)處理方法,其特征在于,應(yīng)用于數(shù)據(jù)解析轉(zhuǎn)換機(jī),目標(biāo)設(shè)備包括所述數(shù)據(jù)解析轉(zhuǎn)換機(jī)、目標(biāo)應(yīng)用程序、目標(biāo)內(nèi)存和目標(biāo)磁盤,包括:
2.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)預(yù)設(shè)的編碼函數(shù)對所述第一引用地址進(jìn)行壓縮,得到第二引用地址,包括:
3.如權(quán)利要求1所述的方法,其特征在于,所述第一對象數(shù)據(jù)包括多個子數(shù)據(jù);所述預(yù)設(shè)存儲結(jié)構(gòu)包括多層數(shù)據(jù)空間,每一層數(shù)據(jù)空間的內(nèi)存大小相同;所述根據(jù)預(yù)設(shè)存儲結(jié)構(gòu)將所述第一對象數(shù)據(jù)按照預(yù)設(shè)存儲規(guī)則進(jìn)行填充,得到參考第一對象數(shù)據(jù),包括:
4.如權(quán)利要求3所述的方法,其特征在于,所述方法還包括:
5.如權(quán)利要求1所述的方法,其特征在于,所述自恢復(fù)日志文件包括寫入指針和檢查指針,所述寫入指針用于指示逆時針寫入數(shù)據(jù)的起始位置,所述檢查指針用于指示所述自恢復(fù)日志文件中數(shù)據(jù)的起始位置,所述在所述目標(biāo)磁盤中創(chuàng)建自恢復(fù)日志文件,并根據(jù)所述自恢復(fù)日志文件確定自恢復(fù)日志文件寫操作機(jī)制,包括:
6.如權(quán)利要求5所述的方法,其特征在于,所述自恢復(fù)日志文件包括第一自恢復(fù)日志文件,所述根據(jù)所述自恢復(fù)日志文件寫操作機(jī)制對所述參考第一對象數(shù)據(jù)執(zhí)行所述第一數(shù)據(jù)處理指令,得到目標(biāo)第一對象數(shù)據(jù),包括:
7.如權(quán)利要求1-6任一項(xiàng)所述的方法,其特征在于,所述自恢復(fù)日志文件還包括第二自恢復(fù)日志文件,所述方法還包括:
8.如權(quán)利要求7所述的方法,其特征在于,在所述將所述目標(biāo)數(shù)據(jù)處理指令存儲至所述第二自恢復(fù)日志文件之后,所述方法還包括:
9.一種針對內(nèi)存受限的數(shù)據(jù)處理裝置,其特征在于,應(yīng)用于數(shù)據(jù)解析轉(zhuǎn)換機(jī),目標(biāo)設(shè)備包括所述數(shù)據(jù)解析轉(zhuǎn)換機(jī)、目標(biāo)應(yīng)用程序、目標(biāo)內(nèi)存和目標(biāo)磁盤,所述裝置包括獲取模塊、確定模塊、填充模塊、創(chuàng)建模塊以及執(zhí)行模塊,其中:
10.一種電子設(shè)備,其特征在于,包括:處理器、存儲器、通信接口以及一個或多個程序;所述一個或多個程序被存儲在所述存儲器中,并且被配置成由所述處理器執(zhí)行,所述程序包括用于執(zhí)行如權(quán)利要求1-8任一項(xiàng)所述的方法中的步驟的指令。