一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法
【專利摘要】本發(fā)明公開一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法。主要步驟:(1)初始化;(2)啟動(dòng)雙機(jī)實(shí)時(shí)視頻存儲(chǔ)模塊;(3)填充設(shè)備A、B的當(dāng)前數(shù)據(jù)文件,并修改對應(yīng)的索引文件和總文件表;(4)數(shù)據(jù)文件達(dá)到預(yù)定大小后,停止往數(shù)據(jù)文件存儲(chǔ)數(shù)據(jù)并修改對應(yīng)的索引文件和總文件表。根據(jù)預(yù)先的設(shè)定開始往下一個(gè)數(shù)據(jù)文件填充數(shù)據(jù),并修改對應(yīng)的索引文件和總文件表。同時(shí),啟動(dòng)雙機(jī)備份模塊,備份數(shù)據(jù)文件。(5)是否繼續(xù)視頻存儲(chǔ),如是,執(zhí)行(3);(6)停止數(shù)據(jù)存儲(chǔ)并等待當(dāng)前數(shù)據(jù)文件的備份完成,結(jié)束。本發(fā)明具有以下特點(diǎn):(1)雙機(jī)備份,防止某一臺設(shè)備損壞而導(dǎo)致的視頻資料的丟失;(2)能夠快速地進(jìn)行視頻數(shù)據(jù)的完全備份,有效的防止視頻數(shù)據(jù)包的丟失;(3)備份過程無需中斷實(shí)時(shí)視頻存儲(chǔ),實(shí)現(xiàn)無間斷存儲(chǔ)。本發(fā)明提高了視頻存儲(chǔ)的完整性、安全性和可靠性。
【專利說明】
一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法。
【背景技術(shù)】
[0002] 隨著現(xiàn)代網(wǎng)絡(luò)的逐漸普及,視頻監(jiān)控系統(tǒng)已經(jīng)普及應(yīng)用到人們生活中。視頻監(jiān)控 系統(tǒng)主要通過信息點(diǎn)的視頻采集,然后進(jìn)行網(wǎng)絡(luò)傳輸,將信息傳輸?shù)揭曨l處理中心進(jìn)行處 理,從而實(shí)現(xiàn)整體的視頻監(jiān)控及視頻存儲(chǔ)。在視頻監(jiān)控系統(tǒng)中,視頻存儲(chǔ)是其最重要的環(huán)節(jié) 之一。
[0003] 在現(xiàn)實(shí)生活中,各種不可控的因素均可能會(huì)造成視頻存儲(chǔ)的資料丟失。比如設(shè)備 的損壞而導(dǎo)致視頻存儲(chǔ)的資料丟失,甚至由于網(wǎng)絡(luò)原因而造成視頻存儲(chǔ)過程中出現(xiàn)丟幀現(xiàn) 象。在對監(jiān)控要求越來越高的今天,分鐘級的間隔視頻資料的丟失已不能滿足監(jiān)控的要求, 甚至在特殊一些特殊行業(yè),視頻資料的丟失率要求控制在秒級以下。如何克服視頻存儲(chǔ)過 程中不可控因素帶來的不良后果、最大限度降低視頻資料丟失的幾率是本技術(shù)領(lǐng)域當(dāng)前需 要解決的重要課題。
[0004] 針對上述的背景下,本發(fā)明提出了一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法,其特點(diǎn) 在于:(1)雙機(jī)備份,防止某一臺設(shè)備損壞而導(dǎo)致的視頻資料的丟失;(2)能夠快速地進(jìn)行視 頻數(shù)據(jù)的完全備份,有效的防止視頻數(shù)據(jù)包的丟失;(3)備份過程無需中斷實(shí)時(shí)視頻存儲(chǔ), 實(shí)現(xiàn)無間斷存儲(chǔ)。本發(fā)明提高了視頻存儲(chǔ)的完整性、安全性和可靠性。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明提出了一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法,其具體步驟如下:
[0006] S1、初始化。
[0007] 使用雙機(jī)實(shí)現(xiàn)互為熱備份,這兩臺設(shè)備(設(shè)備A、設(shè)備B)所有軟硬件配置均相同,并 同時(shí)接收同一視頻源進(jìn)行實(shí)時(shí)視頻存儲(chǔ)。其中,視頻采用固定長度文件存儲(chǔ)方式,其關(guān)鍵參 數(shù)有:
[0008] (1)設(shè)數(shù)據(jù)文件的大小固定大小為1^,每個(gè)數(shù)據(jù)文件對應(yīng)的索引文件的固定大小 為L2,一共有N個(gè)數(shù)據(jù)文件和N個(gè)索引文件。
[0009] "索引文件"內(nèi)信息以固定長度L3的格式存儲(chǔ),包括:"時(shí)間戳"、"數(shù)據(jù)文件內(nèi)偏 移"、"幀長度"、"索引文件內(nèi)偏移"、"上一幀索引文件內(nèi)偏移"、"下一幀索引文件內(nèi)偏移"、 "相同標(biāo)識"(〇表示沒檢測,1表示相同,2表示不同)等7個(gè)基本字段。
[0010] (2)-個(gè)總文件表,負(fù)責(zé)記錄當(dāng)前數(shù)據(jù)文件和索引文件的信息。
[0011] "總文件表"內(nèi)信息以固定長度L4的格式存儲(chǔ),包括:"數(shù)據(jù)文件"、"索引數(shù)據(jù)文 件"、"記錄開始時(shí)間"、"記錄結(jié)束時(shí)間"、"數(shù)據(jù)已記錄大小"、"索引已記錄大小"、"文件使用 標(biāo)識"(〇表示未使用、1表示正在使用、2表示已使用)、"備份標(biāo)識"(0表示未備份、1表示正在 備份,2表示已備份)等8個(gè)基本字段。
[0012] S2、啟動(dòng)雙機(jī)實(shí)時(shí)視頻存儲(chǔ)模塊。
[0013] S3、填充設(shè)備A、B的當(dāng)前數(shù)據(jù)文件,并修改對應(yīng)的索引文件和總文件表。假設(shè),設(shè)備 A、B的當(dāng)前數(shù)據(jù)文件為,對應(yīng)的索引文件為、兒^和總文件表為A tcltal、 Btotal 〇
[0014] S4、數(shù)據(jù)文件'達(dá)到預(yù)定大小L5(L5<L〇后,停止往數(shù)據(jù)文件aL、存 儲(chǔ)數(shù)據(jù)并修改對應(yīng)的索引文件£4^、和總文件表At〇tai、Bt〇tai。根據(jù)預(yù)先的設(shè)定開始往 下一個(gè)數(shù)據(jù)文件填充數(shù)據(jù),并修改對應(yīng)的索引文件和總文件表4*_1、8*_1。假設(shè)下一個(gè)數(shù) 據(jù)文件為<,",對應(yīng)的索引文件為6L,。同時(shí),啟動(dòng)雙機(jī)備份模塊,備份數(shù)據(jù)文 件 aL,U!、。
[0015] S5、是否繼續(xù)視頻存儲(chǔ),如是,執(zhí)行S3,否則執(zhí)行下一步。
[0016] S6、停止數(shù)據(jù)存儲(chǔ)并等待當(dāng)前數(shù)據(jù)文件的備份完成,結(jié)束。
[0017] 所述的步驟S4中"啟動(dòng)雙機(jī)備份模塊,備份數(shù)據(jù)文件14/,進(jìn)一步包括:
[0018] 首先,以A為主機(jī),B為副機(jī),先備份B上的數(shù)據(jù):
[0019] S4-1、通過TCP傳輸模塊,把設(shè)備B的索引文件14^傳輸?shù)皆O(shè)備A,獲取總文件表 Atotai的關(guān)于的信息并賦值給a te?P。
[0020] S4-2、創(chuàng)建臨時(shí)表Atemp、標(biāo)志位Flag = 0,取索引文件14^的第一個(gè)幀信息bcurrent、 取索引文件的第一個(gè)幀信息3。1^_。其中,"臨時(shí)表"的格式與"索引文件"相同。
[0021] S4-3、如果bcurrent的"相同標(biāo)識"為"1",執(zhí)行S4-8;否則執(zhí)行下一步。
[0022] S4-4、比較a current 的"時(shí)間戳" 和b_ent的"時(shí)間戳"。
[0023] S4-5、如果C ,把a(bǔ)current和bcurrent的相同標(biāo)志位設(shè)置為1,F(xiàn)lag = 0,取 a??沖"下一幀索引文件內(nèi)偏移"對應(yīng)的幀信息并賦值到a?rre5nt,轉(zhuǎn)到S4-10;
[0024] S4-6、如果C二麟勵(lì)g = 2同時(shí)成立或者CL > CL,絲J勺"上一 幀索引文件內(nèi)偏移"為"NULL"同時(shí)成立,進(jìn)入前插幀模塊,F(xiàn)lag = 0,轉(zhuǎn)到S4-10。
[0025] S4-7、如果朽喂! = 2同時(shí)成立,取acurren沖"上一幀索引文件內(nèi)偏 移"對應(yīng)的幀信息并賦值到a?rrent,F(xiàn)lag= 1,轉(zhuǎn)到S4-4。
[0026] S4-8、如果&&付喂=1同時(shí)成立或者圮二,&& 幀索引文件內(nèi)偏移"為"NULL"同時(shí)成立,進(jìn)入后插幀模塊,F(xiàn)lag = 0,轉(zhuǎn)到S4-10;
[0027] S4-9、如果廠細(xì)r!=丨同時(shí)成立,取accent中"下一幀索引文件內(nèi)偏 移"對應(yīng)的幀信息并賦值到a?rrent,F(xiàn)lag = 2,轉(zhuǎn)到S4-4。
[0028] S4-10、如果bcurrent的"下一幀索引文件內(nèi)偏移"不為"NULL",取b current中"下一幀索 引文件內(nèi)偏移"對應(yīng)的幀信息并賦值到b?mnt,轉(zhuǎn)S4-3;否則執(zhí)行下一步。
[0029] S4-11、按照臨時(shí)表Atemp的信息,要求設(shè)備B發(fā)送相應(yīng)的數(shù)據(jù)包,然后按順序填充在 設(shè)備A的數(shù)據(jù)文件上,根據(jù)atemP修改總文件表At〇tai。
[0030]同理,再一次以設(shè)備B為主機(jī),設(shè)備A為副機(jī),按照S4-1到S4-9的步驟備份設(shè)備A的 數(shù)據(jù)文件4_到設(shè)備B的數(shù)據(jù)文件。
[0031]所述的步驟S4-6中的"前插幀模塊"進(jìn)一步包括:
[0032] S4-6-1、根據(jù)acurrent、bcurrent、atemp生成新的幀信息anew,更新atemp。
[0033] S4-6-2、在索引文件添加anew后并修改其相關(guān)幀的幀信息,使anew的邏輯位置 位于a current 的上一幀。
[0034] S4-6-3、添加 b current 到臨時(shí)表Ate*P。
[0035] 所述的步驟S4-8中的"后插幀模塊"進(jìn)一步包括:
[0036] S4-8-1、根據(jù)acurrent、bcurrent、atemp生成新的幀信息anew,更新atemp。
[0037] S4-8-2、在索引文件添加anew后并修改其相關(guān)幀的幀信息,使anew的邏輯位置 位于a current 的下一幀。
[0038] S4-8-3、添加 b current 到臨時(shí)表Ate*P [0039]所述的步驟S4-6-1進(jìn)一步包括:
[0040] anew的"上一幀索引文件內(nèi)偏移"是acurrent的"上一幀索引文件內(nèi)偏移"的內(nèi)容;a new 的"下一幀索引文件內(nèi)偏移"是的"索引文件內(nèi)偏移"的內(nèi)容;anew的"索引文件內(nèi)偏 移"是atemp的"索引已記錄大小";anew的"數(shù)據(jù)文件內(nèi)偏移"是atemp的"數(shù)據(jù)已記錄大小" 的其他字段的內(nèi)容與b? rrent相同。atemp的"數(shù)據(jù)已記錄大小"更新為原值加上bcurrent的"幀長 度"后得到的值,a temp的"索引已記錄大小"更新為原值加上L3后得到的值。
[00411所述的步驟S4-6-2進(jìn)一步包括:
[0042]如果acurrent的"上一幀索引文件內(nèi)偏移"不為"NULL",則把a(bǔ)current的"上一幀索引文 件內(nèi)偏移"所指向的幀信息的"下一幀索引文件內(nèi)偏移"改為3_的"索引文件內(nèi)偏移"的內(nèi) 容,然后acurre5nt的"上一幀索引文件內(nèi)偏移"改為a new的"索引文件內(nèi)偏移"的內(nèi)容;否則,直 接把a(bǔ)?rre5nt的"上一幀索引文件內(nèi)偏移"改為a ne5W的"索引文件內(nèi)偏移"的內(nèi)容。
[0043]所述的步驟S4-8-1進(jìn)一步包括:
[0044] anew的"上一幀索引文件內(nèi)偏移"是acurrent的"索引文件內(nèi)偏移"的內(nèi)容;a new的"下 一幀索引文件內(nèi)偏移"是a?rre5nt的"下一幀索引文件內(nèi)偏移"的內(nèi)容;ane5W的"索引文件內(nèi)偏 移"是atemp的"索引已記錄大小";anew的"數(shù)據(jù)文件內(nèi)偏移"是atemp的"數(shù)據(jù)已記錄大小" 的其他字段的內(nèi)容與b? rrent相同。atemp的"數(shù)據(jù)已記錄大小"更新為原值加上bcurrent的"幀長 度"后得到的值,a temp的"索引已記錄大小"更新為原值加上L3后得到的值。
[0045]所述的步驟S4-8-2進(jìn)一步包括:
[0046]如果a?rre5nt的"下一幀索引文件內(nèi)偏移"不為"NULL",則把a(bǔ)?rre5nt的"下一幀索引文 件內(nèi)偏移"所指向的幀信息的"上一幀索引文件內(nèi)偏移"改為3_的"索引文件內(nèi)偏移"的內(nèi) 容,然后acurre5nt的"下一幀索引文件內(nèi)偏移"改為a new的"索引文件內(nèi)偏移"的內(nèi)容;否則,直 接把a(bǔ)?rre5nt的"下一幀索引文件內(nèi)偏移"改為a ne5W的"索引文件內(nèi)偏移"的內(nèi)容。
【附圖說明】
[0047]圖1為本發(fā)明的工作流程圖。
【具體實(shí)施方式】
[0048]下面將結(jié)合本發(fā)明中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描 述。
[0049] 第一步、初始化。使用雙機(jī)實(shí)現(xiàn)互為熱備份,這兩臺設(shè)備(設(shè)備A、設(shè)備B)所有軟硬 件配置均相同,并同時(shí)接收同一視頻源進(jìn)行實(shí)時(shí)視頻存儲(chǔ)。
[0050] 第二步、啟動(dòng)雙機(jī)實(shí)時(shí)視頻存儲(chǔ)模塊。
[0051] 第三步、填充設(shè)備A、B的當(dāng)前數(shù)據(jù)文件,并修改對應(yīng)的索引文件和總文件表。假設(shè), 設(shè)備A、B的當(dāng)前數(shù)據(jù)文件為,對應(yīng)的索引文件為和總文件表為At-i、 Btotal 〇
[0052] 第四步、數(shù)據(jù)文件4_、私?達(dá)到預(yù)定大小UasSU)后,停止往數(shù)據(jù)文件 存儲(chǔ)數(shù)據(jù)并修改對應(yīng)的索引文件6ifa、和總文件表At〇tai、Bt〇tai。根據(jù)預(yù)先 的設(shè)定開始往下一個(gè)數(shù)據(jù)文件填充數(shù)據(jù),并修改對應(yīng)的索引文件和總文件表At〇tai、Bt〇tai。 假設(shè)下一個(gè)數(shù)據(jù)文件為^>"、,對應(yīng)的索引文件為《^?、同時(shí),啟動(dòng)雙機(jī)備份模 塊,備份數(shù)據(jù)文件
[0053] 其中"啟動(dòng)雙機(jī)備份模塊,備份數(shù)據(jù)文件圮"""的過程如以下實(shí)例所示:
[0054] S4-1、通過TCP傳輸模塊,把設(shè)備B的索引文件Ifec傳輸?shù)皆O(shè)備A,獲取總文件表 Atotal的關(guān)于的彳曰息并賦值給atemp 〇
[0055] 假設(shè)、私fa、atemp分別如附圖表1、表2、表3所示。同時(shí),假設(shè)索引文件固定長度 L3 = 20
[0056] S4-2、創(chuàng)建臨時(shí)表Atemp、標(biāo)志位Flag = 0,取索引文件的第一個(gè)幀信息bcurrent、 取索引文件的第一個(gè)幀信息acur_。其中,"臨時(shí)表"的格式與"索引文件"相同。
[0057] S4-3、如果bcurrent的"相同標(biāo)識"為"1",執(zhí)行S4-8;否則執(zhí)行下一步。
[0058] S4-4、比較a current 的"時(shí)間戳"《=^Pbc^nt的"時(shí)間戳"拉:^。
[0059] S4-5、如果,把a(bǔ)ccent和bcurrent的相同標(biāo)志位設(shè)置為 1,F(xiàn)lag = 0,取 a?rre5nt中"下一幀索引文件內(nèi)偏移"對應(yīng)的幀信息并賦值到a?rre5nt,轉(zhuǎn)到S4-9;
[0060] 假設(shè)acurrent為表1中第2行幀信息,bcurrent為表2中第2行幀信息。因?yàn)?=2,把 a current 和b current 的相同標(biāo)志位設(shè)置為1,F(xiàn)Iag = 0。acurrent的"下一幀索引 文件內(nèi)偏移"為"40",指向的幀信息在索引文件內(nèi)偏移為40,也就是表1中第3行幀信息,因 此把表1中第3行幀信息賦值給a? rre5nt。
[0061 ] S4-6、如果 <二> &&他g = 2同時(shí)成立或者<二> CL, 的"上 一幀索引文件內(nèi)偏移"為"NULL"同時(shí)成立,進(jìn)入前插幀模塊,F(xiàn)lag = 0,轉(zhuǎn)到S4-10。
[0062]其中,"前插幀模塊"包括:
[0063] S4-6-1、根據(jù)acurrent、bcurrent、atemp生成新的幀信息anew,更新atemp。
[0064] 假設(shè)acurrent為表1第1行幀信息,b?rrent為表2第1行幀信息,ate_的"數(shù)據(jù)已記錄大 小為"15",a-的"索引已記錄大小為"100"的"上一幀索引文件內(nèi)偏移"是acurrent的"上 一幀索引文件內(nèi)偏移"的內(nèi)容,即為"NULL" ; ane5W的"下一幀索引文件內(nèi)偏移"是a?rre5nt的"索 引文件內(nèi)偏移"的內(nèi)容,即為"〇";a new的"索引文件內(nèi)偏移"是atemp的"索引已記錄大小,即為 "100" ;anew的"數(shù)據(jù)文件內(nèi)偏移"是atemp的"已記錄大小",即為"15" ;anew的其他字段的內(nèi)容 與bcurrent相同;atemp的"數(shù)據(jù)已記錄大小"更新為原值加上b current的"幀長度"后得到的值,即 "15+1 = 16" ; atemp的"索引已記錄大小"更新為原值加上L3后得到的值,即"100+20 = 120"。因 此生成的ane5W如表4的第6行幀信息所示。
[0065] S4-6-2、在索引文件^4^添加anew后并修改其相關(guān)幀的幀信息,使a new的邏輯位置 位于a current 的上一幀。
[0066] 因?yàn)閍current的"上一幀索引文件內(nèi)偏移"為"NULL",因此只需把a(bǔ)current的"上一幀索 弓丨文件內(nèi)偏移"改為的"索引文件內(nèi)偏移",即為"100",如表4的第1行幀信息所示。
[0067] S4-6-3、添加 b current 到臨時(shí)表Ate*P。
[0068] S4-7、如果&&對呢! = 2同時(shí)成立,取acurren沖"上一幀索引文件內(nèi)偏 移"對應(yīng)的幀信息并賦值到a?rrent,F(xiàn)lag= 1,轉(zhuǎn)到S4-4。
[0069] 假設(shè)acur_為表1第3行幀信息,acurrent中"上一幀索引文件內(nèi)偏移"為"20",指向的 幀信息為表1中第2行幀信息,所以把表1中第2行幀信息賦值給a? rre5nt。
[0070] S4-8、如果&& M4 同時(shí)成立或者< CL && ?",謂,的"下一 幀索引文件內(nèi)偏移"為"NULL"同時(shí)成立,進(jìn)入后插幀模塊,F(xiàn)lag = 0,轉(zhuǎn)到S4-10。
[0071]其中,"后插幀模塊"包括:
[0072] S4-8-1、根據(jù)acurrent、bcurrent、atemp生成新的幀信息anew,更新atemp。
[0073] 假設(shè)acurrent為表1第2行幀信息,bcurrent為表2第3行幀信息,a temp的"數(shù)據(jù)已記錄大 小為"16",取_的"索引已記錄大小為"120"的"上一幀索引文件內(nèi)偏移"是acurrent的"索 引文件內(nèi)偏移"的內(nèi)容,即為"20" ; ane5W的"下一幀索引文件內(nèi)偏移"是a?rrent的"下一幀索引 文件內(nèi)偏移"的內(nèi)容,即為"40" ; anew的"索引文件內(nèi)偏移"是atemp的"索引已記錄大小",即為 "120" ;anew的"數(shù)據(jù)文件內(nèi)偏移"是atemp的"數(shù)據(jù)已記錄大小",即為"16" ;anew的其他字段的 內(nèi)容與bcurrent相同;atemp的"數(shù)據(jù)已記錄大小"更新為原值加上13__的"幀長度"后得到的 值,8卩"16+3 = 19",&^ = 19你(^的"索引已記錄大小"更新為原值加上1^后得到的值,即 "120+20 = 140"。因此生成的anew如表4的第7行幀信息所示。
[0074] S4-8-2、在索引文件添加ane5W后并修改其相關(guān)幀的幀信息,使a ne5W的邏輯位置 位于a current 的下一幀。
[0075] 因?yàn)閍?rre5nt的"下一幀索引文件內(nèi)偏移"不為"NULL",a?rre5nt的"下一幀索引文件內(nèi) 偏移"為"40",指向的幀信息在索引文件內(nèi)偏移為40,也就是表1中第3行幀信息,其"上一幀 索引文件內(nèi)偏移"改為a new的"索引文件內(nèi)偏移"的內(nèi)容,即"120" ;然后acurre5nt的"下一幀索 引文件內(nèi)偏移"改為an?的"索引文件內(nèi)偏移"的內(nèi)容,8卩"120"。
[0076] S4-8-3、添加 b current 到臨時(shí)表Ate*P
[0077] S4-9、如果</):=,,,&&戶7喂! = 1同時(shí)成立,取acurrent中"下一幀索引文件內(nèi)偏 移"對應(yīng)的幀信息并賦值到a?rrent,F(xiàn)lag = 2,轉(zhuǎn)到S4-4。
[0078] S4-10、如果bcurrent的"下一幀索引文件內(nèi)偏移"不為"NULL",取b current中"下一幀索 引文件內(nèi)偏移"對應(yīng)的幀信息并賦值到b?mnt,轉(zhuǎn)S4-3;否則執(zhí)行下一步。
[0079] S4-11、按照臨時(shí)表Atemp的信息,要求設(shè)備B發(fā)送相應(yīng)的數(shù)據(jù)包,然后按順序填充在 設(shè)備A的數(shù)據(jù)文件上,根據(jù)atemp修改總文件表At〇t ai。
[0080] 同理,再一次以設(shè)備B為主機(jī),設(shè)備A為副機(jī),按照S4-1到S4-9的步驟備份設(shè)備A的 數(shù)據(jù)文件到設(shè)備B的數(shù)據(jù)文件/>i, u。
[0081] 第五步、是否繼續(xù)視頻存儲(chǔ),如是,執(zhí)行S3,否則執(zhí)行下一步。
[0082] 第六步、停止數(shù)據(jù)存儲(chǔ)并等待當(dāng)前數(shù)據(jù)文件的備份完成,結(jié)束。
[0083] 表的內(nèi)容
[0087] 表3 atemp的內(nèi)容
[0088]
[0089]表4備份后的內(nèi)容
[0098]以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點(diǎn)。本行業(yè)的技術(shù) 人員應(yīng)該了解,本發(fā)明不受上述實(shí)施例的限制,上述實(shí)施例和說明書中描述的只是說明本 發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會(huì)有各種變化和改進(jìn),這些變 化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi)。本發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書及其 等效物界定。
【主權(quán)項(xiàng)】
1. 一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法,其特征在于,使用雙機(jī)實(shí)現(xiàn)互為熱備份,包括 以下步驟: 51、 初始化設(shè)備A和B; 52、 啟動(dòng)雙機(jī)實(shí)時(shí)視頻存儲(chǔ)模塊; 53、 填充設(shè)備A、B的當(dāng)前數(shù)據(jù)文件,并修改對應(yīng)的索引文件和總文件表,總文件表,負(fù)責(zé) 記錄當(dāng)前數(shù)據(jù)文件和索引文件的信息;設(shè)備A、B的當(dāng)前數(shù)據(jù)文件為和 3,%對應(yīng)的索引 文件為Amfei 和總文件表為Atotal、Btotal ; 54、 設(shè)備A的當(dāng)前數(shù)據(jù)文件《1^、設(shè)備B的當(dāng)前數(shù)據(jù)文件達(dá)到預(yù)定大小L5后,UfU,數(shù) 據(jù)文件的大小固定大小為U,停止往當(dāng)前數(shù)據(jù)文件存儲(chǔ)數(shù)據(jù)并修改對應(yīng)的索引 文件^4**、和總文件表^。^、8_31,根據(jù)預(yù)先的設(shè)定開始往下一個(gè)數(shù)據(jù)文件填充數(shù)據(jù), 并修改對應(yīng)的索引文件和總文件表4*。^1、8*_1;假設(shè)下一個(gè)數(shù)據(jù)文件為《^、私, %對應(yīng)的 索引文件為同時(shí),啟動(dòng)雙機(jī)備份模塊,備份當(dāng)前數(shù)據(jù)文件紀(jì)_; 55、 是否繼續(xù)視頻存儲(chǔ),如是,執(zhí)行S3,否則執(zhí)行下一步; 56、 停止數(shù)據(jù)存儲(chǔ)并等待當(dāng)前數(shù)據(jù)文件的備份完成,結(jié)束。2. 根據(jù)權(quán)利要求1所述的一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法,其特征在于,設(shè)備A、設(shè) 備B所有軟硬件配置均相同,并同時(shí)接收同一視頻源進(jìn)行實(shí)時(shí)視頻存儲(chǔ)。3. 根據(jù)權(quán)利要求2所述的一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法,其特征在于,其中,視 頻采用固定長度文件存儲(chǔ)方式,其關(guān)鍵參數(shù)有:(1)設(shè)數(shù)據(jù)文件的大小固定大小為U,每個(gè) 數(shù)據(jù)文件對應(yīng)的索引文件的固定大小為L 2,一共有N個(gè)數(shù)據(jù)文件和N個(gè)索引文件; "索引文件"內(nèi)信息以固定長度L3的格式存儲(chǔ),包括7個(gè)基本字段:"時(shí)間戳"、"數(shù)據(jù)文件 內(nèi)偏移"、"幀長度"、"索引文件內(nèi)偏移"、"上一幀索引文件內(nèi)偏移"、"下一幀索引文件內(nèi)偏 移"、"相同標(biāo)識"〇表示沒檢測,1表示相同,2表示不同; "總文件表"內(nèi)信息以固定長度L4的格式存儲(chǔ),包括8個(gè)基本字段:"數(shù)據(jù)文件"、"索引數(shù) 據(jù)文件"、"記錄開始時(shí)間"、"記錄結(jié)束時(shí)間"、"數(shù)據(jù)已記錄大小"、"索引已記錄大小"、"文件 使用標(biāo)識"〇表示未使用、1表示正在使用、2表示已使用、"備份標(biāo)識"0表示未備份、1表示正 在備份,2表示已備份。4. 根據(jù)權(quán)利要求3所述的一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法,其特征在于,所述的步 驟S4中"啟動(dòng)雙機(jī)備份模塊,備份數(shù)據(jù)文件",進(jìn)一步包括: 首先,以A為主機(jī),B為副機(jī),先備份B上的數(shù)據(jù)文件: S4-1、通過TCP傳輸模塊,把設(shè)備B的索引文件足#傳輸?shù)皆O(shè)備A,獲取總文件表Atcltal的關(guān) 于的信息并賦值給&^; S4-2、創(chuàng)建臨時(shí)表Atemp、標(biāo)志位Flag = 0,取索引文件U勺第一個(gè)幀信息bcurrent、取索引 文件的第一個(gè)幀信息;其中,"臨時(shí)表"的格式與"索引文件"相同; S4-3、如果b?rrent的"相同標(biāo)識"為"1",執(zhí)行S4-8;否則執(zhí)行下一步; S4-4、比較acurrent的"時(shí)間戳"iCL,和bcurrent的"時(shí)間戳" ; S4-5、如果= ¥=",,把a(bǔ)current和bcurrent的相同標(biāo)志位設(shè)置為 1,F(xiàn)lag = 0,取acurrent 中"下一幀索引文件內(nèi)偏移"對應(yīng)的幀信息并賦值到,轉(zhuǎn)到S4-10; S4-6、如果> 6=,"&&Flag = 2同時(shí)成立或者<:" > 文件內(nèi)偏移"為"NULL"同時(shí)成立,進(jìn)入前插幀模塊,F(xiàn)lag = 0,轉(zhuǎn)到S4-10; S4-7、如果>/>=,",&&Flag! = 2同時(shí)成立,取acurrent中"上一幀索引文件內(nèi)偏移"對 應(yīng)的幀信息并賦值到a〇jrrent,F(xiàn)lag= 1,轉(zhuǎn)到S4-4; S4-8、如果<6=",&&Flag=l同時(shí)成立或者"下一幀索引 文件內(nèi)偏移"為"NULL"同時(shí)成立,進(jìn)入后插幀模塊,F(xiàn)lag = 0,轉(zhuǎn)到S4-10; S4-9、如果C <C^&Flag! = 1同時(shí)成立,取acurrent中"下一幀索引文件內(nèi)偏移"對 應(yīng)的幀信息并賦值到acurrent,F(xiàn)lag = 2,轉(zhuǎn)到S4-4; S4-10、如果b?rre5nt的"下一幀索引文件內(nèi)偏移"不為"NULL",取b?rre5nt中"下一幀索引文 件內(nèi)偏移"對應(yīng)的幀信息并賦值到b?mnt,轉(zhuǎn)S4-3;否則執(zhí)行下一步; S4-11、按照臨時(shí)表Atemp的信息,要求設(shè)備B發(fā)送相應(yīng)的數(shù)據(jù)包,然后按順序填充在設(shè)備A 的數(shù)據(jù)文件£4;£1上,根據(jù)atemp修改總文件表Atotal ; 同理,再一次以設(shè)備B為主機(jī),設(shè)備A為副機(jī),按照S4-1到S4-9的步驟備份設(shè)備A的數(shù)據(jù) 文件《^到設(shè)備B的數(shù)據(jù)文件I。5. 根據(jù)權(quán)利要求4所述的一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法,其特征在于,所述的步 驟S4-6中的"前插幀模塊"進(jìn)一步包括: S4_6_l、根據(jù)Elcurrent、bcurrent、Eltemp生成新的幀f曰息Elnew,更新Eltemp ; S4-6-2、在索引文件添加 ane5W后并修改其相關(guān)幀的幀信息,使ane5W的邏輯位置位于 Elcurrent的上中貞; S4-6-3、添加 b current 到臨時(shí)表Ate?P。6. 根據(jù)權(quán)利要求4所述的一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法,其特征在于,所述的步 驟S4-8中的"后插幀模塊"進(jìn)一步包括: S4_8_l、根據(jù)acurrent、bcurrent、atemp生成新的幀彳曰息3new,更新atemp ; S4-8-2、在索引文件^4^添加 ane5W后并修改其相關(guān)幀的幀信息,使ane5W的邏輯位置位于 Scurrent的下'~*中貞; S4-8-3、添加 b current 到臨時(shí)表Ate?P。7. 根據(jù)權(quán)利要求5所述的一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法,其特征在于,所述的步 驟S4-6-1進(jìn)一步包括: anew的"上一幀索引文件內(nèi)偏移"是acurre5nt的"上一幀索引文件內(nèi)偏移"的內(nèi)容;a new的"下 一幀索引文件內(nèi)偏移"是a?rre5nt的"索引文件內(nèi)偏移"的內(nèi)容;ane5W的"索引文件內(nèi)偏移"是 atemp的"索引已記錄大小";anew的"數(shù)據(jù)文件內(nèi)偏移"是atemp的"數(shù)據(jù)已記錄大小";a new的其他 字段的內(nèi)容與b?nt相同;atemp的"數(shù)據(jù)已記錄大小"更新為原值加上13__的"幀長度"后 得到的值,a temp的"索引已記錄大小"更新為原值加上L3后得到的值。8. 根據(jù)權(quán)利要求5所述的一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法,其特征在于,所述的步 驟S4-6-2進(jìn)一步包括: 如果acurrent的"上一幀索引文件內(nèi)偏移"不為"NULL",則把a(bǔ)current的"上一幀索引文件內(nèi) 偏移"所指向的幀信息的"下一幀索引文件內(nèi)偏移"改為&1^的"索引文件內(nèi)偏移"的內(nèi)容,然 后a? rre5nt的"上一幀索引文件內(nèi)偏移"改為ane5W的"索引文件內(nèi)偏移"的內(nèi)容;否則,直接把 a?rre5nt的"上一幀索引文件內(nèi)偏移"改為ane5W的"索引文件內(nèi)偏移"的內(nèi)容。9. 根據(jù)權(quán)利要求6所述的一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法,其特征在于,所述的步 驟S4-8-1進(jìn)一步包括: anew的"上一幀索引文件內(nèi)偏移"是acurre5nt的"索引文件內(nèi)偏移"的內(nèi)容;a new的"下一幀索 引文件內(nèi)偏移"是的"下一幀索引文件內(nèi)偏移"的內(nèi)容;anew的"索引文件內(nèi)偏移"是 atemp的"索引已記錄大小";anew的"數(shù)據(jù)文件內(nèi)偏移"是atemp的"數(shù)據(jù)已記錄大小";a new的其他 字段的內(nèi)容與b?nt相同;atemp的"數(shù)據(jù)已記錄大小"更新為原值加上13__的"幀長度"后 得到的值,a temp的"索引已記錄大小"更新為原值加上L3后得到的值。10. 根據(jù)權(quán)利要求6所述的一種基于雙機(jī)熱備份的視頻存儲(chǔ)方法,其特征在于,所述的 步驟S4-8-2進(jìn)一步包括: 如果a?rre5nt的"下一幀索引文件內(nèi)偏移"不為"NULL",則把a(bǔ)?rre5nt的"下一幀索引文件內(nèi) 偏移"所指向的幀信息的"上一幀索引文件內(nèi)偏移"改為&1^的"索引文件內(nèi)偏移"的內(nèi)容,然 后a? rre5nt的"下一幀索引文件內(nèi)偏移"改為ane5W的"索引文件內(nèi)偏移"的內(nèi)容;否則,直接把 a?rre5nt的"下一幀索引文件內(nèi)偏移"改為ane5W的"索引文件內(nèi)偏移"的內(nèi)容。
【文檔編號】G06F11/14GK106055663SQ201610389738
【公開日】2016年10月26日
【申請日】2016年6月3日
【發(fā)明人】蔡延光, 戚遠(yuǎn)航, 蔡顥
【申請人】廣東工業(yè)大學(xué)