本技術(shù)涉及存儲,特別是涉及一種數(shù)據(jù)處理方法、設(shè)備、可讀存儲介質(zhì)和程序產(chǎn)品。
背景技術(shù):
1、在存儲系統(tǒng)中,小塊寫指的是向存儲介質(zhì)(如硬盤驅(qū)動器、固態(tài)硬盤ssd等)寫入相對較小的數(shù)據(jù)塊的操作,通常是主機端節(jié)點向部署有存儲系統(tǒng)的當前設(shè)備端節(jié)點發(fā)送小塊寫指令,當前設(shè)備端節(jié)點將對應(yīng)的數(shù)據(jù)寫入日志中,并對日志中的數(shù)據(jù)進行解析生成對應(yīng)的緩存實例,再將緩存實例寫入緩存中,即可響應(yīng)主機端節(jié)點寫入完成,接下來再將緩存中的緩存實例固化至存儲介質(zhì)中,完成對數(shù)據(jù)的存儲。
2、在當前設(shè)備端節(jié)點發(fā)生故障時,業(yè)務(wù)中斷,此時通常會啟用備用設(shè)備端節(jié)點,由備用設(shè)備端節(jié)點代替當前設(shè)備端節(jié)點新建緩存實例,再將緩存實例寫入緩存中,以實現(xiàn)緩存重建過程。
3、但是,上述方式存在緩存重建效率低的問題,進而影響業(yè)務(wù)恢復效率。
技術(shù)實現(xiàn)思路
1、基于此,有必要針對上述技術(shù)問題,提供一種能夠提高業(yè)務(wù)恢復效率的數(shù)據(jù)處理方法、設(shè)備、可讀存儲介質(zhì)和程序產(chǎn)品。
2、第一方面,本技術(shù)提供了一種數(shù)據(jù)處理方法,包括:
3、在第二節(jié)點存在故障的情況下,確定第一節(jié)點中第一日志包括的多個待緩存重建的第一數(shù)據(jù),多個第一數(shù)據(jù)與第二節(jié)點中第二日志包括多個第二數(shù)據(jù)相同;
4、將各第一數(shù)據(jù)寫入第一節(jié)點中的擺渡池中;
5、輸出提示信息,提示信息用于提示緩存重建完成。
6、上述實施例中,當?shù)诙?jié)點存在故障的情況下,作為備用的第一節(jié)點可以直接從第一日志中獲取到與第二節(jié)點的第二日志中相同的待緩存重建的第一數(shù)據(jù),第一節(jié)點將這些第一數(shù)據(jù)先寫入至擺渡池后,即可輸出提示緩存重建完成,主機端節(jié)點可以立刻開始下發(fā)小塊寫指令,縮短了緩存重建完成的周期,提高了業(yè)務(wù)恢復效率。
7、在其中一個實施例中,將各第一數(shù)據(jù)寫入第一節(jié)點的內(nèi)存中的擺渡池中,包括:
8、針對每個第一數(shù)據(jù),按照預設(shè)映射方式對第一數(shù)據(jù)進行映射處理,得到第一數(shù)據(jù)對應(yīng)的第一映射地址;
9、根據(jù)第一映射地址將第一數(shù)據(jù)寫入擺渡池中。
10、上述實施例中,對各第一數(shù)據(jù)進行映射處理,得到各第一數(shù)據(jù)對應(yīng)的第一映射地址,并按照各第一數(shù)據(jù)對應(yīng)的第一映射地址將各第一數(shù)據(jù)寫入至擺渡池中,使得后續(xù)可以快速利用各第一數(shù)據(jù)的第一映射地址找到各第一數(shù)據(jù),便于第一數(shù)據(jù)的管理。
11、在其中一個實施例中,擺渡池中包括多個內(nèi)存空間,根據(jù)第一映射地址將第一數(shù)據(jù)寫入擺渡池中,包括:
12、將第一映射地址與各內(nèi)存空間對應(yīng)的映射地址進行匹配處理;
13、將第一數(shù)據(jù)寫入匹配成功的映射地址對應(yīng)的內(nèi)存空間中。
14、上述實施例中,將擺渡池劃分為多個映射地址不同的內(nèi)存空間,第一節(jié)點將第一映射地址相同的第一數(shù)據(jù)寫入相同的內(nèi)存空間,便于后續(xù)的數(shù)據(jù)讀取,提高了緩存重建的效率。
15、在其中一個實施例中,方法還包括:
16、接收主機端節(jié)點發(fā)送的寫指令,寫指令攜帶初始寫入數(shù)據(jù);
17、在未到達過渡內(nèi)存清理時間的情況下,檢測擺渡池是否為空,得到檢測結(jié)果;
18、根據(jù)檢測結(jié)果,將初始寫入數(shù)據(jù)對應(yīng)的緩存實例寫入第一節(jié)點的緩存中。
19、上述實施例中,第一節(jié)點在執(zhí)行主機端節(jié)點發(fā)送的寫指令的同時,對擺渡池中的第一數(shù)據(jù)進行處理,無感緩存重建,在提高緩存重建效率的同時,提升了用戶的使用體驗。
20、在其中一個實施例中,根據(jù)檢測結(jié)果,將初始寫入數(shù)據(jù)對應(yīng)的緩存實例寫入第一節(jié)點的緩存中,包括:
21、若檢測結(jié)果為擺渡池不為空,則按照預設(shè)映射方式對初始寫入數(shù)據(jù)進行映射處理,得到初始寫入數(shù)據(jù)對應(yīng)的第二映射地址;
22、根據(jù)第二映射地址在擺渡池中確定第二映射地址對應(yīng)的目標內(nèi)存空間,并在目標內(nèi)存空間不為空的情況下,將初始寫入數(shù)據(jù)與目標內(nèi)存空間中的目標第一數(shù)據(jù)進行匹配處理;
23、若初始寫入數(shù)據(jù)與目標第一數(shù)據(jù)匹配,則在目標內(nèi)存空間中刪除目標第一數(shù)據(jù),并將初始寫入數(shù)據(jù)對應(yīng)的緩存實例寫入第一節(jié)點的緩存中。
24、上述實施例中,在擺渡池不為空的情況下,先對初始寫入數(shù)據(jù)進行映射處理,從而根據(jù)映射處理的得到的第二映射地址找到目標內(nèi)存空間,再檢測內(nèi)存空間是否為空,若不為空,再對初始寫入數(shù)據(jù)與目標第一數(shù)據(jù)進行匹配,并根據(jù)匹配結(jié)果將初始寫入數(shù)據(jù)對應(yīng)的緩存實例寫入緩存中,避免了不必要的計算資源的開銷。
25、在其中一個實施例中,初始寫入數(shù)據(jù)與目標第一數(shù)據(jù)匹配表征初始寫入數(shù)據(jù)與目標第一數(shù)據(jù)完全相同,將初始寫入數(shù)據(jù)對應(yīng)的緩存實例寫入第一節(jié)點的緩存中,包括:
26、根據(jù)初始寫入數(shù)據(jù)生成緩存實例;
27、將緩存實例寫入第一節(jié)點的緩存中。
28、上述實施例中,對于完全相同的第一數(shù)據(jù),第一節(jié)點可以直接將擺渡池中的目標第一數(shù)據(jù)進行刪除,并將初始寫入數(shù)據(jù)對應(yīng)的緩存實例寫入第一節(jié)點的緩存中,在對初始寫入數(shù)據(jù)執(zhí)行寫指令的同時完成了對目標第一數(shù)據(jù)的緩存重建,減少了計算資源的開銷。
29、在其中一個實施例中,初始寫入數(shù)據(jù)與目標第一數(shù)據(jù)匹配表征初始寫入數(shù)據(jù)與目標第一數(shù)據(jù)部分相同,將初始寫入數(shù)據(jù)對應(yīng)的緩存實例寫入第一節(jié)點的緩存中,包括:
30、根據(jù)目標第一數(shù)據(jù)中與初始寫入數(shù)據(jù)不相同的部分,對初始寫入數(shù)據(jù)進行補缺處理,得到目標寫入數(shù)據(jù);
31、根據(jù)目標寫入數(shù)據(jù)生成緩存實例,并將緩存實例寫入第一節(jié)點的緩存中。
32、上述實施例中,對于部分相同的目標第一數(shù)據(jù),第一節(jié)點先利用目標第一數(shù)據(jù)對初始寫入數(shù)據(jù)進行補缺處理,所得到目標寫入數(shù)據(jù)中包括完整的目標第一數(shù)據(jù)與初始寫入數(shù)據(jù),將目標寫入數(shù)據(jù)對應(yīng)的緩存實例寫入第一節(jié)點對應(yīng)的緩存中,確保了數(shù)據(jù)的完整性。
33、在其中一個實施例中,方法還包括:
34、若初始寫入數(shù)據(jù)與目標第一數(shù)據(jù)不匹配,則根據(jù)初始寫入數(shù)據(jù)生成緩存實例,并將緩存實例寫入第一節(jié)點的緩存中。
35、上述實施例中,對于不匹配的目標第一數(shù)據(jù),第一節(jié)點無需對其進行處理,可以直接將初始寫入數(shù)據(jù)對應(yīng)的緩存實例寫入緩存中,提高了數(shù)據(jù)寫入的效率。
36、在其中一個實施例中,根據(jù)檢測結(jié)果,將初始寫入數(shù)據(jù)對應(yīng)的緩存實例寫入第一節(jié)點的緩存中,還包括:
37、若檢測結(jié)果為擺渡池為空,則根據(jù)初始寫入數(shù)據(jù)生成緩存實例,并將緩存實例寫入第一節(jié)點的緩存中。
38、上述實施例中,先檢測擺渡池是否為空,再進行后續(xù)的從數(shù)據(jù)處理,避免了第一節(jié)點直接根據(jù)各初始寫入數(shù)據(jù)對各第一數(shù)據(jù)進行比對所導致的不必要的資源浪費。
39、在其中一個實施例中,方法還包括:
40、若到達過渡內(nèi)存清理時間,則將擺渡池中的各第一數(shù)據(jù)對應(yīng)的緩存實例寫入第一節(jié)點的緩存中,并在擺渡池中刪除各第一數(shù)據(jù)。
41、上述實施例中,在到達預設(shè)的過渡內(nèi)存清理時間后,會直接對擺渡池中的第一數(shù)據(jù)進行緩存重建,避免存在遺漏的第一數(shù)據(jù)長期沒有進行緩存重建,提高了數(shù)據(jù)的安全性。
42、第二方面,本技術(shù)還提供了一種數(shù)據(jù)處理裝置,包括:
43、確定模塊,用于在第二節(jié)點存在故障的情況下,確定第一節(jié)點中第一日志包括的多個待緩存重建的第一數(shù)據(jù),多個第一數(shù)據(jù)與第二節(jié)點中第二日志包括多個第二數(shù)據(jù)相同;
44、過渡模塊,用于將各第一數(shù)據(jù)寫入第一節(jié)點中的擺渡池中;
45、提示模塊,用于輸出提示信息,提示信息用于提示緩存重建完成。
46、第三方面,本技術(shù)實施例提供一種計算機設(shè)備,包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如上述第一方面的方法的步驟。
47、第四方面,本技術(shù)實施例提供一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上述第一方面的方法的步驟。
48、第五方面,本技術(shù)還提供了一種計算機程序產(chǎn)品。所述計算機程序產(chǎn)品,包括計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)如上述第一方面的方法的步驟。
49、上述數(shù)據(jù)處理方法、設(shè)備、可讀存儲介質(zhì)和程序產(chǎn)品,在第二節(jié)點存在故障的情況下,確定第一節(jié)點中第一日志包括的多個待緩存重建的第一數(shù)據(jù),并將各第一數(shù)據(jù)寫入第一節(jié)點中的擺渡池中,即可輸出提示信息,其中,多個第一數(shù)據(jù)與第二節(jié)點中第二日志包括多個第二數(shù)據(jù)相同,提示信息用于提示緩存重建完成。這樣,當?shù)诙?jié)點存在故障的情況下,作為備用的第一節(jié)點可以直接從第一日志中獲取到與第二節(jié)點的第二日志中相同的待緩存重建的第一數(shù)據(jù),第一節(jié)點將這些第一數(shù)據(jù)先寫入至擺渡池后,即可輸出提示緩存重建完成,主機端節(jié)點可以立刻開始下發(fā)小塊寫指令,縮短了緩存重建完成的周期,提高了業(yè)務(wù)恢復效率。