本技術(shù)涉及數(shù)據(jù)讀取領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法、電子設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、lustre是一種高性能的分布式文件系統(tǒng),常用于大型計(jì)算集群和高性能計(jì)算(high?performance?computing,hpc)環(huán)境中。在lustre文件系統(tǒng)中,元數(shù)據(jù)和數(shù)據(jù)是分開存儲(chǔ)和管理的。數(shù)據(jù)儲(chǔ)存在lustre的多個(gè)對(duì)象存儲(chǔ)目標(biāo)(object?storage?object,ost)中,該存儲(chǔ)方式可以支持lustre存儲(chǔ)超大文件,并且提供高速的并發(fā)讀寫性能。
2、然而,在例如模型訓(xùn)練的場景下,需要讀取海量小文件的數(shù)據(jù),小文件的大小一般小于單次i/o(input/output,輸入/輸出)訪問的帶寬,頻繁通過i/o讀取數(shù)據(jù),會(huì)造成網(wǎng)絡(luò)帶寬資源的浪費(fèi),導(dǎo)致lustre文件系統(tǒng)的傳輸性能低下。
3、因此,存在讀取海量小文件的數(shù)據(jù)效率低的問題。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供一種數(shù)據(jù)處理方法、電子設(shè)備及存儲(chǔ)介質(zhì),用以解決讀取海量小文件的數(shù)據(jù)效率低的技術(shù)問題。
2、第一方面,本技術(shù)提供一種數(shù)據(jù)處理方法,包括:處理模塊接收來自目標(biāo)應(yīng)用程序的第一請(qǐng)求,第一請(qǐng)求用于請(qǐng)求讀取第一文件的數(shù)據(jù);第一文件的文件大小小于預(yù)設(shè)值;
3、處理模塊確定客戶端的緩存盤是否存在第一文件的緩存文件;
4、若確定存在第一文件的緩存文件,處理模塊確定緩存文件是否有效;
5、若確定第一文件的緩存文件有效,處理模塊從客戶端的緩存盤讀取第一文件的緩存文件,以獲取第一文件的數(shù)據(jù);
6、處理模塊向目標(biāo)應(yīng)用程序發(fā)送第一文件的數(shù)據(jù)。
7、可選地,如上述的方法,第一請(qǐng)求包括第一文件的標(biāo)識(shí),處理模塊確定客戶端的緩存盤是否存在第一文件的緩存文件,包括:
8、處理模塊根據(jù)第一文件的標(biāo)識(shí),查找第一文件的元數(shù)據(jù)信息;
9、若第一文件的元數(shù)據(jù)信息中包含第一文件在客戶端的緩存盤的緩存路徑,則確定客戶端的緩存盤存在第一文件的緩存文件。
10、可選地,如上述的方法,處理模塊確定第一文件的緩存文件是否有效,包括:
11、處理模塊從第一文件的元數(shù)據(jù)信息中,獲取第一文件在客戶端的緩存盤的最新修改時(shí)間,以及第一文件在服務(wù)端的最新修改時(shí)間;
12、若第一文件在客戶端的緩存盤的最新修改時(shí)間與第一文件在服務(wù)端的最新修改時(shí)間一致,處理模塊確定第一文件的緩存文件有效。
13、可選地,如上述的方法,處理模塊從客戶端的緩存盤讀取第一文件的緩存文件,以獲取第一文件的數(shù)據(jù),包括:
14、處理模塊從第一文件的元數(shù)據(jù)信息中,獲取第一文件在客戶端的緩存盤的緩存路徑;
15、處理模塊根據(jù)緩存路徑,打開第一文件在客戶端的緩存盤的緩存文件;
16、處理模塊獲取緩存文件的句柄,并根據(jù)緩存文件的句柄從客戶端的緩存盤讀取第一文件的緩存文件,以獲取第一文件的數(shù)據(jù)。
17、可選地,如上述的方法,處理模塊確定客戶端的緩存盤是否存在第一文件的緩存文件,包括:
18、處理模塊確定第一請(qǐng)求中是否攜帶有第一標(biāo)記,第一標(biāo)記用于指示對(duì)第一文件的數(shù)據(jù)進(jìn)行寫操作;
19、若確定第一請(qǐng)求中未攜帶第一標(biāo)記,處理模塊確定客戶端的緩存盤是否存在第一文件的緩存文件。
20、可選地,如上述的方法,方法還包括:
21、處理模塊接收來自目標(biāo)應(yīng)用程序的第二請(qǐng)求,第二請(qǐng)求用于請(qǐng)求關(guān)閉第一文件;
22、處理模塊確定第一文件在客戶端的緩存盤的緩存文件是否已打開;
23、若確定第一文件在客戶端的緩存盤的緩存文件已打開,處理模塊刪除緩存文件的句柄,并關(guān)閉緩存文件。
24、可選地,如上述的方法,方法還包括:
25、若滿足預(yù)設(shè)條件,處理模塊從第一文件的元數(shù)據(jù)信息中,獲取第一文件在服務(wù)端的文件路徑;
26、處理模塊根據(jù)第一文件在服務(wù)端的文件路徑,從服務(wù)端獲取第一文件的數(shù)據(jù);
27、預(yù)設(shè)條件包括以下至少一項(xiàng):
28、客戶端的緩存盤不存在第一文件的緩存文件;
29、第一文件的緩存文件無效;
30、第一請(qǐng)求中攜帶有第一標(biāo)記。
31、可選地,如上述的方法,客戶端還包括緩存管理模塊,方法還包括:
32、緩存管理模塊接收來自緩存管理端的第三請(qǐng)求,第三請(qǐng)求包括文件目錄信息,文件目錄信息中包括文件目錄的標(biāo)識(shí)以及文件目錄下多個(gè)文件的標(biāo)識(shí);第三請(qǐng)求用于提前將目錄下的多個(gè)文件的數(shù)據(jù)添加至客戶端的緩存盤;
33、緩存管理模塊根據(jù)文件目錄信息,從服務(wù)端獲取文件目錄下的多個(gè)文件的數(shù)據(jù),將多個(gè)文件的數(shù)據(jù)緩存至客戶端的緩存盤。
34、可選地,如上述的方法,方法還包括:
35、在處理模塊確定第一文件在客戶端的緩存盤的最新修改時(shí)間與第一文件在服務(wù)端的最新修改時(shí)間不一致時(shí),處理模塊向緩存管理模塊發(fā)送指示信息;
36、緩存管理模塊根據(jù)指示信息,執(zhí)行以下至少一項(xiàng):
37、將第一文件在客戶端的緩存盤的緩存文件從客戶端的緩存盤刪除;
38、從服務(wù)端獲取第一文件的最新數(shù)據(jù),將第一文件的最新數(shù)據(jù)緩存至客戶端的緩存盤。
39、可選地,如上述的方法,客戶端的緩存盤,包括內(nèi)存盤和非易失性存儲(chǔ)器標(biāo)準(zhǔn)nvme盤,方法還包括:
40、內(nèi)存盤的存儲(chǔ)空間不足時(shí),緩存管理模塊將文件數(shù)據(jù)緩存至nvme盤。
41、第二方面,本技術(shù)提供一種數(shù)據(jù)處理裝置,包括:
42、處理模塊,用于接收來自目標(biāo)應(yīng)用程序的第一請(qǐng)求,第一請(qǐng)求用于請(qǐng)求讀取第一文件的數(shù)據(jù);第一文件的文件大小小于預(yù)設(shè)值。
43、處理模塊,還用于確定客戶端的緩存盤是否存在第一文件的緩存文件。
44、處理模塊,還用于若確定存在第一文件的緩存文件,確定緩存文件是否有效。
45、處理模塊,還用于若確定第一文件的緩存文件有效,從客戶端的緩存盤讀取第一文件的緩存文件,以獲取第一文件的數(shù)據(jù)。
46、處理模塊,還用于向目標(biāo)應(yīng)用程序發(fā)送第一文件的數(shù)據(jù)。
47、緩存管理模塊,用于接收來自緩存管理端的第三請(qǐng)求,第三請(qǐng)求包括文件目錄信息,文件目錄信息中包括文件目錄的標(biāo)識(shí)以及文件目錄下多個(gè)文件的標(biāo)識(shí);第三請(qǐng)求用于提前將目錄下的多個(gè)文件的數(shù)據(jù)添加至客戶端的緩存盤;
48、緩存管理模塊,還用于根據(jù)文件目錄信息,從服務(wù)端獲取文件目錄下的多個(gè)文件的數(shù)據(jù),將多個(gè)文件的數(shù)據(jù)緩存至客戶端的緩存盤。
49、第三方面,本技術(shù)提供一種電子設(shè)備,包括:
50、處理器,以及與處理器通信連接的存儲(chǔ)器;
51、存儲(chǔ)器存儲(chǔ)計(jì)算機(jī)執(zhí)行指令;
52、處理器執(zhí)行存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,以實(shí)現(xiàn)本技術(shù)第一方面任一項(xiàng)的方法。
53、第四方面,本技術(shù)提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),包括:
54、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)執(zhí)行指令,計(jì)算機(jī)執(zhí)行指令被處理器執(zhí)行時(shí)用于實(shí)現(xiàn)本技術(shù)第一方面的方法。
55、第五方面,本技術(shù)提供一種計(jì)算機(jī)程序產(chǎn)品,包括:
56、計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)本技術(shù)第一方面任一項(xiàng)的方法。
57、本技術(shù)提供的數(shù)據(jù)處理方法、電子設(shè)備及存儲(chǔ)介質(zhì),通過處理模塊接收來自目標(biāo)應(yīng)用程序的第一請(qǐng)求,第一請(qǐng)求用于請(qǐng)求讀取第一文件的數(shù)據(jù);第一文件的文件大小小于預(yù)設(shè)值;處理模塊確定客戶端的緩存盤是否存在第一文件的緩存文件;若確定存在第一文件的緩存文件,處理模塊確定緩存文件是否有效;若確定第一文件的緩存文件有效,處理模塊從客戶端的緩存盤讀取第一文件的緩存文件,以獲取第一文件的數(shù)據(jù);處理模塊向目標(biāo)應(yīng)用程序發(fā)送第一文件的數(shù)據(jù)。本技術(shù)的方法,提升了讀取海量小文件的數(shù)據(jù)的效率。