本技術(shù)涉及數(shù)據(jù)處理領(lǐng)域,特別是涉及一種快照還原方法、裝置、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、快照是指在某一時刻對數(shù)據(jù)或系統(tǒng)狀態(tài)進(jìn)行的一次拍攝或記錄??煺胀ǔS糜跀?shù)據(jù)庫備份和恢復(fù)、文件系統(tǒng)備份和恢復(fù)、虛擬機(jī)備份和恢復(fù)等。在生活中,許多快啟產(chǎn)品,例如智能門鎖、智能門鈴、智能貓眼、電池相機(jī)等在無外部觸發(fā)事件時,產(chǎn)品的系統(tǒng)進(jìn)入休眠狀態(tài),當(dāng)有外部事情觸發(fā),例如電池相機(jī)檢測到行人經(jīng)過、用戶在產(chǎn)品app中進(jìn)行某一操作等,產(chǎn)品系統(tǒng)會快速恢復(fù)系統(tǒng),然后對外部觸發(fā)事件進(jìn)行回應(yīng)。
2、系統(tǒng)進(jìn)入休眠狀態(tài)時即對系統(tǒng)進(jìn)行一次快照,產(chǎn)品的操作系統(tǒng)將內(nèi)存條中的數(shù)據(jù)保存至非易失性存儲設(shè)備中,可以在不需要供電的情況下長久保留系統(tǒng)進(jìn)入休眠前的狀態(tài),該過程并不涉及拷貝的過程。而快啟產(chǎn)品進(jìn)行啟動時,實(shí)際是對快照進(jìn)行還原,即將快照中的數(shù)據(jù),全部拷貝到指定的內(nèi)存地址中,而現(xiàn)有技術(shù)中在對快照進(jìn)行還原時,需要按頁拆解快照,通常每次只能拷貝4kb的數(shù)據(jù),因此,快照中的數(shù)據(jù)越大,需要拷貝的次數(shù)越多,快照還原耗時也越久,啟動時間也越長,進(jìn)而導(dǎo)致啟動速度變慢。因此,亟需能夠提高快啟產(chǎn)品的啟動速度的方法。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施例的目的在于提供一種快照還原方法、裝置、電子設(shè)備及存儲介質(zhì),以提高快啟產(chǎn)品的啟動速度。具體技術(shù)方案如下:
2、第一方面,本技術(shù)實(shí)施例提供了一種快照還原方法,所述方法包括:
3、獲取待還原的目標(biāo)快照以及所述目標(biāo)快照中各分片數(shù)據(jù)對應(yīng)的目的地址和各所述分片數(shù)據(jù)的分片編號,所述各分片數(shù)據(jù)的分片編號為各所述分片數(shù)據(jù)被存儲在非易失性存儲設(shè)備中的存儲順序;
4、從各所述分片數(shù)據(jù)中確定各分片數(shù)據(jù)組,其中,所述分片數(shù)據(jù)組中的各分片數(shù)據(jù)的分片編號連續(xù)以及各所述分片數(shù)據(jù)對應(yīng)的目的地址連續(xù);
5、針對每個所述分片數(shù)據(jù)組,向內(nèi)存請求以初始目的地址為起始、長度為第一拷貝長度的拷貝地址,其中,所述初始目的地址為所述分片數(shù)據(jù)組中分片編號最小的分片數(shù)據(jù)的目的地址,所述第一拷貝長度為所述分片數(shù)據(jù)組中所有分片數(shù)據(jù)的長度總和;
6、針對每個所述分片數(shù)據(jù)組,將所述分片數(shù)據(jù)組中的各分片數(shù)據(jù)按各所述分片編號順序拷貝至所述拷貝地址。
7、在一種可能的實(shí)施方式中,所述從各所述分片數(shù)據(jù)中確定各分片數(shù)據(jù)組,包括:
8、判斷待拷貝分片數(shù)據(jù)的目的地址與相鄰分片數(shù)據(jù)的目的地址是否連續(xù),其中,所述待拷貝分片數(shù)據(jù)為所述目標(biāo)快照中的任一所述分片數(shù)據(jù),所述相鄰分片數(shù)據(jù)為編號與所述待拷貝分片數(shù)據(jù)相鄰的下一個分片數(shù)據(jù);
9、若是,將所述相鄰分片數(shù)據(jù)作為新的待拷貝分片數(shù)據(jù)返回執(zhí)行所述判斷待拷貝分片數(shù)據(jù)的目的地址與相鄰分片數(shù)據(jù)的目的地址是否連續(xù)的步驟,直至待拷貝分片數(shù)據(jù)的目的地址與相鄰分片數(shù)據(jù)的目的地址不連續(xù);
10、將各所述待拷貝分片數(shù)據(jù)劃分至同一分片數(shù)據(jù)組中。
11、在一種可能的實(shí)施方式中,每個所述分片數(shù)據(jù)的長度為預(yù)設(shè)長度,所述判斷待拷貝分片數(shù)據(jù)的目的地址與相鄰分片數(shù)據(jù)的目的地址是否連續(xù),包括:
12、若相鄰分片數(shù)據(jù)的目的地址相對于所述待拷貝分片數(shù)據(jù)的目的地址偏移了所述預(yù)設(shè)長度,則確定所述待拷貝分片數(shù)據(jù)的目的地址與所述相鄰分片數(shù)據(jù)的目的地址是連續(xù)的。
13、在一種可能的實(shí)施方式中,每個所述分片數(shù)據(jù)的長度為預(yù)設(shè)長度;所述方法還包括:
14、若所述待拷貝分片數(shù)據(jù)的目的地址與相鄰分片數(shù)據(jù)的目的地址連續(xù),則將第二拷貝長度自加所述預(yù)設(shè)長度,其中,所述第二拷貝長度初始時為所述預(yù)設(shè)長度;所述第一拷貝長度為待拷貝分片數(shù)據(jù)的目的地址與相鄰分片數(shù)據(jù)的目的地址不連續(xù)時的所述第二拷貝長度。
15、在一種可能的實(shí)施方式中,所述方法還包括:
16、若所述待還原的所述目標(biāo)快照中的所有所述分片數(shù)據(jù)未完成拷貝,則將與所述待拷貝分片數(shù)據(jù)的目的地址不連續(xù)的所述相鄰分片數(shù)據(jù)作為新的待拷貝分片數(shù)據(jù),并執(zhí)行所述判斷待拷貝分片數(shù)據(jù)的目的地址與相鄰分片數(shù)據(jù)的目的地址是否連續(xù)的步驟;
17、若所述待還原的所述目標(biāo)快照中的所有所述分片數(shù)據(jù)已完成拷貝,則啟動系統(tǒng)。
18、第二方面,本技術(shù)實(shí)施例提供了一種用于電池監(jiān)控設(shè)備的快啟方法,應(yīng)用于電池監(jiān)控設(shè)備,所述電池監(jiān)控設(shè)備包括非易失性存儲設(shè)備和內(nèi)存,所述非易失性存儲介質(zhì)中存儲有所述電池監(jiān)控設(shè)備的系統(tǒng)內(nèi)存休眠快照,所述方法包括:
19、響應(yīng)于開機(jī)指令,獲取待還原的系統(tǒng)內(nèi)存休眠快照以及所述系統(tǒng)內(nèi)存休眠快照中各分片數(shù)據(jù)對應(yīng)的目的地址和各所述分片數(shù)據(jù)的分片編號,所述各分片數(shù)據(jù)的分片編號為各所述分片數(shù)據(jù)被存儲在所述非易失性存儲設(shè)備中的存儲順序;
20、從各所述分片數(shù)據(jù)中確定各分片數(shù)據(jù)組,其中,所述分片數(shù)據(jù)組中的各分片數(shù)據(jù)的分片編號連續(xù)以及各所述分片數(shù)據(jù)對應(yīng)的目的地址連續(xù);
21、針對每個所述分片數(shù)據(jù)組,向所述內(nèi)存請求以初始目的地址為起始、長度為第一拷貝長度的拷貝地址,其中,所述初始目的地址為所述分片數(shù)據(jù)組中分片編號最小的分片數(shù)據(jù)的目的地址,所述第一拷貝長度為所述分片數(shù)據(jù)組中所有分片數(shù)據(jù)的長度總和;
22、針對每個所述分片數(shù)據(jù)組,將所述分片數(shù)據(jù)組中的各分片數(shù)據(jù)按各所述分片編號順序拷貝至所述拷貝地址;
23、當(dāng)所述待還原的所述系統(tǒng)內(nèi)存休眠快照中的所有所述分片數(shù)據(jù)已完成拷貝,啟動所述電池監(jiān)控設(shè)備的系統(tǒng)。
24、第三方面,本技術(shù)實(shí)施例提供了一種快照還原裝置,所述裝置包括:
25、分片數(shù)據(jù)獲取模塊,用于獲取待還原的目標(biāo)快照以及所述目標(biāo)快照中各分片數(shù)據(jù)對應(yīng)的目的地址和各所述分片數(shù)據(jù)的分片編號,所述各分片數(shù)據(jù)的分片編號為各所述分片數(shù)據(jù)被存儲在非易失性存儲設(shè)備中的存儲順序;
26、分片數(shù)據(jù)組確定模塊,用于從各所述分片數(shù)據(jù)中確定各分片數(shù)據(jù)組,其中,所述分片數(shù)據(jù)組中的各分片數(shù)據(jù)的分片編號連續(xù)以及各所述分片數(shù)據(jù)對應(yīng)的目的地址連續(xù);
27、拷貝地址請求模塊,用于針對每個所述分片數(shù)據(jù)組,向內(nèi)存請求以初始目的地址為起始、長度為第一拷貝長度的拷貝地址,其中,所述初始目的地址為所述分片數(shù)據(jù)組中分片編號最小的分片數(shù)據(jù)的目的地址,所述第一拷貝長度為所述分片數(shù)據(jù)組中所有分片數(shù)據(jù)的長度總和;
28、分片數(shù)據(jù)組拷貝模塊,用于針對每個所述分片數(shù)據(jù)組,將所述分片數(shù)據(jù)組中的各分片數(shù)據(jù)按各所述分片編號順序拷貝至所述拷貝地址;
29、在一種可能的實(shí)施方式中,所述分片數(shù)據(jù)組確定模塊,包括:
30、判斷子模塊,用于判斷待拷貝分片數(shù)據(jù)的目的地址與相鄰分片數(shù)據(jù)的目的地址是否連續(xù),其中,所述待拷貝分片數(shù)據(jù)為所述目標(biāo)快照中的任一所述分片數(shù)據(jù),所述相鄰分片數(shù)據(jù)為編號與所述待拷貝分片數(shù)據(jù)相鄰的下一個分片數(shù)據(jù);
31、返回執(zhí)行子模塊,用于在待拷貝分片數(shù)據(jù)的目的地址與相鄰分片數(shù)據(jù)的目的地址連續(xù)時,將所述相鄰分片數(shù)據(jù)作為新的待拷貝分片數(shù)據(jù)返回執(zhí)行所述判斷待拷貝分片數(shù)據(jù)的目的地址與相鄰分片數(shù)據(jù)的目的地址是否連續(xù)的步驟,直至待拷貝分片數(shù)據(jù)的目的地址與相鄰分片數(shù)據(jù)的目的地址不連續(xù);
32、分片數(shù)據(jù)劃分子模塊,用于將各所述待拷貝分片數(shù)據(jù)劃分至同一分片數(shù)據(jù)組中;
33、在一種可能的實(shí)施方式中,每個所述分片數(shù)據(jù)的長度為預(yù)設(shè)長度,所述判斷子模塊,具體用于若相鄰分片數(shù)據(jù)的目的地址相對于所述待拷貝分片數(shù)據(jù)的目的地址偏移了所述預(yù)設(shè)長度,則確定所述待拷貝分片數(shù)據(jù)的目的地址與所述相鄰分片數(shù)據(jù)的目的地址是連續(xù)的;
34、在一種可能的實(shí)施方式中,所述裝置還包括:
35、長度增加模塊,用于在所述待拷貝分片數(shù)據(jù)的目的地址與相鄰分片數(shù)據(jù)的目的地址連續(xù)時,將第二拷貝長度自加所述預(yù)設(shè)長度,其中,所述第二拷貝長度初始時為所述預(yù)設(shè)長度;所述第一拷貝長度為待拷貝分片數(shù)據(jù)的目的地址與相鄰分片數(shù)據(jù)的目的地址不連續(xù)時的所述第二拷貝長度;
36、在一種可能的實(shí)施方式中,所述裝置還包括:
37、執(zhí)行模塊,用于在所述待還原的所述目標(biāo)快照中的所有所述分片數(shù)據(jù)未完成拷貝時,將與所述待拷貝分片數(shù)據(jù)的目的地址不連續(xù)的所述相鄰分片數(shù)據(jù)作為新的待拷貝分片數(shù)據(jù),并執(zhí)行所述判斷待拷貝分片數(shù)據(jù)的目的地址與相鄰分片數(shù)據(jù)的目的地址是否連續(xù)的步驟;
38、第一啟動模塊,用于在所述待還原的所述目標(biāo)快照中的所有所述分片數(shù)據(jù)已完成拷貝時,啟動系統(tǒng)。
39、第四方面,本技術(shù)實(shí)施例提供了用于電池監(jiān)控設(shè)備的快啟裝置,應(yīng)用于電池監(jiān)控設(shè)備,所述電池監(jiān)控設(shè)備包括非易失性存儲設(shè)備和內(nèi)存,所述非易失性存儲介質(zhì)中存儲有所述電池監(jiān)控設(shè)備的系統(tǒng)內(nèi)存休眠快照,所述裝置包括:
40、獲取模塊,用于響應(yīng)于開機(jī)指令,獲取待還原的系統(tǒng)內(nèi)存休眠快照以及所述系統(tǒng)內(nèi)存休眠快照中各分片數(shù)據(jù)對應(yīng)的目的地址和各所述分片數(shù)據(jù)的分片編號,所述各分片數(shù)據(jù)的分片編號為各所述分片數(shù)據(jù)被存儲在所述非易失性存儲設(shè)備中的存儲順序;
41、確定模塊,用于從各所述分片數(shù)據(jù)中確定各分片數(shù)據(jù)組,其中,所述分片數(shù)據(jù)組中的各分片數(shù)據(jù)的分片編號連續(xù)以及各所述分片數(shù)據(jù)對應(yīng)的目的地址連續(xù);
42、請求模塊,用于針對每個所述分片數(shù)據(jù)組,向所述內(nèi)存請求以初始目的地址為起始、長度為第一拷貝長度的拷貝地址,其中,所述初始目的地址為所述分片數(shù)據(jù)組中分片編號最小的分片數(shù)據(jù)的目的地址,所述第一拷貝長度為所述分片數(shù)據(jù)組中所有分片數(shù)據(jù)的長度總和;
43、拷貝模塊,用于針對每個所述分片數(shù)據(jù)組,將所述分片數(shù)據(jù)組中的各分片數(shù)據(jù)按各所述分片編號順序拷貝至所述拷貝地址;
44、第二啟動模塊,用于當(dāng)所述待還原的所述系統(tǒng)內(nèi)存休眠快照中的所有所述分片數(shù)據(jù)已完成拷貝,啟動所述電池監(jiān)控設(shè)備的系統(tǒng)。
45、第五方面,本技術(shù)實(shí)施例提供了一種電子設(shè)備,包括:
46、存儲器,用于存放計(jì)算機(jī)程序;
47、處理器,用于執(zhí)行存儲器上所存放的程序時,實(shí)現(xiàn)本技術(shù)中任一所述的快照還原方法。
48、第六方面,本技術(shù)實(shí)施例提供了一種電子設(shè)備,包括:
49、存儲器,用于存放計(jì)算機(jī)程序;
50、處理器,用于執(zhí)行存儲器上所存放的程序時,實(shí)現(xiàn)本技術(shù)中任一所述的用于電池監(jiān)控設(shè)備的快啟方法。
51、第七方面,本技術(shù)實(shí)施例提供了一種計(jì)算機(jī)可讀存儲介質(zhì),所述計(jì)算機(jī)可讀存儲介質(zhì)內(nèi)存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)本技術(shù)中任一所述的快照還原方法。
52、第八方面,本技術(shù)實(shí)施例提供了一種計(jì)算機(jī)可讀存儲介質(zhì),所述計(jì)算機(jī)可讀存儲介質(zhì)內(nèi)存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)本技術(shù)中任一所述的用于電池監(jiān)控設(shè)備的快啟方法。
53、本技術(shù)實(shí)施例提供的快照還原方法,獲取待還原的目標(biāo)快照以及目標(biāo)快照中各分片數(shù)據(jù)對應(yīng)的目的地址和各分片數(shù)據(jù)的分片編號;從各分片數(shù)據(jù)中確定各分片數(shù)據(jù)組,其中,分片數(shù)據(jù)組中的各分片數(shù)據(jù)的分片編號連續(xù)以及各分片數(shù)據(jù)對應(yīng)的目的地址連續(xù);針對每個分片數(shù)據(jù)組,向內(nèi)存請求以初始目的地址為起始、長度為第一拷貝長度的拷貝地址,其中,初始目的地址為分片數(shù)據(jù)組中分片編號最小的分片數(shù)據(jù)的目的地址,第一拷貝長度為分片數(shù)據(jù)組中所有分片數(shù)據(jù)的長度總和;針對每個分片數(shù)據(jù)組,將分片數(shù)據(jù)組中的各分片數(shù)據(jù)組拷貝至拷貝地址??梢?,本技術(shù)通過向內(nèi)存請求以初始目的地址為起始、長度為第一拷貝長度的拷貝地址,將各分片數(shù)據(jù)的分片編號連續(xù)且各分片數(shù)據(jù)的目的地址連續(xù)的分片數(shù)據(jù)組中的各分片數(shù)據(jù)按各分片編號順序依次拷貝至拷貝地址,減少了快照還原時對快照的拷貝次數(shù)以及快照還原的時間,提高了系統(tǒng)啟動的速度。
54、當(dāng)然,實(shí)施本技術(shù)的任一產(chǎn)品或方法并不一定需要同時達(dá)到以上所述的所有優(yōu)點(diǎn)。