專利名稱:一種分布式文件系統(tǒng)及其歸檔分片的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲技術(shù),尤其涉及一種分布式文件系統(tǒng)及其歸檔分片的方法。
背景技術(shù):
分布式文件系統(tǒng)廣泛應(yīng)用于IPTV(Internet Protocol Television,交互式網(wǎng)絡(luò) 電視)、視頻等業(yè)務(wù)的服務(wù)器中,用于管理單個節(jié)點(每個節(jié)點為一個區(qū)域或者一部分用戶 提供服務(wù))內(nèi)數(shù)據(jù)的存儲和讀取。分布式文件系統(tǒng)對應(yīng)的上層業(yè)務(wù)目前主要有VOD (Video on Demand)視頻點播和TV0D(TV on Demand)時移頻道的錄制回看業(yè)務(wù)。TV0D業(yè)務(wù)將時移 頻道上一段節(jié)目做成錄制節(jié)目后,在電子節(jié)目單上顯示,以滿足用戶能夠隨意點播錯過的 精彩節(jié)目,還可以選擇幾天前的節(jié)目。對于TV0D時移頻道的錄制回看業(yè)務(wù),業(yè)務(wù)層面設(shè)定 了回滾時間,超過回滾時間的錄制分片都要被業(yè)務(wù)下發(fā)命令并被文件系統(tǒng)強制刪除掉。在 系統(tǒng)存儲空間一定的情況下,可以存儲一定時長的頻道節(jié)目。但對于某些特定的節(jié)目,業(yè)務(wù) 層面要求在回滾時間結(jié)束后還能繼續(xù)保留不被刪除,以便用戶進行特殊回看。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是,提供一種分布式文件系統(tǒng)及其歸檔分片的方法,能 適應(yīng)業(yè)務(wù)層面要求的在回滾時間結(jié)束后還能繼續(xù)保留已有分片的需求。為解決上述技術(shù)問題,本發(fā)明提供一種分布式文件系統(tǒng)歸檔分片的方法,所述分 片為交互式網(wǎng)絡(luò)電視的時移電視業(yè)務(wù)和錄制節(jié)目點播業(yè)務(wù)的文件分片,包括所述文件系 統(tǒng)根據(jù)接收到的歸檔分片請求,查詢請求歸檔的分片是否存在;如果所述分片不存在,取消 歸檔并結(jié)束;如果所述分片存在,進行改名歸檔。所述改名歸檔包括判斷所述分片當(dāng)前是否被使用;若所述分片當(dāng)前未被使用, 則直接修改所述分片的文件名;若所述分片當(dāng)前正被使用,則進行延時改名處理。一種實施例中所述延時改名處理包括延時預(yù)定時間后,查詢所述分片是否存在; 若所述分片不存在,則取消歸檔并結(jié)束;若所述分片存在,則強制修改所述分片的文件名字。另一種實施例中所述延時改名處理包括步驟1,延時預(yù)定時間后,查詢所述分片是否存在;若所述分片不存在,則取消歸 檔并結(jié)束;若所述分片存在,則執(zhí)行步驟2 ;步驟2,判斷所述分片當(dāng)前是否被使用;若所述分片當(dāng)前未被使用,則直接修改所 述分片的文件名;若所述分片當(dāng)前正被使用,則返回所述步驟1。又一種實施例中,上述預(yù)設(shè)時間為12小時。再一種實施例中,所述改名歸檔之后還包括將所述分片的文件名和路徑信息返 回給所述歸檔分片請求的發(fā)送方。對應(yīng)上述方法,本發(fā)明還提供一種分布式文件系統(tǒng),用于對交互式網(wǎng)絡(luò)電視的時 移電視業(yè)務(wù)或錄制節(jié)目點播業(yè)務(wù)的業(yè)務(wù)文件分片進行分片歸檔,所述文件系包括改名歸檔模塊;所述改名歸檔模塊,用于根據(jù)接收的歸檔分片請求,查詢所述分片是否存在,如果 所述分片不存在,取消歸檔并結(jié)束,如果所述分片存在,則進行改名歸檔。所述改名歸檔模塊還用于在進行改名歸檔時判斷所述分片當(dāng)前是否被使用;若所 述分片當(dāng)前未被使用,則直接修改所述分片的文件名;若所述分片當(dāng)前正被使用,則進行延 時改名處理。一種實施例中所述改名歸檔模塊是按照如下方式進行所述延時改名處理的延時 預(yù)定時間后,查詢所述分片是否存在;若所述分片不存在,則取消歸檔并結(jié)束;若所述分片 存在,則強行強制修改所述分片的文件名字。另一種實施例中所述改名歸檔模塊是按照如下方式進行所述延時改名處理的步驟1,延時預(yù)定時間后,查詢所述分片是否存在;若所述分片不存在,則取消歸 檔并結(jié)束;若所述分片存在,則執(zhí)行步驟2 ;步驟2,判斷所述分片當(dāng)前是否被使用;若所述分片當(dāng)前未被使用,則直接修改所 述分片的文件名;若所述分片當(dāng)前正被使用,則返回所述步驟1。本發(fā)明的有益效果是(1)通過文件系統(tǒng)對歸檔請求中的分片進行判斷是否存在,在存在時對該分片進 行改名歸檔,可以保證在業(yè)務(wù)回滾時間之后也能保留需要的分片,適應(yīng)業(yè)務(wù)層面要求的在 回滾時間結(jié)束后還能繼續(xù)保留已有分片的需求;(2)實施例中通過在改名前判斷分片是否正被使用后在決定是否繼續(xù)改名,可以 避免由于分片還在讀寫而引起的改名失敗。
圖1是本發(fā)明歸檔分片方法的一種實施例的流程示意圖;圖2是本發(fā)明歸檔分片方法的另一種實施例的流程示意圖;圖3是本發(fā)明歸檔分片方法實施例的軟改名流程示意圖;圖4是本發(fā)明歸檔分片方法實施例中文件系統(tǒng)軟改名的內(nèi)部實現(xiàn)示意圖。
具體實施例方式下面通過具體實施方式
結(jié)合附圖對本發(fā)明作進一步詳細(xì)說明。為解決交互式網(wǎng)絡(luò)電視的時移電視業(yè)務(wù)和錄制節(jié)目點播業(yè)務(wù)的文件分片在回滾 時間結(jié)束后還能繼續(xù)保留不被刪除,本發(fā)明歸檔分片實施例的處理思路是根據(jù)接收到的 歸檔分片請求,查詢請求歸檔的分片是否存在;如果分片不存在,取消歸檔并結(jié)束;如果分 片存在,進行改名歸檔。在存儲的分片沒有被讀取時,對其進行改名后將其移動到不同的存 儲目錄下供業(yè)務(wù)回看使用。雖然這樣的操作可能在改名時會對業(yè)務(wù)有影響,但在改名后如 果用戶再回看原來的時移分片,就會被重新定向到新改名后的文件。實施例中的改名歸檔包括判斷分片當(dāng)前是否被使用;若分片當(dāng)前未被使用,則 直接修改分片的文件名;若分片當(dāng)前正被使用,則進行延時改名處理。本發(fā)明方法實施例考 慮在回滾時間結(jié)束后對分片進行多次嘗試改名。如果分片在使用,則延時后開始新一輪嘗 試改名的操作,如圖1所示?;蛘?,如圖2所示,該改名操作最多嘗試兩次,在第二次試圖改 名失敗時,強行對分片進行改名。通過使用這種新的改名策略,可以避免由于分片還在被讀寫而引起的改名失敗。圖1所示實施例中進行的延時改名處理包括步驟1,延時預(yù)定時間后,查詢分片是否存在;若分片不存在,則取消歸檔并結(jié)束; 若分片存在,則執(zhí)行步驟2;步驟2,判斷分片當(dāng)前是否被使用;若分片當(dāng)前未被使用,則直接修改分片的文件 名;若分片當(dāng)前正被使用,則返回所述步驟1。圖2所示實施例中進行的延時改名處理包括延時預(yù)定時間后,查詢分片是否存 在;若分片不存在,則取消歸檔并結(jié)束;若分片存在,則強制修改所述分片的文件名字。本發(fā)明業(yè)務(wù)歸檔分片方法的一種實施例的流程如圖1所示,本文稱這種流程為硬 改名策略,包括如下步驟101、業(yè)務(wù)層發(fā)起時移分片歸檔請求;102、文件系統(tǒng)中的數(shù)據(jù)庫在文件表中查詢該時移分片文件是否存在;103、若數(shù)據(jù)表中不存在該時移分片文件,則數(shù)據(jù)庫向業(yè)務(wù)返回查找失敗,取消歸 檔;104、若數(shù)據(jù)庫查詢到該時移分片文件存在,則查看到該分片當(dāng)前是否被讀取查 看;105、若該分片當(dāng)前未被讀取查看,則直接將該文件改名;106、若該分片當(dāng)前正被讀取查看,則延時休眠一段時間后重新從步驟102開始執(zhí) 行。本發(fā)明業(yè)務(wù)歸檔分片方法的另一種實施例的流程如圖2所示,本文稱這種流程為 軟改名策略,包括如下步驟201、業(yè)務(wù)層發(fā)起時移分片歸檔請求;202、文件系統(tǒng)中的數(shù)據(jù)庫在文件表中查詢該時移分片文件是否存在;203、若數(shù)據(jù)表中不存在該時移分片文件,則數(shù)據(jù)庫向業(yè)務(wù)返回查找失?。?04、業(yè)務(wù)收到數(shù)據(jù)庫查詢文件失敗消息后,取消該時移分片歸檔請求;205、若數(shù)據(jù)庫查詢到該時移分片文件存在,則向文件系統(tǒng)下發(fā)軟改名命令,文件 系統(tǒng)在全局文件句柄屬性結(jié)構(gòu)體中查詢該文件是否在被讀取回看;206、若查看到該分片正在被讀取查看,則向數(shù)據(jù)庫返回軟改名失敗錯誤碼 renameerr ;207、若文件系統(tǒng)在全局文件句柄屬性中查詢到該文件沒被讀取查看,則直接將該 文件改名;208、業(yè)務(wù)收到軟改名失敗錯誤碼renameerr后,取消本次歸檔請求并延時休眠一 段時間,本實施例中延時12小時;另一種實施例中可根據(jù)業(yè)務(wù)情況采用其他延時時間。209、休眠后業(yè)務(wù)向數(shù)據(jù)庫查詢該時移分片是否存在;210、如果數(shù)據(jù)庫返回該時移分片不存在,向業(yè)務(wù)返回;211、業(yè)務(wù)取消本次歸檔請求;212、如果數(shù)據(jù)庫查詢到該文件存在,則向文件系統(tǒng)下發(fā)硬改名命令;213、文件系統(tǒng)直接將該時移分片文件改名,即直接修改文件元數(shù)據(jù)表中的文件 名,其他該文件的屬性不被修改,文件實體也不變化。
在實際操作中,本發(fā)明各方法實施例采用對存在的時移分片文件增加當(dāng)前是否正 在被讀取標(biāo)志,同時對改名時移分片提供了軟改名策略和硬改名策略兩種方法。軟改名時 如果時移分片文件在被使用,則返回軟改名失敗錯誤碼,以便延時后下次進行軟改名或硬 改名;硬改名時,不論時移分片是否在被使用都進行強行改名。在實際操作中,實施例需要實現(xiàn)如下幾個部分1、對已存在的時移分片文件增加當(dāng)前是否被讀取標(biāo)志分布式文件系統(tǒng)文件訪問客戶端的全局文件句柄屬性結(jié)構(gòu)體數(shù)組,標(biāo)志了當(dāng)前正 在使用的所有文件。本實施例考慮在該結(jié)構(gòu)體中增加一個判斷文件是否正在被讀取的標(biāo)志 bread,該標(biāo)志和已有的是否在使用used標(biāo)志配合使用。當(dāng)一個被創(chuàng)建好的時移分片文件 正在被讀取給用戶回看時,used和bread標(biāo)志都置為1。2、對分片進行軟改名和硬改名的不同實現(xiàn)分布式文件系統(tǒng)中,對文件進行改名的操作是在分布式文件的元數(shù)據(jù)數(shù)據(jù)表中將 文件名字修改,文件的各種屬性也進行修改,但不涉及文件實體數(shù)據(jù)的操作。這就是我們提 到的硬改名機制。對于本發(fā)明實施例考慮的軟改名機制,在進行文件改名前,需要先在已經(jīng)打開的 全局文件句柄中查找是否有操作該該文件的有效句柄,同時對該句柄中的used和bread標(biāo) 志進行判斷,在二者都為有效值1的情況下,不能對該文件進行改名,同時返回軟改名失敗 的錯誤碼。在沒有操作該文件的句柄,或者有操作該文件的句柄但其中的bread屬性不為 1的情況下,可以對該分片文件進行改名。3、軟改名和硬改名的使用操作對每個分片都應(yīng)該先對其進行軟改名的嘗試,在軟改名成功時,分片改名結(jié)束。在 軟改名失敗時,延時一定時間后(本發(fā)明實施例中設(shè)定的是12小時),不論該文件有沒有 在被讀取回看,都對該文件進行強制硬改名。在改名成功后,如果再有回看該節(jié)目的用戶請 求,會被重定向到改名后的分片,這樣可以保證用戶的回看請求不會由于文件名字的改變 而被拒絕。4、軟改名和硬改名時文件系統(tǒng)內(nèi)部的實現(xiàn)操作在文件系統(tǒng)訪問客戶端FAC收到上層應(yīng)用程序的改名請求后,首先會向文件位置 寄存器FLR請求判斷文件是否存在;如果不存在,則改名結(jié)束;如果文件存在,則根據(jù)文件 句柄FD向全局文件句柄屬性GL0BALFD中判斷該文件是否在被使用、在被使用時是否正在 被讀?。划?dāng)文件使用標(biāo)志有效且正在被讀取時,則需要延時12小時后再進行硬改名;具體 過程如圖3所示,軟改名包含如下流程301、文件系統(tǒng)訪問客戶端向全局文件句柄結(jié)構(gòu)體查詢該文件是否被讀取回看;302、查詢結(jié)果顯示沒有被讀取回看,則直接將該時移分片文件改名;303、查詢結(jié)果顯示被讀取回看,則延時12小時后下發(fā)硬改名命令;304、文件系統(tǒng)直接在文件元數(shù)據(jù)數(shù)據(jù)表中修改該文件的文件名,其它該文件的屬 性不被修改,文件實體也不變化;如圖4所示,文件系統(tǒng)內(nèi)部改名包含如下流程401、FAC向FLR判斷文件是否存在,如果不存在,則軟改名文件失敗;402、FAC向FLR判斷文件是否存在,如果存在,則根據(jù)打開的文件句柄FD判斷文件全局句柄屬性中的文件使用標(biāo)志是否有效;403、如果文件沒有被使用,則直接進行硬改名;404、如果文件正在被使用,則判斷文件是否文件是否正在被讀??;405、如果文件沒有正在被讀取,則直接進行硬改名;406、如果文件正在被讀取,則開始進行延時12小時;407、延時12小時后,再向FLR發(fā)起硬改名請求;408、FLR在數(shù)據(jù)庫中修改文件的名字和存儲路徑;409、文件改名結(jié)束。改名歸檔結(jié)束之后,將改名后的分片的文件名和路徑信息返回給歸檔分片請求的 發(fā)送方,即業(yè)務(wù)層面。如果用戶再回看原來的時移分片,則根據(jù)文件名和路徑信息重新定向 到改名后的文件。對應(yīng)上述方法,本發(fā)明還提供一種分布式文件系統(tǒng),用于對交互式網(wǎng)絡(luò)電視的時 移電視業(yè)務(wù)或錄制節(jié)目點播業(yè)務(wù)的業(yè)務(wù)文件分片進行分片歸檔,該文件系包括改名歸檔 模塊,用于根據(jù)接收的歸檔分片請求,查詢分片是否存在,如果分片不存在,取消歸檔并結(jié) 束,如果分片存在,則進行改名歸檔。改名歸檔模塊在進行改名歸檔時判斷當(dāng)前是否被使 用;若所述分片當(dāng)前未被使用,則直接修改所述分片的文件名;若所述分片當(dāng)前正被使用, 則進行延時改名處理。改名歸檔模塊是按照前述方法實施例進行延時改名的,具體過程如 前述方法實施例,此處不再贅述。綜上,本發(fā)明具有如下優(yōu)勢(1)通過對分片實現(xiàn)改名來實現(xiàn)業(yè)務(wù)歸檔已有分片的需求,避免采用如復(fù)制分片 的方式,從而節(jié)省了存儲空間;(2)通過在改名前判斷分片是否正被使用后在決定是否繼續(xù)改名,可以避免由于 分片還在讀寫而引起的改名失敗。從本發(fā)明方法的實現(xiàn)來說,也不局限于IPTV業(yè)務(wù)系統(tǒng)結(jié)構(gòu),還可以應(yīng)用于其他系 統(tǒng)結(jié)構(gòu),例如數(shù)字電視的時移電視和TV0D點播、交通路段等監(jiān)控系統(tǒng)、視頻電話會議等。以上內(nèi)容是結(jié)合具體的實施方式對本發(fā)明所作的進一步詳細(xì)說明,不能認(rèn)定本發(fā) 明的具體實施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫 離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護 范圍。
權(quán)利要求
一種分布式文件系統(tǒng)歸檔分片的方法,所述分片為交互式網(wǎng)絡(luò)電視的時移電視業(yè)務(wù)和錄制節(jié)目點播業(yè)務(wù)的文件分片,其特征在于,包括所述文件系統(tǒng)根據(jù)接收到的歸檔分片請求,查詢請求歸檔的分片是否存在;如果所述分片不存在,取消歸檔并結(jié)束;如果所述分片存在,進行改名歸檔。
2.如權(quán)利要求1所述的方法,其特征在于,所述改名歸檔包括判斷所述分片當(dāng)前是否 被使用;若所述分片當(dāng)前未被使用,則直接修改所述分片的文件名;若所述分片當(dāng)前正被 使用,則進行延時改名處理。
3.如權(quán)利要求2所述的方法,其特征在于,所述延時改名處理包括延時預(yù)定時間后, 查詢所述分片是否存在;若所述分片不存在,則取消歸檔并結(jié)束;若所述分片存在,則強制 修改所述分片的文件名字。
4.如權(quán)利要求2所述的方法,其特征在于,所述延時改名處理包括步驟1,延時預(yù)定時間后,查詢所述分片是否存在;若所述分片不存在,則取消歸檔并 結(jié)束;若所述分片存在,則執(zhí)行步驟2 ;步驟2,判斷所述分片當(dāng)前是否被使用;若所述分片當(dāng)前未被使用,則直接修改所述分 片的文件名;若所述分片當(dāng)前正被使用,則返回所述步驟1。
5.如權(quán)利要求3或4所述的方法,其特征在于,所述預(yù)設(shè)時間為12小時。
6.如權(quán)利要求1-5任一項所述的方法,其特征在于,所述改名歸檔之后還包括將改名 歸檔后的所述分片的文件名和路徑信息返回給所述歸檔分片請求的發(fā)送方。
7.一種分布式文件系統(tǒng),用于對交互式網(wǎng)絡(luò)電視的時移電視業(yè)務(wù)或錄制節(jié)目點播業(yè)務(wù) 的業(yè)務(wù)文件分片進行分片歸檔,其特征在于,所述文件系包括改名歸檔模塊;所述改名歸檔模塊,用于根據(jù)接收的歸檔分片請求,查詢所述分片是否存在,如果所述 分片不存在,取消歸檔并結(jié)束,如果所述分片存在,則進行改名歸檔。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述改名歸檔模塊還用于在進行改名歸檔 時判斷所述分片當(dāng)前是否被使用;若所述分片當(dāng)前未被使用,則直接修改所述分片的文件 名;若所述分片當(dāng)前正被使用,則進行延時改名處理。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述改名歸檔模塊是按照如下方式進行所 述延時改名處理的延時預(yù)定時間后,查詢所述分片是否存在;若所述分片不存在,則取消歸檔并結(jié)束;若 所述分片存在,則強行強制修改所述分片的文件名字。
10.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述改名歸檔模塊是按照如下方式進行所 述延時改名處理的步驟1,延時預(yù)定時間后,查詢所述分片是否存在;若所述分片不存在,則取消歸檔并 結(jié)束;若所述分片存在,則執(zhí)行步驟2 ;步驟2,判斷所述分片當(dāng)前是否被使用;若所述分片當(dāng)前未被使用,則直接修改所述分 片的文件名;若所述分片當(dāng)前正被使用,則返回所述步驟1。
全文摘要
本發(fā)明公開了一種分布式文件系統(tǒng)及其歸檔分片的方法;所述分片為交互式網(wǎng)絡(luò)電視的時移電視業(yè)務(wù)和錄制節(jié)目點播業(yè)務(wù)的文件分片,該歸檔分片的方法包括所述文件系統(tǒng)根據(jù)接收到的歸檔分片請求,查詢請求歸檔的分片是否存在;如果所述分片不存在,取消歸檔并結(jié)束;如果所述分片存在,進行改名歸檔。本發(fā)明通過文件系統(tǒng)對歸檔請求中的分片進行判斷是否存在,在存在時對該分片進行改名歸檔,可以保證在業(yè)務(wù)回滾時間之后也能保留需要的分片,適應(yīng)業(yè)務(wù)層面要求的在回滾時間結(jié)束后還能繼續(xù)保留已有分片的需求;且實施例中通過在改名前判斷分片是否正被使用后在決定是否繼續(xù)改名,可以避免由于分片還在讀寫而引起的改名失敗。
文檔編號H04N7/173GK101873347SQ20101019962
公開日2010年10月27日 申請日期2010年6月13日 優(yōu)先權(quán)日2010年6月13日
發(fā)明者夏艦波, 彭杰, 陳濤 申請人:中興通訊股份有限公司