专利名称:一种分布式文件系统及其归档分片的方法
技术领域:
本发明涉及数据存储技术,尤其涉及一种分布式文件系统及其归档分片的方法。
背景技术:
分布式文件系统广泛应用于IPTV(Internet Protocol Television,交互式网络 电视)、视频等业务的服务器中,用于管理单个节点(每个节点为一个区域或者一部分用户 提供服务)内数据的存储和读取。分布式文件系统对应的上层业务目前主要有VOD (Video on Demand)视频点播和TV0D(TV on Demand)时移频道的录制回看业务。TV0D业务将时移 频道上一段节目做成录制节目后,在电子节目单上显示,以满足用户能够随意点播错过的 精彩节目,还可以选择几天前的节目。对于TV0D时移频道的录制回看业务,业务层面设定 了回滚时间,超过回滚时间的录制分片都要被业务下发命令并被文件系统强制删除掉。在 系统存储空间一定的情况下,可以存储一定时长的频道节目。但对于某些特定的节目,业务 层面要求在回滚时间结束后还能继续保留不被删除,以便用户进行特殊回看。
发明内容
本发明要解决的技术问题是,提供一种分布式文件系统及其归档分片的方法,能 适应业务层面要求的在回滚时间结束后还能继续保留已有分片的需求。为解决上述技术问题,本发明提供一种分布式文件系统归档分片的方法,所述分 片为交互式网络电视的时移电视业务和录制节目点播业务的文件分片,包括所述文件系 统根据接收到的归档分片请求,查询请求归档的分片是否存在;如果所述分片不存在,取消 归档并结束;如果所述分片存在,进行改名归档。所述改名归档包括判断所述分片当前是否被使用;若所述分片当前未被使用, 则直接修改所述分片的文件名;若所述分片当前正被使用,则进行延时改名处理。一种实施例中所述延时改名处理包括延时预定时间后,查询所述分片是否存在; 若所述分片不存在,则取消归档并结束;若所述分片存在,则强制修改所述分片的文件名字。另一种实施例中所述延时改名处理包括步骤1,延时预定时间后,查询所述分片是否存在;若所述分片不存在,则取消归 档并结束;若所述分片存在,则执行步骤2 ;步骤2,判断所述分片当前是否被使用;若所述分片当前未被使用,则直接修改所 述分片的文件名;若所述分片当前正被使用,则返回所述步骤1。又一种实施例中,上述预设时间为12小时。再一种实施例中,所述改名归档之后还包括将所述分片的文件名和路径信息返 回给所述归档分片请求的发送方。对应上述方法,本发明还提供一种分布式文件系统,用于对交互式网络电视的时 移电视业务或录制节目点播业务的业务文件分片进行分片归档,所述文件系包括改名归档模块;所述改名归档模块,用于根据接收的归档分片请求,查询所述分片是否存在,如果 所述分片不存在,取消归档并结束,如果所述分片存在,则进行改名归档。所述改名归档模块还用于在进行改名归档时判断所述分片当前是否被使用;若所 述分片当前未被使用,则直接修改所述分片的文件名;若所述分片当前正被使用,则进行延 时改名处理。一种实施例中所述改名归档模块是按照如下方式进行所述延时改名处理的延时 预定时间后,查询所述分片是否存在;若所述分片不存在,则取消归档并结束;若所述分片 存在,则强行强制修改所述分片的文件名字。另一种实施例中所述改名归档模块是按照如下方式进行所述延时改名处理的步骤1,延时预定时间后,查询所述分片是否存在;若所述分片不存在,则取消归 档并结束;若所述分片存在,则执行步骤2 ;步骤2,判断所述分片当前是否被使用;若所述分片当前未被使用,则直接修改所 述分片的文件名;若所述分片当前正被使用,则返回所述步骤1。本发明的有益效果是(1)通过文件系统对归档请求中的分片进行判断是否存在,在存在时对该分片进 行改名归档,可以保证在业务回滚时间之后也能保留需要的分片,适应业务层面要求的在 回滚时间结束后还能继续保留已有分片的需求;(2)实施例中通过在改名前判断分片是否正被使用后在决定是否继续改名,可以 避免由于分片还在读写而引起的改名失败。
图1是本发明归档分片方法的一种实施例的流程示意图;图2是本发明归档分片方法的另一种实施例的流程示意图;图3是本发明归档分片方法实施例的软改名流程示意图;图4是本发明归档分片方法实施例中文件系统软改名的内部实现示意图。
具体实施例方式下面通过具体实施方式
结合附图对本发明作进一步详细说明。为解决交互式网络电视的时移电视业务和录制节目点播业务的文件分片在回滚 时间结束后还能继续保留不被删除,本发明归档分片实施例的处理思路是根据接收到的 归档分片请求,查询请求归档的分片是否存在;如果分片不存在,取消归档并结束;如果分 片存在,进行改名归档。在存储的分片没有被读取时,对其进行改名后将其移动到不同的存 储目录下供业务回看使用。虽然这样的操作可能在改名时会对业务有影响,但在改名后如 果用户再回看原来的时移分片,就会被重新定向到新改名后的文件。实施例中的改名归档包括判断分片当前是否被使用;若分片当前未被使用,则 直接修改分片的文件名;若分片当前正被使用,则进行延时改名处理。本发明方法实施例考 虑在回滚时间结束后对分片进行多次尝试改名。如果分片在使用,则延时后开始新一轮尝 试改名的操作,如图1所示。或者,如图2所示,该改名操作最多尝试两次,在第二次试图改 名失败时,强行对分片进行改名。通过使用这种新的改名策略,可以避免由于分片还在被读写而引起的改名失败。图1所示实施例中进行的延时改名处理包括步骤1,延时预定时间后,查询分片是否存在;若分片不存在,则取消归档并结束; 若分片存在,则执行步骤2;步骤2,判断分片当前是否被使用;若分片当前未被使用,则直接修改分片的文件 名;若分片当前正被使用,则返回所述步骤1。图2所示实施例中进行的延时改名处理包括延时预定时间后,查询分片是否存 在;若分片不存在,则取消归档并结束;若分片存在,则强制修改所述分片的文件名字。本发明业务归档分片方法的一种实施例的流程如图1所示,本文称这种流程为硬 改名策略,包括如下步骤101、业务层发起时移分片归档请求;102、文件系统中的数据库在文件表中查询该时移分片文件是否存在;103、若数据表中不存在该时移分片文件,则数据库向业务返回查找失败,取消归 档;104、若数据库查询到该时移分片文件存在,则查看到该分片当前是否被读取查 看;105、若该分片当前未被读取查看,则直接将该文件改名;106、若该分片当前正被读取查看,则延时休眠一段时间后重新从步骤102开始执 行。本发明业务归档分片方法的另一种实施例的流程如图2所示,本文称这种流程为 软改名策略,包括如下步骤201、业务层发起时移分片归档请求;202、文件系统中的数据库在文件表中查询该时移分片文件是否存在;203、若数据表中不存在该时移分片文件,则数据库向业务返回查找失败;204、业务收到数据库查询文件失败消息后,取消该时移分片归档请求;205、若数据库查询到该时移分片文件存在,则向文件系统下发软改名命令,文件 系统在全局文件句柄属性结构体中查询该文件是否在被读取回看;206、若查看到该分片正在被读取查看,则向数据库返回软改名失败错误码 renameerr ;207、若文件系统在全局文件句柄属性中查询到该文件没被读取查看,则直接将该 文件改名;208、业务收到软改名失败错误码renameerr后,取消本次归档请求并延时休眠一 段时间,本实施例中延时12小时;另一种实施例中可根据业务情况采用其他延时时间。209、休眠后业务向数据库查询该时移分片是否存在;210、如果数据库返回该时移分片不存在,向业务返回;211、业务取消本次归档请求;212、如果数据库查询到该文件存在,则向文件系统下发硬改名命令;213、文件系统直接将该时移分片文件改名,即直接修改文件元数据表中的文件 名,其他该文件的属性不被修改,文件实体也不变化。
在实际操作中,本发明各方法实施例采用对存在的时移分片文件增加当前是否正 在被读取标志,同时对改名时移分片提供了软改名策略和硬改名策略两种方法。软改名时 如果时移分片文件在被使用,则返回软改名失败错误码,以便延时后下次进行软改名或硬 改名;硬改名时,不论时移分片是否在被使用都进行强行改名。在实际操作中,实施例需要实现如下几个部分1、对已存在的时移分片文件增加当前是否被读取标志分布式文件系统文件访问客户端的全局文件句柄属性结构体数组,标志了当前正 在使用的所有文件。本实施例考虑在该结构体中增加一个判断文件是否正在被读取的标志 bread,该标志和已有的是否在使用used标志配合使用。当一个被创建好的时移分片文件 正在被读取给用户回看时,used和bread标志都置为1。2、对分片进行软改名和硬改名的不同实现分布式文件系统中,对文件进行改名的操作是在分布式文件的元数据数据表中将 文件名字修改,文件的各种属性也进行修改,但不涉及文件实体数据的操作。这就是我们提 到的硬改名机制。对于本发明实施例考虑的软改名机制,在进行文件改名前,需要先在已经打开的 全局文件句柄中查找是否有操作该该文件的有效句柄,同时对该句柄中的used和bread标 志进行判断,在二者都为有效值1的情况下,不能对该文件进行改名,同时返回软改名失败 的错误码。在没有操作该文件的句柄,或者有操作该文件的句柄但其中的bread属性不为 1的情况下,可以对该分片文件进行改名。3、软改名和硬改名的使用操作对每个分片都应该先对其进行软改名的尝试,在软改名成功时,分片改名结束。在 软改名失败时,延时一定时间后(本发明实施例中设定的是12小时),不论该文件有没有 在被读取回看,都对该文件进行强制硬改名。在改名成功后,如果再有回看该节目的用户请 求,会被重定向到改名后的分片,这样可以保证用户的回看请求不会由于文件名字的改变 而被拒绝。4、软改名和硬改名时文件系统内部的实现操作在文件系统访问客户端FAC收到上层应用程序的改名请求后,首先会向文件位置 寄存器FLR请求判断文件是否存在;如果不存在,则改名结束;如果文件存在,则根据文件 句柄FD向全局文件句柄属性GL0BALFD中判断该文件是否在被使用、在被使用时是否正在 被读取;当文件使用标志有效且正在被读取时,则需要延时12小时后再进行硬改名;具体 过程如图3所示,软改名包含如下流程301、文件系统访问客户端向全局文件句柄结构体查询该文件是否被读取回看;302、查询结果显示没有被读取回看,则直接将该时移分片文件改名;303、查询结果显示被读取回看,则延时12小时后下发硬改名命令;304、文件系统直接在文件元数据数据表中修改该文件的文件名,其它该文件的属 性不被修改,文件实体也不变化;如图4所示,文件系统内部改名包含如下流程401、FAC向FLR判断文件是否存在,如果不存在,则软改名文件失败;402、FAC向FLR判断文件是否存在,如果存在,则根据打开的文件句柄FD判断文件全局句柄属性中的文件使用标志是否有效;403、如果文件没有被使用,则直接进行硬改名;404、如果文件正在被使用,则判断文件是否文件是否正在被读取;405、如果文件没有正在被读取,则直接进行硬改名;406、如果文件正在被读取,则开始进行延时12小时;407、延时12小时后,再向FLR发起硬改名请求;408、FLR在数据库中修改文件的名字和存储路径;409、文件改名结束。改名归档结束之后,将改名后的分片的文件名和路径信息返回给归档分片请求的 发送方,即业务层面。如果用户再回看原来的时移分片,则根据文件名和路径信息重新定向 到改名后的文件。对应上述方法,本发明还提供一种分布式文件系统,用于对交互式网络电视的时 移电视业务或录制节目点播业务的业务文件分片进行分片归档,该文件系包括改名归档 模块,用于根据接收的归档分片请求,查询分片是否存在,如果分片不存在,取消归档并结 束,如果分片存在,则进行改名归档。改名归档模块在进行改名归档时判断当前是否被使 用;若所述分片当前未被使用,则直接修改所述分片的文件名;若所述分片当前正被使用, 则进行延时改名处理。改名归档模块是按照前述方法实施例进行延时改名的,具体过程如 前述方法实施例,此处不再赘述。综上,本发明具有如下优势(1)通过对分片实现改名来实现业务归档已有分片的需求,避免采用如复制分片 的方式,从而节省了存储空间;(2)通过在改名前判断分片是否正被使用后在决定是否继续改名,可以避免由于 分片还在读写而引起的改名失败。从本发明方法的实现来说,也不局限于IPTV业务系统结构,还可以应用于其他系 统结构,例如数字电视的时移电视和TV0D点播、交通路段等监控系统、视频电话会议等。以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发 明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱 离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护 范围。
权利要求
一种分布式文件系统归档分片的方法,所述分片为交互式网络电视的时移电视业务和录制节目点播业务的文件分片,其特征在于,包括所述文件系统根据接收到的归档分片请求,查询请求归档的分片是否存在;如果所述分片不存在,取消归档并结束;如果所述分片存在,进行改名归档。
2.如权利要求1所述的方法,其特征在于,所述改名归档包括判断所述分片当前是否 被使用;若所述分片当前未被使用,则直接修改所述分片的文件名;若所述分片当前正被 使用,则进行延时改名处理。
3.如权利要求2所述的方法,其特征在于,所述延时改名处理包括延时预定时间后, 查询所述分片是否存在;若所述分片不存在,则取消归档并结束;若所述分片存在,则强制 修改所述分片的文件名字。
4.如权利要求2所述的方法,其特征在于,所述延时改名处理包括步骤1,延时预定时间后,查询所述分片是否存在;若所述分片不存在,则取消归档并 结束;若所述分片存在,则执行步骤2 ;步骤2,判断所述分片当前是否被使用;若所述分片当前未被使用,则直接修改所述分 片的文件名;若所述分片当前正被使用,则返回所述步骤1。
5.如权利要求3或4所述的方法,其特征在于,所述预设时间为12小时。
6.如权利要求1-5任一项所述的方法,其特征在于,所述改名归档之后还包括将改名 归档后的所述分片的文件名和路径信息返回给所述归档分片请求的发送方。
7.一种分布式文件系统,用于对交互式网络电视的时移电视业务或录制节目点播业务 的业务文件分片进行分片归档,其特征在于,所述文件系包括改名归档模块;所述改名归档模块,用于根据接收的归档分片请求,查询所述分片是否存在,如果所述 分片不存在,取消归档并结束,如果所述分片存在,则进行改名归档。
8.如权利要求7所述的系统,其特征在于,所述改名归档模块还用于在进行改名归档 时判断所述分片当前是否被使用;若所述分片当前未被使用,则直接修改所述分片的文件 名;若所述分片当前正被使用,则进行延时改名处理。
9.如权利要求8所述的系统,其特征在于,所述改名归档模块是按照如下方式进行所 述延时改名处理的延时预定时间后,查询所述分片是否存在;若所述分片不存在,则取消归档并结束;若 所述分片存在,则强行强制修改所述分片的文件名字。
10.如权利要求8所述的系统,其特征在于,所述改名归档模块是按照如下方式进行所 述延时改名处理的步骤1,延时预定时间后,查询所述分片是否存在;若所述分片不存在,则取消归档并 结束;若所述分片存在,则执行步骤2 ;步骤2,判断所述分片当前是否被使用;若所述分片当前未被使用,则直接修改所述分 片的文件名;若所述分片当前正被使用,则返回所述步骤1。
全文摘要
本发明公开了一种分布式文件系统及其归档分片的方法;所述分片为交互式网络电视的时移电视业务和录制节目点播业务的文件分片,该归档分片的方法包括所述文件系统根据接收到的归档分片请求,查询请求归档的分片是否存在;如果所述分片不存在,取消归档并结束;如果所述分片存在,进行改名归档。本发明通过文件系统对归档请求中的分片进行判断是否存在,在存在时对该分片进行改名归档,可以保证在业务回滚时间之后也能保留需要的分片,适应业务层面要求的在回滚时间结束后还能继续保留已有分片的需求;且实施例中通过在改名前判断分片是否正被使用后在决定是否继续改名,可以避免由于分片还在读写而引起的改名失败。
文档编号H04N7/173GK101873347SQ20101019962
公开日2010年10月27日 申请日期2010年6月13日 优先权日2010年6月13日
发明者夏舰波, 彭杰, 陈涛 申请人:中兴通讯股份有限公司