本發明涉及計算機,尤其涉及一種數據存儲方法、裝置、電子設備和存儲介質。
背景技術:
1、在視頻監控云存儲中,視頻文件分為超級索引區、一級索引區、多個一一對應的二級索引區和數據區等多個存儲區域。以糾刪形式存儲的視頻文件不是順序io,而是隨機io,隨機io是指讀寫操作時間連續,但訪問地址不連續,即,會在各個存儲區域中寫入不同的數據,即讀寫操作的訪問地址不連續。
2、現有技術中,以糾刪形式存儲的視頻文件每次寫入磁盤時是以整個條帶對齊寫入,一般采用條帶回讀對齊,之后再寫入完整條帶對應的數據的方式,將各級索引區和數據區內的數據順序寫入磁盤中不同扇區中的不同條帶內,而順序寫入時偏移到不同數據區域進行條帶切換時,易引發大量隨機io,導致視頻數據存儲時io壓力極大,進而影響數據存儲性能。
技術實現思路
1、本發明提供一種數據存儲方法、裝置、電子設備和存儲介質,用以解決現有技術中數據存儲時io壓力極大,進而影響數據存儲性能的缺陷,大幅度降低數據存儲過程中的io壓力,提高數據存儲性能。
2、本發明提供一種數據存儲方法,包括:
3、在接收到客戶終端發送的用于存儲待存儲視頻數據的存儲指令的情況下,將所述待存儲視頻數據中目標數據區內的第一數據寫入數據條帶緩存,并將所述待存儲視頻數據中目標索引區內所述第一數據對應的第一索引寫入索引條帶緩存;
4、重復上述寫入操作,直至將所述目標數據區的數據順序寫入所述數據條帶緩存,并將所述目標索引區的索引順序寫入所述索引條帶緩存;
5、將所述數據條帶緩存中的已寫數據和所述索引條帶緩存中的已寫索引存儲至磁盤。
6、根據本發明提供的數據存儲方法,所述將所述待存儲視頻數據中目標索引區內所述第一數據對應的第一索引寫入索引條帶緩存之前,所述方法還包括:
7、判斷所述目標數據區對應的第一索引區的相鄰區域是否存在至少一個第二索引區,各所述第二索引區包括:一個子索引區或連續分布的至少兩個子索引區;
8、基于判斷結果,創建所述索引條帶緩存。
9、根據本發明提供的數據存儲方法,所述基于判斷結果,創建所述索引條帶緩存,包括:
10、在所述判斷結果包括所述第一索引區的相鄰區域不存在第二索引區的情況下,創建與所述第一索引區大小相同的所述索引條帶緩存;
11、在所述判斷結果包括在所述第一索引區的相鄰區域存在所述第二索引區的情況下,創建與所述第一索引區和各所述第二索引區的拼接大小相同的所述索引條帶緩存。
12、根據本發明提供的數據存儲方法,在將所述待存儲視頻數據中目標數據區內的第一數據寫入所述數據條帶緩存之前,所述方法還包括:
13、接收所述客戶終端發送的第一偏移信息,所述第一偏移信息包括第一偏移位置和第一待寫數據量;
14、基于所述第一偏移位置,確定所述待存儲視頻數據中的所述目標數據區;
15、基于所述第一偏移位置和所述第一待寫數據量,確定所述目標數據區內的所述第一數據。
16、根據本發明提供的數據存儲方法,所述目標索引區包括所述目標數據區對應的第一索引區或所述第一索引區相鄰的第二索引區;
17、所述將所述待存儲視頻數據中目標索引區內所述第一數據對應的第一索引寫入所述索引條帶緩存,包括:
18、接收所述客戶終端發送的第二偏移信息,所述第二偏移信息包括第二偏移位置和第二待寫數據量;
19、基于所述第二偏移位置,在確定所述待存儲視頻數據中的待寫入索引區為所述目標數據區對應的第一索引區或所述第二索引區的情況下,將所述第一索引區或所述第二索引區中的所述第一索引寫入所述索引條帶緩存,所述第一索引的數據量等于所述第二待寫數據量。
20、根據本發明提供的數據存儲方法,所述目標索引區包括除所述目標數據區對應的第一索引區或除所述第一索引區相鄰的第二索引區之外的第三索引區;
21、所述將所述待存儲視頻數據中目標索引區內所述第一數據對應的第一索引寫入所述索引條帶緩存,包括:
22、接收所述客戶終端發送的第二偏移信息,所述第二偏移信息包括第二偏移位置和第二待寫數據量;
23、將所述索引條帶緩存中的當前已寫索引寫入磁盤;
24、基于所述第三索引區的大小,或者,所述第三索引區和所述第三索引區的相鄰索引區的大小,調整所述索引條帶緩存的大小;
25、基于所述第二偏移位置,確定所述磁盤中的目標索引條帶;
26、將所述目標索引條帶中起始位置至所述第二偏移位置的有效條帶單元數據回讀至調整大小后的所述索引條帶緩存;
27、將所述第三索引區內所述第二偏移信息對應的所述第一索引寫入調整大小后的所述索引條帶緩存的所述有效條帶單元數據之后,所述第一索引的數據量大小等于所述第二待寫數據量。
28、根據本發明提供的數據存儲方法,所述將所述索引條帶緩存中的當前已寫索引寫入磁盤,包括:
29、在所述當前已寫索引小于所述索引條帶緩存的大小的情況下,在所述當前已寫索引之后補充無效數據,并將所述當前已寫索引和所述無效數據寫入所述磁盤,所述當前已寫索引和所述無效數據的數據量之和等于所述索引條帶緩存的大小。
30、本發明還提供一種數據存儲裝置,包括:
31、第一寫入模塊,用于在接收到客戶終端發送的用于存儲待存儲視頻數據的存儲指令的情況下,將所述待存儲視頻數據中目標數據區內的第一數據寫入數據條帶緩存,并將所述待存儲視頻數據中目標索引區內所述第一數據對應的第一索引寫入索引條帶緩存;
32、第二寫入模塊,用于重復上述寫入操作,直至將所述目標數據區的數據順序寫入所述數據條帶緩存,并將所述目標索引區的索引順序寫入所述索引條帶緩存;
33、存儲模塊,用于將所述數據條帶緩存中的已寫數據和所述索引條帶緩存中的已寫索引存儲至磁盤。
34、本發明還提供一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述程序時實現如上述任一種所述數據存儲方法。
35、本發明還提供一種非暫態計算機可讀存儲介質,其上存儲有計算機程序,該計算機程序被處理器執行時實現如上述任一種所述數據存儲方法。
36、本發明提供的數據存儲方法、裝置、電子設備和存儲介質,在接收到客戶終端發送存儲指令時,將待存儲視頻數據中目標數據區的第一數據寫入數據條帶緩存,并將第一數據對應的處于目標索引區的第一索引寫入索引條帶緩存,在重復進行寫入操作,直至目標數據區的數據全部寫入數據條帶緩存,并將目標索引區的索引全部寫入索引條帶緩存后,將數據條帶緩存中的已寫數據和索引條帶緩存中的已寫索引寫入磁盤,大幅度減少磁盤中寫入的區域切換時進行條帶回讀對齊,再寫入完整條帶時產生的大量隨機io,進而提高數據存儲性能。
1.一種數據存儲方法,其特征在于,包括:
2.根據權利要求1所述的數據存儲方法,其特征在于,所述將所述待存儲視頻數據中目標索引區內所述第一數據對應的第一索引寫入索引條帶緩存之前,所述方法還包括:
3.根據權利要求2所述的數據存儲方法,其特征在于,所述基于判斷結果,創建所述索引條帶緩存,包括:
4.根據權利要求1-3任一項所述的數據存儲方法,其特征在于,在將所述待存儲視頻數據中目標數據區內的第一數據寫入所述數據條帶緩存之前,所述方法還包括:
5.根據權利要求1-3任一項所述的數據存儲方法,其特征在于,所述目標索引區包括所述目標數據區對應的第一索引區或所述第一索引區相鄰的第二索引區;
6.根據權利要求1-3任一項所述的數據存儲方法,其特征在于,所述目標索引區包括除所述目標數據區對應的第一索引區或除所述第一索引區相鄰的第二索引區之外的第三索引區;
7.根據權利要求6所述的數據存儲方法,其特征在于,所述將所述索引條帶緩存中的當前已寫索引寫入磁盤,包括:
8.一種數據存儲裝置,其特征在于,包括:
9.一種電子設備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,其特征在于,所述處理器執行所述程序時實現如權利要求1-7任一項所述數據存儲方法。
10.一種非暫態計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現如權利要求1-7任一項所述數據存儲方法。