本技術(shù)涉及存儲(chǔ),尤其涉及一種記錄數(shù)據(jù)處理方法、裝置、系統(tǒng)及電子設(shè)備。
背景技術(shù):
1、固態(tài)硬盤(solid?state?disk,簡(jiǎn)稱:ssd)基于nand顆粒進(jìn)行數(shù)據(jù)存儲(chǔ),nand顆粒的擦寫次數(shù)限制其使用壽命,nand顆粒的數(shù)據(jù)擦除是以邏輯塊為單位,因此,如何維護(hù)每個(gè)nand顆粒中每個(gè)邏輯塊的擦除次數(shù)的記錄數(shù)據(jù)成為了重點(diǎn)研究?jī)?nèi)容。
2、在相關(guān)技術(shù)中,通常將采用記錄表的方式記錄固態(tài)硬盤中每個(gè)nand顆粒中每個(gè)邏輯塊的擦除次數(shù),并采用nand?flash的存儲(chǔ)技術(shù)nand?slc(single-level?cell)存儲(chǔ)該記錄表。
3、但是,經(jīng)過(guò)固態(tài)硬盤的長(zhǎng)期運(yùn)行,固態(tài)硬盤可能發(fā)生故障,將對(duì)固態(tài)硬盤進(jìn)行下電維修等,在維修過(guò)程中固態(tài)硬盤將進(jìn)入首次上電模式,在此模式下,之前存儲(chǔ)在nand?slc的記錄表可能發(fā)生丟失或錯(cuò)誤等,降低了記錄表的可靠性。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供一種記錄數(shù)據(jù)處理方法、裝置、系統(tǒng)及電子設(shè)備,以解決相關(guān)技術(shù)在首次上電模式下無(wú)法得到可靠性較高的記錄表等缺陷。
2、本技術(shù)第一個(gè)方面提供一種記錄數(shù)據(jù)處理方法,包括:
3、獲取固態(tài)硬盤中初始緩存器中緩存的記錄數(shù)據(jù);
4、將所述記錄數(shù)據(jù)同步至目標(biāo)緩存器;
5、在所述固態(tài)硬盤進(jìn)入首次上電模式的情況下,從所述目標(biāo)緩存器中讀取所述記錄數(shù)據(jù);
6、其中,所述初始緩存器中緩存的記錄數(shù)據(jù)在所述固態(tài)硬盤進(jìn)入首次上電模式下被擦除,所述目標(biāo)緩存器中緩存的記錄數(shù)據(jù)在所述固態(tài)硬盤進(jìn)入首次上電模式下被保留。
7、在一種可選的實(shí)施方式中,所述將所述記錄數(shù)據(jù)同步至目標(biāo)緩存器,包括:
8、在所述目標(biāo)緩存器中創(chuàng)建記錄數(shù)據(jù)緩存單元;
9、在所述記錄數(shù)據(jù)緩存單元中創(chuàng)建記錄表;
10、將所述記錄數(shù)據(jù)同步緩存至對(duì)應(yīng)的目標(biāo)記錄表。
11、在一種可選的實(shí)施方式中,所述在所述目標(biāo)緩存器中創(chuàng)建數(shù)據(jù)緩存區(qū),包括:
12、獲取所述固態(tài)硬盤的容量;
13、根據(jù)所述固態(tài)硬盤的容量,確定所述記錄數(shù)據(jù)緩存單元的目標(biāo)創(chuàng)建數(shù)量;
14、按照所述目標(biāo)創(chuàng)建數(shù)量,在所述目標(biāo)緩存器中創(chuàng)建記錄數(shù)據(jù)緩存單元;
15、其中,所述目標(biāo)創(chuàng)建數(shù)量與所述固態(tài)硬盤的容量呈負(fù)相關(guān)。
16、在一種可選的實(shí)施方式中,所述按照所述目標(biāo)創(chuàng)建數(shù)量,在所述目標(biāo)緩存器中創(chuàng)建記錄數(shù)據(jù)緩存單元,包括:
17、根據(jù)所述按照所述目標(biāo)創(chuàng)建數(shù)量,在所述目標(biāo)緩存器的每個(gè)數(shù)據(jù)緩存區(qū)中,創(chuàng)建相應(yīng)數(shù)量的記錄數(shù)據(jù)緩存單元;
18、其中,所述記錄數(shù)據(jù)緩存單元與記錄表一一對(duì)應(yīng)。
19、在一種可選的實(shí)施方式中,所述將所述記錄數(shù)據(jù)同步緩存至對(duì)應(yīng)的目標(biāo)記錄表,包括:
20、獲取各所述記錄數(shù)據(jù)緩存單元中的記錄表的頭文件;
21、根據(jù)各所述記錄表的頭文件,在多個(gè)記錄表中篩選目標(biāo)記錄表;
22、將所述記錄數(shù)據(jù)同步緩存至所述目標(biāo)記錄表。
23、在一種可選的實(shí)施方式中,所述根據(jù)各所述記錄表的頭文件,在多個(gè)記錄表中篩選目標(biāo)記錄表,包括:
24、根據(jù)各所述記錄表的頭文件,判斷所述目標(biāo)緩存器的每個(gè)記錄數(shù)據(jù)緩存單元是否均為空狀態(tài);
25、在每個(gè)記錄數(shù)據(jù)緩存單元均為空狀態(tài)的情況下,將首個(gè)所述記錄數(shù)據(jù)緩存單元上的記錄表作為目標(biāo)記錄表。
26、在一種可選的實(shí)施方式中,所述方法還包括:
27、在不是每個(gè)記錄數(shù)據(jù)緩存單元均為空狀態(tài)的情況下,?將版本號(hào)最高的滿狀態(tài)記錄數(shù)據(jù)緩存單元作為目標(biāo)記錄數(shù)據(jù)緩存單元;
28、判斷所述目標(biāo)記錄數(shù)據(jù)緩存單元所屬的數(shù)據(jù)緩存區(qū)是否為非滿數(shù)據(jù)緩存區(qū);
29、在所述目標(biāo)記錄數(shù)據(jù)緩存單元所屬的數(shù)據(jù)緩存區(qū)為非滿數(shù)據(jù)緩存區(qū)的情況下,將所述非滿數(shù)據(jù)緩存區(qū)中的首個(gè)空狀態(tài)的記錄數(shù)據(jù)緩存單元上的記錄表作為目標(biāo)記錄表。
30、在一種可選的實(shí)施方式中,所述方法還包括:
31、在所述目標(biāo)記錄數(shù)據(jù)緩存單元所屬的數(shù)據(jù)緩存區(qū)為滿數(shù)據(jù)緩存區(qū)的情況下,對(duì)所述滿數(shù)據(jù)緩存區(qū)中的首個(gè)滿狀態(tài)的記錄數(shù)據(jù)緩存單元進(jìn)行數(shù)據(jù)擦除處理,以將該滿狀態(tài)的記錄數(shù)據(jù)緩存單元轉(zhuǎn)為空狀態(tài)的記錄數(shù)據(jù)緩存單元;
32、將該空狀態(tài)的記錄數(shù)據(jù)緩存單元上的記錄表作為目標(biāo)記錄表。
33、在一種可選的實(shí)施方式中,所述將所述記錄數(shù)據(jù)同步緩存至所述目標(biāo)記錄表,包括:
34、根據(jù)所述記錄數(shù)據(jù)的內(nèi)容,生成所述記錄數(shù)據(jù)的校驗(yàn)碼;
35、將所述記錄數(shù)據(jù)的校驗(yàn)碼寫入所述目標(biāo)記錄表的頭文件;
36、將所述記錄數(shù)據(jù)的內(nèi)容寫入所述目標(biāo)記錄表的主體文件。
37、在一種可選的實(shí)施方式中,所述方法還包括:
38、獲取所述目標(biāo)緩存器的平均擦?xí)r間;
39、在將所述記錄數(shù)據(jù)同步緩存至所述目標(biāo)記錄表的過(guò)程中,當(dāng)記錄數(shù)據(jù)寫堵塞時(shí)間達(dá)到所述平均擦?xí)r間時(shí),暫停寫所述記錄數(shù)據(jù);
40、當(dāng)觸發(fā)下一次記錄數(shù)據(jù)同步緩存時(shí),繼續(xù)寫上次暫停的記錄數(shù)據(jù)。
41、在一種可選的實(shí)施方式中,所述獲取所述目標(biāo)緩存器的平均擦?xí)r間,包括:
42、在所述目標(biāo)緩存器未經(jīng)歷過(guò)數(shù)據(jù)擦除處理的情況下,獲取所述目標(biāo)緩存器的擦單元大??;
43、根據(jù)所述目標(biāo)緩存器的擦單元大小,確定所述目標(biāo)緩存器的平均擦?xí)r間。
44、在一種可選的實(shí)施方式中,所述方法還包括:
45、在所述目標(biāo)緩存器經(jīng)歷過(guò)數(shù)據(jù)擦除處理的情況下,獲取每次數(shù)據(jù)擦除操作的用時(shí);
46、根據(jù)每次數(shù)據(jù)擦除操作的用時(shí)和數(shù)據(jù)擦除處理次數(shù),確定所述目標(biāo)緩存器的平均擦?xí)r間。
47、在一種可選的實(shí)施方式中,所述在所述目標(biāo)緩存器中創(chuàng)建記錄數(shù)據(jù)緩存單元,包括:
48、根據(jù)所述目標(biāo)緩存器的擦單元大小,確定所述記錄數(shù)據(jù)緩存單元的目標(biāo)大小;
49、根據(jù)所述記錄數(shù)據(jù)緩存單元的目標(biāo)大小,在所述目標(biāo)緩存器中創(chuàng)建記錄數(shù)據(jù)緩存單元;
50、其中,所述記錄數(shù)據(jù)緩存單元的目標(biāo)大小為所述擦單元大小的整數(shù)倍。
51、在一種可選的實(shí)施方式中,所述從所述目標(biāo)緩存器中讀取所述記錄數(shù)據(jù),包括:
52、從所述目標(biāo)緩存器中選擇當(dāng)前版本號(hào)最高的記錄數(shù)據(jù)緩存單元作為待讀記錄數(shù)據(jù)緩存單元;
53、從所述待讀記錄數(shù)據(jù)緩存單元中讀取所述記錄數(shù)據(jù)。
54、在一種可選的實(shí)施方式中,所述從所述待讀記錄數(shù)據(jù)緩存單元中讀取所述記錄數(shù)據(jù),包括:
55、從所述待讀記錄數(shù)據(jù)緩存單元的待讀記錄表的主體文件讀取所述記錄數(shù)據(jù)的內(nèi)容;
56、從所述待讀記錄表的頭文件中讀取所述記錄數(shù)據(jù)的校驗(yàn)碼;
57、基于所述校驗(yàn)碼對(duì)讀取到的記錄數(shù)據(jù)的內(nèi)容進(jìn)行完整性校驗(yàn),得到完整性校驗(yàn)結(jié)果。
58、本技術(shù)第二個(gè)方面提供一種記錄數(shù)據(jù)處理裝置,包括:
59、獲取模塊,用于獲取固態(tài)硬盤中初始緩存器中緩存的記錄數(shù)據(jù);
60、同步模塊,用于將所述記錄數(shù)據(jù)同步至目標(biāo)緩存器;
61、讀取模塊,用于在所述固態(tài)硬盤進(jìn)入首次上電模式的情況下,從所述目標(biāo)緩存器中讀取所述記錄數(shù)據(jù);
62、其中,所述初始緩存器中緩存的記錄數(shù)據(jù)在所述固態(tài)硬盤進(jìn)入首次上電模式下被擦除,所述目標(biāo)緩存器中緩存的記錄數(shù)據(jù)在所述固態(tài)硬盤進(jìn)入首次上電模式下被保留。
63、本技術(shù)第三個(gè)方面提供一種記錄數(shù)據(jù)處理系統(tǒng),包括:固態(tài)硬盤和記錄數(shù)據(jù)處理器;所述固態(tài)硬盤包括初始緩存器和目標(biāo)緩存器;
64、所述記錄數(shù)據(jù)處理器基于如上第一個(gè)方面以及第一個(gè)方面各種可能的設(shè)計(jì)所述的方法,對(duì)所述固態(tài)硬盤的記錄數(shù)據(jù)進(jìn)行處理。
65、本技術(shù)第四個(gè)方面提供一種電子設(shè)備,包括:至少一個(gè)處理器和存儲(chǔ)器;
66、所述存儲(chǔ)器存儲(chǔ)計(jì)算機(jī)執(zhí)行指令;
67、所述至少一個(gè)處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,使得所述至少一個(gè)處理器執(zhí)行如上第一個(gè)方面以及第一個(gè)方面各種可能的設(shè)計(jì)所述的方法。
68、本技術(shù)第五個(gè)方面提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)執(zhí)行指令,當(dāng)處理器執(zhí)行所述計(jì)算機(jī)執(zhí)行指令時(shí),實(shí)現(xiàn)如上第一個(gè)方面以及第一個(gè)方面各種可能的設(shè)計(jì)所述的方法。
69、本技術(shù)第六個(gè)方面提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)指令,計(jì)算機(jī)指令用于使計(jì)算機(jī)執(zhí)行如上第一個(gè)方面以及第一個(gè)方面各種可能的設(shè)計(jì)所述的方法。
70、本技術(shù)技術(shù)方案,具有如下優(yōu)點(diǎn):
71、本技術(shù)提供一種記錄數(shù)據(jù)處理方法、裝置、系統(tǒng)及電子設(shè)備,該方法包括:獲取固態(tài)硬盤中初始緩存器中緩存的記錄數(shù)據(jù);將記錄數(shù)據(jù)同步至目標(biāo)緩存器;在固態(tài)硬盤進(jìn)入首次上電模式的情況下,從目標(biāo)緩存器中讀取記錄數(shù)據(jù);其中,初始緩存器中緩存的記錄數(shù)據(jù)在固態(tài)硬盤進(jìn)入首次上電模式下被擦除,目標(biāo)緩存器中緩存的記錄數(shù)據(jù)在固態(tài)硬盤進(jìn)入首次上電模式下被保留。上述方案提供的方法,通過(guò)將初始緩存器中的記錄數(shù)據(jù)同步至目標(biāo)緩存器,以確保固態(tài)硬盤在返廠維修過(guò)程中進(jìn)入首次上電模式下,能夠從目標(biāo)緩存器中讀取可靠性較高的記錄數(shù)據(jù)。