CN108647285A - 分布式文件系统中重命名方法、装置及分布式文件系统 - Google Patents
分布式文件系统中重命名方法、装置及分布式文件系统 Download PDFInfo
- Publication number
- CN108647285A CN108647285A CN201810419918.8A CN201810419918A CN108647285A CN 108647285 A CN108647285 A CN 108647285A CN 201810419918 A CN201810419918 A CN 201810419918A CN 108647285 A CN108647285 A CN 108647285A
- Authority
- CN
- China
- Prior art keywords
- file
- renaming
- source
- destination
- name node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开是关于一种分布式文件系统中重命名方法、装置及分布式文件系统,属于互联网技术领域。所述方法包括:将源端内存目录中的目标文件结构锁定;将目的端内存目录中的目标文件结构锁定;对目标文件进行移动;将目标文件结构从源端内存目录中删除;将目的端内存目录中的目标文件结构解锁。本公开在对目标文件重命名过程中,将源名称节点和目的名称节点中的目标文件结构锁定,当在数据节点上完成对目标文件的移动后,源名称节点将目标文件结构删除,目的名称节点将目标文件结构解锁,避免了重命名过程中目标文件被修改,同时避免目标文件结构同时存储于不同名称节点,从而确保分布式文件系统能够正常运行。
Description
技术领域
本公开涉及互联网技术领域,尤其涉及一种分布式文件系统中重命名方法、装置及分布式文件系统。
背景技术
通常分布式文件系统包括名称节点和数据节点,其中,名称节点主要负责管理名称空间,数据节点主要负责存储文件数据。随着分布式文件系统规模的扩大,名称空间也相应地增大,单一的名称节点已很难维持分布式文件系统的正常运行。为确保分布式文件系统能够正常运行,目前可采用分布式方式将名称空间分布到多个名称节点上。
在分布式文件系统中,重命名操作不仅包括对文件名称的重命名,还包括对文件存储路径的更改。由于重命名过程通常会跨不同的名称节点,因此,为避免同一文件名称同时存储在不同的名称节点中,导致重命名后的分布式文件系统不可用,在分布式文件系统中如何跨名称节点进行重命名,成为了关键。
发明内容
本公开提供一种分布式文件系统中重命名方法、装置及分布式文件系统。
根据本公开实施例的第一方面,提供一种分布式文件系统中重命名方法,所述分布式文件系统包括源名称节点、目的名称节点、数据节点及终端,所述方法包括:
将所述源名称节点的源端内存目录中的目标文件结构锁定,并将所述目标文件结构发送至所述终端,由所述终端发送至所述目的名称节点;
将所述目标文件结构添加到所述目的名称节点的目的端内存目录中,并将所述目的端内存目录中的所述目标文件结构锁定;
根据原存储路径和目的存储路径,对所述目标文件进行移动;
将所述目标文件结构从所述源端内存目录中删除;
将所述目的端内存目录中的所述目标文件结构解锁,以完成对所述目标文件的重命名。
在本公开的另一个实施例中,所述方法还包括:
向所述源名称节点发送第一源文件重命名请求,所述第一源文件重命名请求包括登录所述终端中文件管理应用的用户账号;
当接收到所述第一源文件重命名请求,校验所述用户账号是否具有重命名权限;
如果所述用户账号不具有重命名权限,向所述终端发送错误提示信息;
如果所述用户账号具有重命名权限,执行将所述源名称节点的源端内存目录中的目标文件结构锁定的步骤。
在本公开的另一个实施例中,所述将所述源名称节点的源端内存目录中的目标文件结构锁定之后,还包括:
在源端文件操作列表中增加对所述目标文件的重命名操作记录,并在源端事务日志中增加所述重命名操作记录。
在本公开的另一个实施例中,所述方法还包括:
向所述目的名称节点发送第一目的文件重命名请求,所述第一目的文件重命名请求包括所述目标文件结构和登录所述终端中文件管理应用的用户账号;
当接收到所述第一目的文件重命名请求,校验所述用户账号是否具有重命名权限;
如果所述用户账号不具有重命名权限,向所述终端发送错误提示信息;
如果所述用户账号具有重命名权限,执行将所述目标文件结构添加到所述目的名称节点的目的端内存目录中的步骤。
在本公开的另一个实施例中,所述将所述目的端内存目录中的所述目标文件结构锁定之后,还包括:
在目的端文件操作列表中增加对所述目标文件的重命名操作记录,并在目的端事务日志中增加所述重命名操作记录。
在本公开的另一个实施例中,所述方法还包括:
如果所述目的名称节点未成功锁定所述目标文件结构,向所述终端发送锁定失败消息;
当接收到所述锁定失败消息,向所述源名称节点发送第二源文件重命名请求;
当接收到所述第二源文件重命名请求时,将所述目标文件结构从所述源端内存目录中解锁,将所述重命名操作记录从所述源端文件操作列表中删除,并在所述源端事务日志中增加对所述目标文件结构的解锁操作记录。
在本公开的另一个实施例中,将所述源内存目录中的所述目标文件结构删除之后,还包括:
将所述重命名操作记录从所述源端文件操作列表中删除,并在所述源端事务日志中增加对所述目标文件结构的删除操作记录。
在本公开的另一个实施例中,将所述目的端内存目录中的所述目标文件结构解锁之后,还包括:
将所述重命名操作记录从所述目的端文件操作列表中删除,并在所述目的端事务日志中增加对所述目标文件结构的解锁操作记录。
在本公开的另一个实施例中,所述方法还包括:
检测所述源端文件操作列表中的所述重命名操作记录的存储时长是否达到预设时长;
如果所述重命名操作记录的存储时长未达到所述预设时长,查询所述目的名称节点中是否存储有所述重命名操作记录;
如果所述目的名称节点中存储有所述重命名操作记录,触发执行所述数据节点根据原存储路径和目的存储路径,对所述目标文件进行移动的步骤;
如果所述目的名称节点中未存储所述重命名操作记录,将所述目标文件结构从所述源端内存目录中解锁,将所述重命名操作记录从所述源端文件操作列表中删除,并在所述源端事务日志中增加对所述目标文件结构的解锁操作记录。
在本公开的另一个实施例中,所述方法还包括:
检测所述目的端文件操作列表中的所述重命名操作记录的存储时长是否达到预设时长;
如果所述重命名操作记录的存储时长未达到所述预设时长,查询所述源名称节点中是否存储有所述重命名操作记录;
如果所述源名称节点中存储有所述重命名操作记录,等待后续的处理操作;
如果所述源名称节点未存储所述重命名操作记录,将所述目的端内存目录中的所述目标文件结构解锁,将所述重命名操作记录从所述目的端文件操作列表中删除,并在所述目的端事务日志中增加对所述目标文件结构的解锁操作记录。
根据本公开实施例的第二方面,提供了一种分布式文件系统中重命名装置,所述分布式文件系统包括源名称节点、目的名称节点、数据节点及终端,所述装置包括:
第一文件结构锁定模块,用于将所述源名称节点的源端内存目录中的目标文件结构锁定;
文件结构发送模块,用于将所述目标文件结构发送至所述终端,由所述终端发送至所述目的名称节点;
文件结构添加模块,用于将所述目标文件结构添加到所述目的名称节点的目的端内存目录中;
第二文件结构锁定模块,用于将所述目的端内存目录中的所述目标文件结构锁定;
文件移动模块,用于根据原存储路径和目的存储路径,对所述目标文件进行移动;
文件结构删除模块,用于将所述目标文件结构从所述源端内存目录中删除;
第一文件结构解锁模块,用于将所述目的端内存目录中的所述目标文件结构解锁,以完成对所述目标文件的重命名。
在本公开的另一个实施例中,所述装置还包括:
第一请求发送模块,用于向所述源名称节点发送第一源文件重命名请求,所述第一源文件重命名请求包括登录所述终端中文件管理应用的用户账号;
第一账号校验模块,用于当接收到所述第一源文件重命名请求,校验所述用户账号是否具有重命名权限;
第一提示信息发送模块,用于如果所述用户账号不具有重命名权限,向所述终端发送错误提示信息;
所述第一文件结构锁定模块,用于如果所述用户账号具有重命名权限,将所述源名称节点的源端内存目录中的目标文件结构锁定。
在本公开的另一个实施例中,所述装置还包括:
第一操作记录增加模块,用于在源端文件操作列表中增加对所述目标文件的重命名操作记录,并在源端事务日志中增加所述重命名操作记录。
在本公开的另一个实施例中,所述装置还包括:
第二请求发送模块,用于向所述目的名称节点发送第一目的文件重命名请求,所述第一目的文件重命名请求包括所述目标文件结构和登录所述终端中文件管理应用的用户账号;
第二账号校验模块,用于当接收到所述第一目的文件重命名请求,校验所述用户账号是否具有重命名权限;
第二提示信息发送模块,用于如果所述用户账号不具有重命名权限,向所述终端发送错误提示信息;
所述文件结构添加模块,用于如果所述用户账号具有重命名权限,将所述目标文件结构添加到所述目的名称节点的目的端内存目录中。
在本公开的另一个实施例中,所述装置还包括:
第二操作记录增加模块,用于在目的端文件操作列表中增加对所述目标文件的重命名操作记录,并在目的端事务日志中增加所述重命名操作记录。
在本公开的另一个实施例中,所述装置还包括:
失败消息发送模块,用于如果所述目的名称节点未成功锁定所述目标文件结构,向所述终端发送锁定失败消息;
第一请求发送模块,用于当接收到所述锁定失败消息,向所述源名称节点发送第二源文件重命名请求;
第二文件结构解锁模块,用于当接收到所述第二源文件重命名请求时,将所述目标文件结构从所述源端内存目录中解锁,将所述重命名操作记录从所述源端文件操作列表中删除,并在所述源端事务日志中增加对所述目标文件结构的解锁操作记录。
在本公开的另一个实施例中,所述装置还包括:
第一操作记录管理模块,用于将所述重命名操作记录从所述源端文件操作列表中删除,并在所述源端事务日志中增加对所述目标文件结构的删除操作记录。
在本公开的另一个实施例中,所述装置还包括:
第二操作记录管理模块,用于将所述重命名操作记录从所述目的端文件操作列表中删除,并在所述目的端事务日志中增加对所述目标文件结构的解锁操作记录。
在本公开的另一个实施例中,所述装置还包括:
第一检测模块,用于检测所述源端文件操作列表中的所述重命名操作记录的存储时长是否达到预设时长;
第一查询模块,用于如果所述重命名操作记录的存储时长未达到所述预设时长,查询所述目的名称节点中是否存储有所述重命名操作记录;
所述文件移动模块,用于如果所述目的名称节点中存储有所述重命名操作记录,根据原存储路径和目的存储路径,对所述目标文件进行移动;
第二文件结构解锁模块,用于如果所述目的名称节点中未存储所述重命名操作记录,将所述目标文件结构从所述源端内存目录中解锁,将所述重命名操作记录从所述源端文件操作列表中删除,并在所述源端事务日志中增加对所述目标文件结构的解锁操作记录。
在本公开的另一个实施例中,所述装置还包括:
第二检测模块,用于检测所述目的端文件操作列表中的所述重命名操作记录的存储时长是否达到预设时长;
第二查询模块,用于如果所述重命名操作记录的存储时长未达到所述预设时长,查询所述源名称节点中是否存储有所述重命名操作记录;
操作等待模块,用于如果所述源名称节点中存储有所述重命名操作记录,等待后续的处理操作;
所述第一文件结构解锁模块,用于如果所述源名称节点未存储所述重命名操作记录,将所述目的端内存目录中的所述目标文件结构解锁,将所述重命名操作记录从所述目的端文件操作列表中删除,并在所述目的端事务日志中增加对所述目标文件结构的解锁操作记录。
根据本公开实施例的第三方面,提供一种分布式文件系统,所述分布式文件系统包括源名称节点、目的名称节点、数据节点及终端;
所述源名称节点,用于将源端内存目录中的目标文件结构锁定,并将所述目标文件结构发送至所述终端;
所述终端,用于将所述目标文件结构发送至所述目的名称节点;
所述目的名称节点,用于将所述目标文件结构添加到目的端内存目录中,并将所述目的端内存目录中的所述目标文件结构锁定;
所述数据节点,用于根据原存储路径和目的存储路径,对所述目标文件进行移动;
所述源名称节点,用于将所述目标文件结构从所述源端内存目录中删除;
所述目的名称节点,用于将所述目的端内存目录中的所述目标文件结构解锁,以完成对所述目标文件的重命名。
在本公开的另一个实施例中,所述终端,用于向所述源名称节点发送第一源文件重命名请求,所述第一源文件重命名请求包括登录所述终端中文件管理应用的用户账号;
所述源名称节点,用于当接收到所述第一源文件重命名请求,校验所述用户账号是否具有重命名权限;
所述源名称节点,用于如果所述用户账号不具有重命名权限,向所述终端发送错误提示信息;
所述源名称节点,用于如果所述用户账号具有重命名权限,将源端内存目录中的目标文件结构锁定。
在本公开的另一个实施例中,所述源名称节点,用于在源端文件操作列表中增加对所述目标文件的重命名操作记录,并在源端事务日志中增加所述重命名操作记录。
在本公开的另一个实施例中,所述终端,用于向所述目的名称节点发送第一目的文件重命名请求,所述第一目的文件重命名请求包括所述目标文件结构和登录所述终端中文件管理应用的用户账号;
所述目的名称节点,用于当接收到所述第一目的文件重命名请求,校验所述用户账号是否具有重命名权限;
所述目的名称节点,用于如果所述用户账号不具有重命名权限,向所述终端发送错误提示信息;
所述目的名称节点,用于如果所述用户账号具有重命名权限,将所述目标文件结构添加到目的端内存目录中。
在本公开的另一个实施例中,所述目的名称节点,用于在目的端文件操作列表中增加对所述目标文件的重命名操作记录,并在目的端事务日志中增加所述重命名操作记录。
在本公开的另一个实施例中,所述目的名称节点,用于如果所述目的名称节点未成功锁定所述目标文件结构,向所述终端发送锁定失败消息;
所述终端,用于当接收到所述锁定失败消息,向所述源名称节点发送第二源文件重命名请求;
所述源名称节点,用于当接收到所述第二源文件重命名请求时,将所述目标文件结构从所述源端内存目录中解锁,将所述重命名操作记录从所述源端文件操作列表中删除,并在所述源端事务日志中增加对所述目标文件结构的解锁操作记录。
在本公开的另一个实施例中,所述源名称节点,用于将所述重命名操作记录从所述源端文件操作列表中删除,并在所述源端事务日志中增加对所述目标文件结构的删除操作记录。
在本公开的另一个实施例中,所述目的名称节点,还用于将所述重命名操作记录从所述目的端文件操作列表中删除,并在所述目的端事务日志中增加对所述目标文件结构的解锁操作记录。
在本公开的另一个实施例中,所述源名称节点,用于检测所述源端文件操作列表中的所述重命名操作记录的存储时长是否达到预设时长;
所述源名称节点,用于如果所述重命名操作记录的存储时长未达到所述预设时长,查询所述目的名称节点中是否存储有所述重命名操作记录;
所述源名称节点,用于如果所述目的名称节点中存储有所述重命名操作记录,触发执行所述数据节点根据原存储路径和目的存储路径,对所述目标文件进行移动的步骤;
所述源名称节点,用于如果所述目的名称节点中未存储所述重命名操作记录,将所述目标文件结构从所述源端内存目录中解锁,将所述重命名操作记录从所述源端文件操作列表中删除,并在所述源端事务日志中增加对所述目标文件结构的解锁操作记录。
在本公开的另一个实施例中,所述目的名称节点,用于检测所述目的端文件操作列表中的所述重命名操作记录的存储时长是否达到预设时长;
所述目的名称节点,用于如果所述重命名操作记录的存储时长未达到所述预设时长,查询所述源名称节点中是否存储有所述重命名操作记录;
所述目的名称节点,用于如果所述源名称节点中存储有所述重命名操作记录,等待后续的处理操作;
所述目的名称节点,用于如果所述源名称节点未存储所述重命名操作记录,将所述目的端内存目录中的所述目标文件结构解锁,将所述重命名操作记录从所述目的端文件操作列表中删除,并在所述目的端事务日志中增加对所述目标文件结构的解锁操作记录。
根据本公开实施例的第四方面,提供了一种分布式文件系统中重命名装置,所述分布式文件系统包括源名称节点、目的名称节点、数据节点及终端,包括:
处理器;
用于存储处理器可执行的指令的存储器;
其中,所述处理器被配置为:
将所述源名称节点的源端内存目录中的目标文件结构锁定,并将所述目标文件结构发送至所述终端,由所述终端发送至所述目的名称节点;
将所述目标文件结构添加到所述目的名称节点的目的端内存目录中,并将所述目的端内存目录中的所述目标文件结构锁定;
根据原存储路径和目的存储路径,对所述目标文件进行移动;
将所述目标文件结构从所述源端内存目录中删除;
将所述目的端内存目录中的所述目标文件结构解锁,以完成对所述目标文件的重命名。
本公开的实施例提供的技术方案可以包括以下有益效果:
在对目标文件重命名过程中,将源名称节点和目的名称节点中的目标文件结构锁定,当在数据节点上完成对目标文件的移动后,源名称节点将目标文件结构删除,目的名称节点将目标文件结构解锁,避免了重命名过程中目标文件被修改,同时避免目标文件结构同时存储于不同名称节点,从而确保分布式文件系统能够正常运行。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种分布式文件系统的架构图。
图2是根据一示例性实施例示出的一种分布式文件系统中重命名方法的流程图。
图3是根据一示例性实施例示出的一种分布式文件系统中重命名方法的流程图。
图4是根据一示例性实施例示出的一种分布式文件系统中重命名装置的结构示意图。
图5是根据一示例性实施例示出的一种分布式文件系统的结构图。
图6是根据一示例性实施例示出的一种分布式文件系统中重命名装置的框图。
图7是根据一示例性实施例示出的一种分布式文件系统中重命名装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1示出了一种分布式文件系统,参见图1,该分布式文件系统包括终端101、名称节点102及数据节点103,为确保分布式文件系统能够正常运行,降低节点的数据处理压力,名称节点102和数据节点103的数量至少为两个。
其中,终端101可以为笔记本电脑、台式电脑等设备,本公开实施例不对终端101的产品类型作具体的限定。终端101内安装有文件管理应用,基于该文件管理应用,可实现对分布式文件系统中文件的重命名、增加、删除等功能。终端101内设置有文件管理应用的API(Application Programming Interface,应用程序编程接口),基于该API,终端可与文件管理应用进行通信,例如,向文件管理应用发送各种消息。
名称节点102为分布式文件系统的元数据服务器,负责管理元数据的相关操作信息,包括名称空间、文件数据在数据节点上的位置信息等。
数据节点103为分布式文件系统中的数据服务器,负责存储分布式文件系统的文件数据。在分布式文件系统中,每个数据节点103为各个名称节点102所共享,即每个数据节点103均存储有各个名称节点102所管理的元数据对应的文件数据,为了便于对不同名称节点所管理的元数据对应的文件数据进行管理,数据节点103包括多个数据池(pool),每个数据池与一个名称节点102对应,每个数据池存储每个名称节点102所管理的元数据对应的文件数据。
图2是根据一示例性实施例示出的一种分布式文件系统中重命名方法的流程图,如图2所示,分布式文件系统中重命名方法用于图1所示的分布式文件系统中,该分布式文件系统包括源名称节点、目的名称节点、数据节点及终端。该方法包括以下步骤。
在步骤S201中,将源名称节点的源端内存目录中的目标文件结构锁定,并将目标文件结构发送至终端,由终端发送至目的名称节点。
在步骤S202中,将目标文件结构添加到目的名称节点的目的端内存目录中,并将目的端内存目录中的目标文件结构锁定。
在步骤S203中,根据原存储路径和目的存储路径,对目标文件进行移动。
在步骤S204中,将目标文件结构从源端内存目录中删除。
在步骤S205中,将目的端内存目录中的目标文件结构解锁,以完成对目标文件的重命名。
本公开实施例提供的方法,在对目标文件重命名过程中,将源名称节点和目的名称节点中的目标文件结构锁定,当在数据节点上完成对目标文件的移动后,源名称节点将目标文件结构删除,目的名称节点将目标文件结构解锁,避免了重命名过程中目标文件被修改,同时避免目标文件结构同时存储于不同名称节点,从而确保分布式文件系统能够正常运行。
在本公开的另一个实施例中,该方法还包括:
向源名称节点发送第一源文件重命名请求,该第一源文件重命名请求包括登录终端中文件管理应用的用户账号;
当接收到第一源文件重命名请求,校验用户账号是否具有重命名权限;
如果用户账号不具有重命名权限,向终端发送错误提示信息;
如果用户账号具有重命名权限,执行将源名称节点的源端内存目录中的目标文件结构锁定的步骤。
在本公开的另一个实施例中,将源名称节点的源端内存目录中的目标文件结构锁定之后,还包括:
在源端文件操作列表中增加对目标文件的重命名操作记录,并在源端事务日志中增加重命名操作记录。
在本公开的另一个实施例中,该方法还包括:
向目的名称节点发送第一目的文件重命名请求,该第一目的文件重命名请求包括目标文件结构和登录终端中文件管理应用的用户账号;
当接收到第一目的文件重命名请求,校验用户账号是否具有重命名权限;
如果用户账号不具有重命名权限,向终端发送错误提示信息;
如果用户账号具有重命名权限,执行将目标文件结构添加到目的名称节点的目的端内存目录中的步骤。
在本公开的另一个实施例中,将目的端内存目录中的目标文件结构锁定之后,还包括:
在目的端文件操作列表中增加对目标文件的重命名操作记录,并在目的端事务日志中增加重命名操作记录。
在本公开的另一个实施例中,该方法还包括:
如果目的名称节点未成功锁定目标文件结构,向终端发送锁定失败消息;
当接收到锁定失败消息,向源名称节点发送第二源文件重命名请求;
当接收到第二源文件重命名请求时,将目标文件结构从源端内存目录中解锁,将重命名操作记录从源端文件操作列表中删除,并在源端事务日志中增加对目标文件结构的解锁操作记录。
在本公开的另一个实施例中,将源内存目录中的目标文件结构删除之后,还包括:
将重命名操作记录从源端文件操作列表中删除,并在源端事务日志中增加对目标文件结构的删除操作记录。
在本公开的另一个实施例中,将目的端内存目录中的目标文件结构解锁之后,还包括:
将重命名操作记录从目的端文件操作列表中删除,并在目的端事务日志中增加对目标文件结构的解锁操作记录。
在本公开的另一个实施例中,该方法还包括:
检测源端文件操作列表中的重命名操作记录的存储时长是否达到预设时长;
如果重命名操作记录的存储时长未达到预设时长,查询目的名称节点中是否存储有重命名操作记录;
如果目的名称节点中存储有重命名操作记录,触发执行数据节点根据原存储路径和目的存储路径,对目标文件进行移动的步骤;
如果目的名称节点中未存储重命名操作记录,将目标文件结构从源端内存目录中解锁,将重命名操作记录从源端文件操作列表中删除,并在源端事务日志中增加对目标文件结构的解锁操作记录。
在本公开的另一个实施例中,该方法还包括:
检测目的端文件操作列表中的重命名操作记录的存储时长是否达到预设时长;
如果重命名操作记录的存储时长未达到预设时长,查询源名称节点中是否存储有重命名操作记录;
如果源名称节点中存储有重命名操作记录,等待后续的处理操作;
如果源名称节点未存储重命名操作记录,将目的端内存目录中的目标文件结构解锁,将重命名操作记录从目的端文件操作列表中删除,并在目的端事务日志中增加对目标文件结构的解锁操作记录。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图3是根据一示例性实施例示出的一种分布式文件系统中重命名方法的流程图,如图3所示,分布式文件系统中重命名方法用于图1所示的分布式文件系统中,该分布式文件系统包括源名称节点、目的名称节点、数据节点及终端。该方法包括以下步骤。
在步骤S301中,终端向源名称节点发送第一源文件重命名请求。
因业务需求,当终端需要更改分布式文件系统中某一目标文件的存储路径时,终端可获取该目标文件的原存储路径,进而通过登录文件管理应用,向源名称节点发送第一源文件重命名请求。
其中,目标文件为本公开实施例中需要重命名的文件。源名称节点为管理目标文件的原存储路径的名称节点。第一源文件重命名文件请求可以为Federation RenameSource Phase1的rpc调用请求,该第一源文件重命名文件请求包括目标文件的原存储路径、目标文件的目的存储路径(更改后的存储路径)、登录终端中文件管理应用的用户账号等。
在步骤S302中,当接收到第一源文件重命名请求,源名称节点将源端内存目录中的目标文件结构锁定,并将目标文件结构发送至终端。
考虑到网络坏境的复杂性,终端向源名称节点发送第一源文件重命名请求时,可包括以下几种情况:
第一种情况、终端和源名称节点发生网络分裂,终端发送的第一源文件重命名请求无法传输到源名称节点。
针对该种情况,为降低业务等待时间,终端可设置一个指定时长,并以第一源文件重命名请求的发送时刻为起始时间进行计时,当检测到第一源文件重命名请求的发送时长达到指定时长时,终端可通过文件管理应用的API向文件管理应用发送错误提示信息,以提示文件管理应用当前网络异常,无法进行重命名操作。
第二种情况,终端与源名称节点之间的网络状况良好,终端发送的第一源文件重命名请求能够传输到源名称节点。
为避免分布式文件系统中的文件频繁更改,导致系统性能降低,分布式文件系统中仅部分用户具有管理权限,能够对系统中的文件进行重命名等操作,因此,当源名称节点接收到第一源文件重命名请求时,源名称节点需要校验该用户是否具有重命名权限。校验过程为:源名称节点从第一源文件重命名请求中获取登录文件管理应用的用户账号,并将该用户账号与所存储的具有重命名权限的用户账号进行比较,如果该用户账号与每个具有重命名权限的用户账号均不相同,则可确定该用户账号不具有重命名权限,进而向终端发送错误提示信息,终端通过文件管理应用的API将该错误提示信息发送至文件管理应用,以提示文件管理应用无法进行重命名操作;如果该用户账号与任一具有重命名权限的用户账号相同,则可确定该用户账号具有重命名权限,进而执行以下操作:
1、源名称节点将该目标文件结构锁定。
源名称节点根据原存储路径,从源端(source)内存目录中获取目标文件结构,并将源端内存目录中的目标文件结构锁定。源名称节点将该目标文件结构锁定时,可为源端内存目录添加Federation Rename Feature(联合重命名特征),并将Federation RenameFeature中的isSource设置为ture,从而避免重命名过程中其他用户对该目标文件进行更改。
2、源名称节点在源端文件操作列表中增加对目标文件的重命名操作记录。
其中,源端文件操作列表可以用Pending Federation Rename::Source List表示。重命名操作记录是指将目标文件由原存储路径移动到目的存储路径的操作。
3、源名称节点在源端事务日志中增加重命名操作记录。
其中,源端事务日志可以为edit log,该源端事务日志包括至少两个日志存储节点,至少两个日志存储节点通过将所存储的操作记录同步,保证了分布式文件系统的高可用性。源名称节点在edit log中所增加的重命名操作记录rename可以为:OP_FEDERATION_RENAME_SRC_PHASE1。
如果源名称节点通过上述步骤1~步骤3将目标文件结构成功锁定,源名称节点可向终端发送锁定成功消息,该锁定成功消息包括目的存储路径、目标文件结构等,并执行步骤S303;如果源名称节点通过上述步骤1~步骤3未将目标文件结构成功锁定,源名称节点可向终端发送锁定失败消息,当接收到锁定失败消息后,终端通过文件管理应用的API将该锁定失败信息发送至文件管理应用,以提示文件管理应用无法进行重命名操作。
在步骤S303,当接收到目标文件结构,终端向目的名称节点发送第一目的文件重命名请求。
当接收到锁定成功消息,并从锁定成功消息中获取到目标文件结构后,终端将向目的文件节点发送第一目标文件重命名请求。其中,目的名称节点为管理目标文件的目的存储路径的名称节点。第一目标文件重命名请求可以为Federation Rename Dest Phase1的rpc调用请求,该第一目标文件重命名请求包括目的存储路径、登录终端中文件管理应用的用户账号及目标文件结构等。
在步骤S304中,当接收到第一目的文件重命名请求,目的名称节点将目标文件结构添加到目的端内存目录中,将目的端内存目录中的目标文件结构锁定,并向终端发送第一响应成功消息。
考虑到网络坏境的复杂性,终端向目的名称节点发送第一源文件重命名请求时,可包括以下几种情况:
第一种情况、终端和目的名称节点发生网络分裂,终端发送的第一目的文件重命名请求无法传输到目的名称节点。
针对该种情况,为降低业务等待时间,终端可设置一个指定时长,并以第一目的文件重命名请求的发送时刻为起始时间进行计时,当检测到第一目的文件重命名请求的发送时长达到指定时长时,终端可通过文件管理应用的API向文件管理应用发送错误提示信息,以提示文件管理应用当前网络异常,无法进行重命名操作。
第二种情况,终端与目的名称节点之间的网络状况良好,终端发送的第一目的文件重命名请求能够传输到目的名称节点。
针对该种情况,当目的名称节点接收到第一目的文件重命名请求时,目的名称节点校验该用户是否具有重命名权限。校验过程为:目的名称节点从第一目的文件重命名请求中获取登录文件管理应用的用户账号,并将该用户账号与所存储的具有重命名权限的用户账号进行比较,如果该用户账号与每个具有重命名权限的用户账号均不相同,则可确定该用户账号不具有重命名权限,进而向终端发送错误提示信息,终端通过文件管理应用的API将该错误提示信息发送至文件管理应用,以提示文件管理应用无法进行重命名操作;如果该用户账号与任一具有重命名权限的用户账号相同,则可确定该用户账号具有重命名权限,进而执行以下操作:
1、目的名称节点将目标文件结构添加到目的端内存目录中,并将目的端内存目录中的目标文件结构锁定。
目的名称节点根据目的存储路径,将目标文件结构添加到目的端内存目录中,并将目的端内存目录中的目标文件结构锁定。目的名称节点将目标文件结构锁定时,可为目的端内存目录添加Federation Rename Feature(联合重命名特征),并将FederationRename Feature中的isSource设置为false,从而避免重命名过程中其他用户对该目标文件进行更改。
2、目的名称节点在目的端文件操作列表中增加对目标文件的重命名操作记录。
其中,目的端文件操作列表可以用Pending Federation Rename::dest List表示。重命名操作记录是指将目标文件由原存储路径移动到目的存储路径的操作。
3、目的名称节点在目的端事务日志中增加重命名操作记录。
其中,目的端事务日志可以为edit log,该目的端事务日志包括至少两个日志存储节点,至少两个日志存储节点通过将所存储的操作记录同步,保证了分布式文件系统的高可用性。目的名称节点在edit log中所增加的重命名操作记录rename可以为:OP_FEDERATION_RENAME_DEST_PHASE1。
如果目的名称节点通过上述步骤1~步骤3将目标文件结构成功锁定后,目的名称节点可向终端发送第一响应成功消息,并执行步骤S305,该第一响应成功消息包括原存储路径、目的存储路径、目标文件结构等;如果目的名称节点通过上述步骤1~步骤3未将目标文件结构锁定后,源名称节点向终端发送第一响应失败消息,当接收到第一响应失败消息时,终端可向源名称节点发送第二源文件重命名请求,该第二源文件重命名文件请求可以为Federation Rename Source Phase2的rpc调用请求,该第二源文件重命名文件请求包括目标文件的原存储路径、目标文件的目的存储路径、登录终端中文件管理应用的用户账号等,当接收到第二源文件重命名请求时,源名称节点执行以下操作:
1、源名称节点将目标文件结构从源端内存目录中解锁。
源名称节点将在源端内存目录中添加的Federation Rename Feature(联合重命名特征)删除,从而将目标文件结构从源端内存目录中解锁。
2、源名称节点将重命名操作记录从源端文件操作列表中删除。
源名称节点将重命名操作记录rename从Pending Federation Rename::SourceList中删除。
3、源名称节点在源端事务日志中增加对目标文件结构的解锁操作记录。
源名称节点在edit log中所增加的对目标文件结构的解锁操作记录cancel可以为:OP_FEDERATION_RENAME_SRC_PHASE2。
如果源名称节点将目标文件结构从源端内存目录中成功解锁,源名称节点可向终端发送解锁成功消息,当接收到解锁成功消息后,终端将目的节点对目标文件锁定失败的原因通过文件管理应用的API发送至文件管理应用;如果终端向源名称节点发送第二源文件重命名请求后,在指定时长内未接收到源名称节点返回的任何消息,终端可通过文件管理应用的API向文件管理应用发送错误提示信息,以提示文件管理应用无法进行重命名操作,同时对于源名称节点中锁定的目标文件结构,可通过后续步骤进行解锁,从而确保源名称节点和目的名称节点之间的一致性。
在步骤S305中,当接收到第一响应成功消息,终端向数据节点发送数据文件移动请求。
当接收到第一响应成功消息时,终端可向数据节点发送数据文件移动请求。其中,数据文件移动请求可以为Federation Rename Datanode的rpc调用请求,该数据移动请求包括原存储路径、目的存储路径等,以触发数据节点将目标文件由原存储路径对应的数据池移动到目的存储路径对应的数据池。
在步骤S306中,当接收到数据文件移动请求,数据节点根据原存储路径和目的存储路径,对目标文件进行移动,并向终端发送移动成功消息。
当接收到数据文件移动请求时,数据节点根据原存储路径,确定存储目标文件的原数据池,根据目的存储路径,确定存储目标文件的当前数据池,进而将目标文件由原数据池移动到当前数据池。如果数据节点对目标文件移动成功后,则数据节点向终端发送移动成功消息,并执行步骤S307;如果数据节点对目标文件移动失败,则数据节点可向终端发送移动失败消息,当接收到移动失败消息后,终端可通过文件管理应用的API向文件管理应用发送错误提示信息,以提示文件管理应用无法进行重命名操作,同时对于源名称节点和目的名称节点中锁定的目标文件结构,可通过后续步骤进行解锁,从而确保源名称节点和目的名称节点之间的一致性。
在步骤S307中,当接收到移动成功消息,终端向源名称节点发送第三源文件重命名请求。
当接收到移动成功消息时,终端可向源名称节点发送第三源文件重命名请求。其中,第三源文件重命名请求可以为Federation Rename Source Phase3的rpc调用请求,该第三源文件重命名请求包括目标文件的原存储路径等。
在步骤S308中,当接收到第三源文件重命名请求,源名称节点将目标文件结构从源端内存目录中删除,并向终端发送第二响应成功消息。
当接收到第三源文件重命名请求时,源名称节点将执行以下操作:
1、源名称节点将源端内存目录中的目标文件结构删除。
源名称节点修改源端内存目录,将锁定的目标文件结构从源端内存目录中删除。
2、源名称节点将重命名操作记录从源端文件操作列表中删除。
源名称节点将重命名操作记录rename从Pending Federation Rename::SourceList中删除。
3、源名称节点在源端事务日志中增加对目标文件结构的删除操作记录。
源名称节点在edit log中所增加的对目标文件结构的删除操作记录可以为:OP_FEDERATION_RENAME_SRC_PHASE3。
如果源名称节点将目标文件结构从源端内存目录中成功删除,源名称节点可向终端发送第二响应成功消息,并执行步骤S309;如果终端和源名称节点发生网络分裂,终端向源名称节点发送第三源文件重命名请求后,在指定时长内未接收到源名称节点返回的任何消息,终端可通过文件管理应用的API向文件管理应用发送错误提示信息,以提示文件管理应用无法进行重命名操作,同时对于源名称节点中锁定的目标文件结构,可通过后续步骤进行解锁,从而确保源名称节点和目的名称节点之间的一致性。
在步骤S309中,当接收到第二响应成功消息,终端向目的名称节点发送第二目的文件重命名请求。
当接收到源名称节点发送的第二响应成功消息时,终端可向目的名称节点发送第二目的文件重命名请求。其中,第二目的文件重命名请求可以为Federation Rename DestPhase2的rpc调用请求,该第二目标文件重命名请求包括目标文件的目的存储路径等。
在步骤S310中,当接收到第二目的文件重命名请求,目的名称节点将目的端内存目录中的目标文件结构解锁,并向终端发送解锁成功消息。
当接收到第二目的文件重命名请求时,目的名称节点执行以下操作;
1、目的名称节点将目的端内存目录中的目标文件结构解锁。
目的名称节点修改目的端内存目录,并将目的端内存目录中的FederationRename Feature删除,从而将该目标文件从源端内存目录中解锁。
2、目的名称节点将重命名操作记录从目的端文件操作列表中删除。
目的名称节点将重命名操作记录rename从Pending Federation Rename::destList中删除。
3、目的名称节点在目的端事务日志中增加对目标文件结构的解锁操作记录。
目的名称节点在edit log中所增加的对目标文件结构的解锁操作记录可以为:OP_FEDERATION_RENAME_DEST_PHASE2。
如果目的名称节点将目的端内存目录中的目标文件结构成功解锁,目的名称节点可向终端发送解锁成功消息,以通知终端成功对目标文件进行解锁。
在本公开实施例中,为确保源名称节点和目的名称节点的一致性,源名称节点和目的名称节点还将执行如下修复操作:
对于源名称节点,源名称节点检测源端文件操作列表中的重命名操作记录的存储时长是否达到预设时长,如果重命名操作记录的存储时长未达到预设时长,源名称节点查询目的名称节点中是否存储有重命名操作记录,如果目的名称节点中存储有重命名操作记录,源名称节点触发终端向数据节点发送数据文件移动请求,以使数据节点能够根据原存储路径和目的存储路径,对目标文件进行移动,进而由终端触发源名称节点将目标文件结构从源端内存目录中删除,并触发目的名称节点将目标文件结构从目的端内存目录中解锁;如果目的名称节点中未存储重命名操作记录,源名称节点将目标文件结构从源端内存目录中解锁,将重命名操作记录从源端文件操作列表中删除,并在源端事务日志中增加对目标文件结构的解锁操作记录。其中,预设时长可根据源名称节点和目的名称节点的处理能力确定。
对于目的名称节点,目的名称节点检测目的端文件操作列表中的重命名操作记录的存储时长是否达到预设时长,如果重命名操作记录的存储时长未达到预设时长,目的名称节点查询源名称节点中是否存储有重命名操作记录,如果源名称节点中存储有重命名操作记录,目的名称节点等待后续的处理操作;如果源名称节点未存储重命名操作记录,目的名称节点将目的端内存目录中的目标文件结构解锁,将重命名操作记录从目的端文件操作列表中删除,并在目的端事务日志中增加对目标文件结构的解锁操作记录。
在步骤S311中,当接收到解锁成功消息,终端确定完成对目标文件的重命名。
当接收到解锁成功消息时,终端确定完成对目标文件的重命名,从而通过文件管理应用的API向文件管理应用发送重命名成功消息。如果终端和目的名称节点发生网络分裂,终端发送第二目的文件重命名请求后,在指定时长内未接收到目的名称节点发送的消息,终端可通过文件管理应用的API向文件管理应用发送错误提示信息,以提示文件管理应用无法进行重命名操作,同时可通过后续步骤进行解锁,从而确保源名称节点和目的名称节点之间的一致性。
本公开实施例提供的方法,在对目标文件重命名过程中,将源名称节点和目的名称节点中的目标文件结构锁定,当在数据节点上完成对目标文件的移动后,源名称节点将目标文件结构删除,目的名称节点将目标文件结构解锁,避免了重命名过程中目标文件被修改,同时避免目标文件结构同时存储于不同名称节点,从而确保分布式文件系统能够正常运行。
图4是根据一示例性实施例示出的一种分布式文件系统中重命名装置的结构示意图,该分布式文件系统包括源名称节点、目的名称节点、数据节点及终端,参照图4,该装置包括:第一文件结构锁定模块401、文件结构发送模块402、文件结构添加模块403、第二文件结构锁定模块404、文件移动模块405、文件结构删除模块406及第一文件结构解锁模块407。
该第一文件结构锁定模块401被配置为将源名称节点的源端内存目录中的目标文件结构锁定;
该文件结构发送模块402被配置为将目标文件结构发送至终端,由终端发送至目的名称节点;
该文件结构添加模块403被配置为将目标文件结构添加到目的节点的目的端内存目录中;
该第二文件结构锁定模块404被配置为将目的端内存目录中的目标文件结构锁定;
该文件移动模块405被配置为根据原存储路径和目的存储路径,对目标文件进行移动;
该文件结构删除模块406被配置为将目标文件结构从源端内存目录中删除;
该第一文件结构解锁模块407被配置为将目的端内存目录中的目标文件结构解锁,以完成对目标文件的重命名。
在本公开的另一个实施例中,该装置还包括:第一请求发送模块、第一账号校验模块、第一提示信息发送模块及第一文件结构锁定模块。
该第一请求发送模块被配置为向源名称节点发送第一源文件重命名请求,第一源文件重命名请求包括登录终端中文件管理应用的用户账号;
该第一账号校验模块被配置为当接收到第一源文件重命名请求,校验用户账号是否具有重命名权限;
该第一提示信息发送模块被配置为如果用户账号不具有重命名权限,向终端发送错误提示信息;
该第一文件结构锁定模块被配置为如果用户账号具有重命名权限,将源端内存目录中的目标文件结构锁定。
在本公开的另一个实施例中,该装置还包括:第一操作记录增加模块。
该第一操作记录增加模块被配置为在源端文件操作列表中增加对目标文件的重命名操作记录,并在源端事务日志中增加重命名操作记录。
在本公开的另一个实施例中,该装置还包括:第二请求发送模块、第二账号校验模块、第二提示信息发送模块及文件结构添加模块。
该第二请求发送模块被配置为向目的名称节点发送第一目的文件重命名请求,第一目的文件重命名请求包括目标文件结构和登录终端中文件管理应用的用户账号;
该第二账号校验模块被配置为当接收到第一目的文件重命名请求,校验用户账号是否具有重命名权限;
该第二提示信息发送模块被配置为如果用户账号不具有重命名权限,向终端发送错误提示信息;
该文件结构添加模块被配置为如果用户账号具有重命名权限,将目标文件结构添加到目的端内存目录中。
在本公开的另一个实施例中,该装置还包括:第二操作记录增加模块。
该第二操作记录增加模块被配置为在目的端文件操作列表中增加对目标文件的重命名操作记录,并在目的端事务日志中增加重命名操作记录。
在本公开的另一个实施例中,该装置还包括:失败消息发送模块、第一请求发送模块及第二文件结构解锁模块。
该失败消息发送模块被配置为如果目的名称节点未成功锁定目标文件结构,向终端发送锁定失败消息;
该第一请求发送模块被配置为当接收到锁定失败消息,向源名称节点发送第二源文件重命名请求;
该第二文件结构解锁模块被配置为当接收到第二源文件重命名请求时,将目标文件结构从源端内存目录中解锁,将重命名操作记录从源端文件操作列表中删除,并在源端事务日志中增加对目标文件结构的解锁操作记录。
在本公开的另一个实施例中,该装置还包括:第一操作记录管理模块。
该第一操作记录管理模块被配置为将重命名操作记录从源端文件操作列表中删除,并在源端事务日志中增加对目标文件结构的删除操作记录。
在本公开的另一个实施例中,该装置还包括:第二操作记录管理模块。
该第二操作记录管理模块被配置为将重命名操作记录从目的端文件操作列表中删除,并在目的端事务日志中增加对目标文件结构的解锁操作记录。
在本公开的另一个实施例中,该装置还包括:第一检测模块、第一查询模块、文件移动模块及第二文件结构解锁模块。
该第一检测模块被配置为检测源端文件操作列表中的重命名操作记录的存储时长是否达到预设时长;
该第一查询模块被配置为如果重命名操作记录的存储时长未达到预设时长,查询目的名称节点中是否存储有重命名操作记录;
该文件移动模块被配置为如果目的名称节点中存储有重命名操作记录,根据原存储路径和目的存储路径,对目标文件进行移动;
该第二文件结构解锁模块被配置为如果目的名称节点中未存储重命名操作记录,将目标文件结构从源端内存目录中解锁,将重命名操作记录从源端文件操作列表中删除,并在源端事务日志中增加对目标文件结构的解锁操作记录。
在本公开的另一个实施例中,该装置还包括:第二检测模块、第二查询模块、操作等待模块及第一文件结构解锁模块。
该第二检测模块被配置为检测目的端文件操作列表中的重命名操作记录的存储时长是否达到预设时长;
该第二查询模块被配置为如果重命名操作记录的存储时长未达到预设时长,查询源名称节点中是否存储有重命名操作记录;
该操作等待模块被配置为如果源名称节点中存储有重命名操作记录,等待后续的处理操作;
该第一文件结构解锁模块被配置为如果源名称节点未存储重命名操作记录,将目的端内存目录中的目标文件结构解锁,将重命名操作记录从目的端文件操作列表中删除,并在目的端事务日志中增加对目标文件结构的解锁操作记录。
本公开实施例提供的装置,在对目标文件重命名过程中,将源名称节点和目的名称节点中的目标文件结构锁定,当在数据节点上完成对目标文件的移动后,源名称节点将目标文件结构删除,目的名称节点将目标文件结构解锁,避免了重命名过程中目标文件被修改,同时避免目标文件结构同时存储于不同名称节点,从而确保分布式文件系统能够正常运行。
图5是根据一示例性实施例示出的一种分布式文件系统。参照图5,该分布式文件系统包括源名称节点501、目的名称节点502、数据节点503及终端504;
源名称节点501,用于将源名称节点的源端内存目录中的目标文件结构锁定,并将目标文件结构发送至终端;
终端504,用于将目标文件结构发送至目的名称节点502;
目的名称节点502,用于将目标文件结构添加到目的名称节点的目的端内存目录中,并将目的端内存目录中的目标文件结构锁定;
数据节点503,用于根据原存储路径和目的存储路径,对目标文件进行移动;
源名称节点501,用于将目标文件结构从源端内存目录中删除;
目的名称节点502,用于将目的端内存目录中的目标文件结构解锁,以完成对目标文件的重命名。
在本公开的另一个实施例中,终端504,用于向源名称节点501发送第一源文件重命名请求,该第一源文件重命名请求包括登录终端中文件管理应用的用户账号;
源名称节点501,用于当接收到第一源文件重命名请求,校验用户账号是否具有重命名权限;
源名称节点501,用于如果用户账号不具有重命名权限,向终端504发送错误提示信息;
源名称节点501,用于如果用户账号具有重命名权限,将源名称节点的源端内存目录中的目标文件结构锁定。
在本公开的另一个实施例中,源名称节点501,用于在源端文件操作列表中增加对目标文件的重命名操作记录,并在源端事务日志中增加重命名操作记录。
在本公开的另一个实施例中,终端504,用于向目的名称节点502发送第一目的文件重命名请求,该第一目的文件重命名请求包括目标文件结构和登录终端中文件管理应用的用户账号;
目的名称节点502,用于当接收到第一目的文件重命名请求,校验用户账号是否具有重命名权限;
目的名称节点502,用于如果用户账号不具有重命名权限,向终端504发送错误提示信息;
目的名称节点502,用于如果用户账号具有重命名权限,将目标文件结构添加到目的名称节点的目的端内存目录中。
在本公开的另一个实施例中,目的名称节点502,用于在目的端文件操作列表中增加对目标文件的重命名操作记录,并在目的端事务日志中增加重命名操作记录。
在本公开的另一个实施例中,目的名称节点502,用于如果目的名称节点未成功锁定目标文件结构,向终端504发送锁定失败消息;
终端504,用于当接收到锁定失败消息,向源名称节点501发送第二源文件重命名请求;
源名称节点501,用于当接收到第二源文件重命名请求时,将目标文件结构从源端内存目录中解锁,将重命名操作记录从源端文件操作列表中删除,并在源端事务日志中增加对目标文件结构的解锁操作记录。
在本公开的另一个实施例中,源名称节点501,用于将重命名操作记录从源端文件操作列表中删除,并在源端事务日志中增加对目标文件结构的删除操作记录。
在本公开的另一个实施例中,目的名称节点502,还用于将重命名操作记录从目的端文件操作列表中删除,并在目的端事务日志中增加对目标文件结构的解锁操作记录。
在本公开的另一个实施例中,源名称节点501,用于检测源端文件操作列表中的重命名操作记录的存储时长是否达到预设时长;
源名称节点501,用于如果重命名操作记录的存储时长未达到预设时长,查询目的名称节点502中是否存储有重命名操作记录;
源名称节点501,用于如果目的名称节点502中存储有重命名操作记录,触发执行数据节点503根据原存储路径和目的存储路径,对目标文件进行移动的步骤;
源名称节点501,用于如果目的名称节点502中未存储重命名操作记录,将目标文件结构从源端内存目录中解锁,将重命名操作记录从源端文件操作列表中删除,并在源端事务日志中增加对目标文件结构的解锁操作记录。
在本公开的另一个实施例中,目的名称节点502,用于检测目的端文件操作列表中的重命名操作记录的存储时长是否达到预设时长;
目的名称节点502,用于如果重命名操作记录的存储时长未达到预设时长,查询源名称节点501中是否存储有重命名操作记录;
目的名称节点502,用于如果源名称节点501中存储有重命名操作记录,等待后续的处理操作;
目的名称节点502,用于如果源名称节点未存储重命名操作记录,将目的端内存目录中的目标文件结构解锁,将重命名操作记录从目的端文件操作列表中删除,并在目的端事务日志中增加对目标文件结构的解锁操作记录。
本公开实施例提供的系统,在对目标文件重命名过程中,将源名称节点和目的名称节点中的目标文件结构锁定,当在数据节点上完成对目标文件的移动后,源名称节点将目标文件结构删除,目的名称节点将目标文件结构解锁,避免了重命名过程中目标文件被修改,同时避免目标文件结构同时存储于不同名称节点,从而确保分布式文件系统能够正常运行。
关于上述实施例中的系统,其中各个设备执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种分布式文件系统中重命名装置600的框图。例如,装置600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图6,装置600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/O)接口612,传感器组件614,以及通信组件616。
处理组件602通常控制装置600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604被配置为存储各种类型的数据以支持在装置600的操作。这些数据的示例包括用于在装置600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为装置600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为装置600生成、管理和分配电力相关联的组件。
多媒体组件608包括在所述装置600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当装置600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当装置600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为装置600提供各个方面的状态评估。例如,传感器组件614可以检测到装置600的打开/关闭状态,组件的相对定位,例如所述组件为装置600的显示器和小键盘,传感器组件614还可以检测装置600或装置600一个组件的位置改变,用户与装置600接触的存在或不存在,装置600方位或加速/减速和装置600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616被配置为便于装置600和其他设备之间有线或无线方式的通信。装置600可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由装置600的处理器620执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行分布式文件系统中重命名方法。
图7是根据一示例性实施例示出的一种分布式文件系统中重命名装置的700的框图。例如,装置700可以被提供为一服务器。参照图7,装置700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行上述方法分布式文件系统中重命名方法。
装置700还可以包括一个电源组件726被配置为执行装置700的电源管理,一个有线或无线网络接口750被配置为将装置700连接到网络,和一个输入输出(I/O)接口758。装置700可以操作基于存储在存储器732的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (22)
1.一种分布式文件系统中重命名方法,其特征在于,所述分布式文件系统包括源名称节点、目的名称节点、数据节点及终端,所述方法包括:
将所述源名称节点的源端内存目录中的目标文件结构锁定,并将所述目标文件结构发送至所述终端,由所述终端发送至所述目的名称节点;
将所述目标文件结构添加到所述目的名称节点的目的端内存目录中,并将所述目的端内存目录中的所述目标文件结构锁定;
根据原存储路径和目的存储路径,对所述目标文件进行移动;
将所述目标文件结构从所述源端内存目录中删除;
将所述目的端内存目录中的所述目标文件结构解锁,以完成对所述目标文件的重命名。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向所述源名称节点发送第一源文件重命名请求,所述第一源文件重命名请求包括登录所述终端中文件管理应用的用户账号;
当接收到所述第一源文件重命名请求,校验所述用户账号是否具有重命名权限;
如果所述用户账号不具有重命名权限,向所述终端发送错误提示信息;
如果所述用户账号具有重命名权限,执行将所述源名称节点的源端内存目录中的目标文件结构锁定的步骤。
3.根据权利要求1所述的方法,其特征在于,所述将所述源名称节点的源端内存目录中的目标文件结构锁定之后,还包括:
在源端文件操作列表中增加对所述目标文件的重命名操作记录,并在源端事务日志中增加所述重命名操作记录。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向所述目的名称节点发送第一目的文件重命名请求,所述第一目的文件重命名请求包括所述目标文件结构和登录所述终端中文件管理应用的用户账号;
当接收到所述第一目的文件重命名请求,校验所述用户账号是否具有重命名权限;
如果所述用户账号不具有重命名权限,向所述终端发送错误提示信息;
如果所述用户账号具有重命名权限,执行将所述目标文件结构添加到所述目的名称节点的目的端内存目录中的步骤。
5.根据权利要求1所述的方法,其特征在于,所述将所述目的端内存目录中的所述目标文件结构锁定之后,还包括:
在目的端文件操作列表中增加对所述目标文件的重命名操作记录,并在目的端事务日志中增加所述重命名操作记录。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果所述目的名称节点未成功锁定所述目标文件结构,向所述终端发送锁定失败消息;
当接收到所述锁定失败消息,向所述源名称节点发送第二源文件重命名请求;
当接收到所述第二源文件重命名请求时,将所述目标文件结构从所述源端内存目录中解锁,将所述重命名操作记录从所述源端文件操作列表中删除,并在所述源端事务日志中增加对所述目标文件结构的解锁操作记录。
7.根据权利要求3所述的方法,其特征在于,所述将所述源内存目录中的所述目标文件结构删除之后,还包括:
将所述重命名操作记录从所述源端文件操作列表中删除,并在所述源端事务日志中增加对所述目标文件结构的删除操作记录。
8.根据权利要求5所述的方法,其特征在于,所述将所述目的端内存目录中的所述目标文件结构解锁之后,还包括:
将所述重命名操作记录从所述目的端文件操作列表中删除,并在所述目的端事务日志中增加对所述目标文件结构的解锁操作记录。
9.根据权利要求3或6或7所述的方法,其特征在于,所述方法还包括:
检测所述源端文件操作列表中的所述重命名操作记录的存储时长是否达到预设时长;
如果所述重命名操作记录的存储时长未达到所述预设时长,查询所述目的名称节点中是否存储有所述重命名操作记录;
如果所述目的名称节点中存储有所述重命名操作记录,触发执行所述数据节点根据原存储路径和目的存储路径,对所述目标文件进行移动的步骤;
如果所述目的名称节点中未存储所述重命名操作记录,将所述目标文件结构从所述源端内存目录中解锁,将所述重命名操作记录从所述源端文件操作列表中删除,并在所述源端事务日志中增加对所述目标文件结构的解锁操作记录。
10.根据权利要求5或8所述的方法,其特征在于,所述方法还包括:
检测所述目的端文件操作列表中的所述重命名操作记录的存储时长是否达到预设时长;
如果所述重命名操作记录的存储时长未达到所述预设时长,查询所述源名称节点中是否存储有所述重命名操作记录;
如果所述源名称节点中存储有所述重命名操作记录,等待后续的处理操作;
如果所述源名称节点未存储所述重命名操作记录,将所述目的端内存目录中的所述目标文件结构解锁,将所述重命名操作记录从所述目的端文件操作列表中删除,并在所述目的端事务日志中增加对所述目标文件结构的解锁操作记录。
11.一种分布式文件系统中重命名装置,其特征在于,所述分布式文件系统包括源名称节点、目的名称节点、数据节点及终端,所述装置包括:
第一文件结构锁定模块,用于将所述源名称节点的源端内存目录中的目标文件结构锁定;
文件结构发送模块,用于将所述目标文件结构发送至所述终端,由所述终端发送至所述目的名称节点;
文件结构添加模块,用于将所述目标文件结构添加到所述目的名称节点的目的端内存目录中;
第二文件结构锁定模块,用于将所述目的端内存目录中的所述目标文件结构锁定;
文件移动模块,用于根据原存储路径和目的存储路径,对所述目标文件进行移动;
文件结构删除模块,用于将所述目标文件结构从所述源端内存目录中删除;
第一文件结构解锁模块,用于将所述目的端内存目录中的所述目标文件结构解锁,以完成对所述目标文件的重命名。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第一请求发送模块,用于向所述源名称节点发送第一源文件重命名请求,所述第一源文件重命名请求包括登录所述终端中文件管理应用的用户账号;
第一账号校验模块,用于当接收到所述第一源文件重命名请求,校验所述用户账号是否具有重命名权限;
第一提示信息发送模块,用于如果所述用户账号不具有重命名权限,向所述终端发送错误提示信息;
所述第一文件结构锁定模块,用于如果所述用户账号具有重命名权限,将所述源名称节点的源端内存目录中的目标文件结构锁定。
13.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第一操作记录增加模块,用于在源端文件操作列表中增加对所述目标文件的重命名操作记录,并在源端事务日志中增加所述重命名操作记录。
14.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第二请求发送模块,用于向所述目的名称节点发送第一目的文件重命名请求,所述第一目的文件重命名请求包括所述目标文件结构和登录所述终端中文件管理应用的用户账号;
第二账号校验模块,用于当接收到所述第一目的文件重命名请求,校验所述用户账号是否具有重命名权限;
第二提示信息发送模块,用于如果所述用户账号不具有重命名权限,向所述终端发送错误提示信息;
所述文件结构添加模块,用于如果所述用户账号具有重命名权限,将所述目标文件结构添加到所述目的名称节点的目的端内存目录中。
15.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第二操作记录增加模块,用于在目的端文件操作列表中增加对所述目标文件的重命名操作记录,并在目的端事务日志中增加所述重命名操作记录。
16.根据权利要求13所述的装置,其特征在于,所述装置还包括:
失败消息发送模块,用于如果所述目的名称节点未成功锁定所述目标文件结构,向所述终端发送锁定失败消息;
第一请求发送模块,用于当接收到所述锁定失败消息,向所述源名称节点发送第二源文件重命名请求;
第二文件结构解锁模块,用于当接收到所述第二源文件重命名请求时,将所述目标文件结构从所述源端内存目录中解锁,将所述重命名操作记录从所述源端文件操作列表中删除,并在所述源端事务日志中增加对所述目标文件结构的解锁操作记录。
17.根据权利要求13所述的装置,其特征在于,所述装置还包括:
第一操作记录管理模块,用于将所述重命名操作记录从所述源端文件操作列表中删除,并在所述源端事务日志中增加对所述目标文件结构的删除操作记录。
18.根据权利要求15所述的装置,其特征在于,所述装置还包括:
第二操作记录管理模块,用于将所述重命名操作记录从所述目的端文件操作列表中删除,并在所述目的端事务日志中增加对所述目标文件结构的解锁操作记录。
19.根据权利要求13或16或17所述的装置,其特征在于,所述装置还包括:
第一检测模块,用于检测所述源端文件操作列表中的所述重命名操作记录的存储时长是否达到预设时长;
第一查询模块,用于如果所述重命名操作记录的存储时长未达到所述预设时长,查询所述目的名称节点中是否存储有所述重命名操作记录;
所述文件移动模块,用于如果所述目的名称节点中存储有所述重命名操作记录,根据原存储路径和目的存储路径,对所述目标文件进行移动;
第二文件结构解锁模块,用于如果所述目的名称节点中未存储所述重命名操作记录,将所述目标文件结构从所述源端内存目录中解锁,将所述重命名操作记录从所述源端文件操作列表中删除,并在所述源端事务日志中增加对所述目标文件结构的解锁操作记录。
20.根据权利要求15或18所述的装置,其特征在于,所述装置还包括:
第二检测模块,用于检测所述目的端文件操作列表中的所述重命名操作记录的存储时长是否达到预设时长;
第二查询模块,用于如果所述重命名操作记录的存储时长未达到所述预设时长,查询所述源名称节点中是否存储有所述重命名操作记录;
操作等待模块,用于如果所述源名称节点中存储有所述重命名操作记录,等待后续的处理操作;
所述第一文件结构解锁模块,用于如果所述源名称节点未存储所述重命名操作记录,将所述目的端内存目录中的所述目标文件结构解锁,将所述重命名操作记录从所述目的端文件操作列表中删除,并在所述目的端事务日志中增加对所述目标文件结构的解锁操作记录。
21.一种分布式文件系统,其特征在于,所述分布式文件系统包括源名称节点、目的名称节点、数据节点及终端;
所述源名称节点,用于将源端内存目录中的目标文件结构锁定,并将所述目标文件结构发送至所述终端;
所述终端,用于将所述目标文件结构发送至所述目的名称节点;
所述目的名称节点,用于将所述目标文件结构添加到目的端内存目录中,并将所述目的端内存目录中的所述目标文件结构锁定;
所述数据节点,用于根据原存储路径和目的存储路径,对所述目标文件进行移动;
所述源名称节点,用于将所述目标文件结构从所述源端内存目录中删除;
所述目的名称节点,用于将所述目的端内存目录中的所述目标文件结构解锁,以完成对所述目标文件的重命名。
22.一种分布式文件系统中重命名装置,所述分布式文件系统包括源名称节点、目的名称节点、数据节点及终端,其特征在于,包括:
处理器;
用于存储处理器可执行的指令的存储器;
其中,所述处理器被配置为:
将所述源名称节点的源端内存目录中的目标文件结构锁定,并将所述目标文件结构发送至所述终端,由所述终端发送至所述目的名称节点;
将所述目标文件结构添加到所述目的名称节点的目的端内存目录中,并将所述目的端内存目录中的所述目标文件结构锁定;
根据原存储路径和目的存储路径,对所述目标文件进行移动;
将所述目标文件结构从所述源端内存目录中删除;
将所述目的端内存目录中的所述目标文件结构解锁,以完成对所述目标文件的重命名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810419918.8A CN108647285B (zh) | 2018-05-04 | 2018-05-04 | 分布式文件系统中重命名方法、装置及分布式文件系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810419918.8A CN108647285B (zh) | 2018-05-04 | 2018-05-04 | 分布式文件系统中重命名方法、装置及分布式文件系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108647285A true CN108647285A (zh) | 2018-10-12 |
CN108647285B CN108647285B (zh) | 2021-06-22 |
Family
ID=63749313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810419918.8A Active CN108647285B (zh) | 2018-05-04 | 2018-05-04 | 分布式文件系统中重命名方法、装置及分布式文件系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108647285B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597923A (zh) * | 2019-09-29 | 2019-12-20 | 腾讯云计算(北京)有限责任公司 | 区块链资源管理方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088484A (zh) * | 2010-12-20 | 2011-06-08 | 南京中兴新软件有限责任公司 | 一种分布式文件系统的写锁定方法及系统 |
US20150269183A1 (en) * | 2014-03-19 | 2015-09-24 | Red Hat, Inc. | File replication using file content location identifiers |
CN107239480A (zh) * | 2016-03-28 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 用于分布式文件系统执行重命名操作的方法和设备 |
-
2018
- 2018-05-04 CN CN201810419918.8A patent/CN108647285B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088484A (zh) * | 2010-12-20 | 2011-06-08 | 南京中兴新软件有限责任公司 | 一种分布式文件系统的写锁定方法及系统 |
US20150269183A1 (en) * | 2014-03-19 | 2015-09-24 | Red Hat, Inc. | File replication using file content location identifiers |
CN107239480A (zh) * | 2016-03-28 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 用于分布式文件系统执行重命名操作的方法和设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597923A (zh) * | 2019-09-29 | 2019-12-20 | 腾讯云计算(北京)有限责任公司 | 区块链资源管理方法、装置及存储介质 |
CN110597923B (zh) * | 2019-09-29 | 2024-02-02 | 腾讯云计算(北京)有限责任公司 | 区块链资源管理方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108647285B (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11641583B2 (en) | Methods and systems for addressing unreported theft or loss of mobile communications devices | |
US9569643B2 (en) | Method for detecting a security event on a portable electronic device and establishing audio transmission with a client computer | |
RU2519522C2 (ru) | Изоляция принятой информации на заблокированном устройстве | |
WO2016173245A1 (zh) | 权限管理方法和装置 | |
US20120303476A1 (en) | Communication devices, networks, services and accompanying methods | |
US9413875B2 (en) | Mobile terminal and control method for the mobile terminal | |
JP6450765B2 (ja) | データをバックアップするための方法および装置並びに電子装置 | |
US20190354352A1 (en) | Facilitation of microservice user interface framework | |
CN105975876A (zh) | 文件共享方法及装置 | |
CN107423394A (zh) | 页面显示方法及装置 | |
CN107169060A (zh) | 终端中的图片处理方法、装置及终端 | |
CN105450835A (zh) | 一种实现紧急联络的方法、装置及智能终端 | |
CN108647285A (zh) | 分布式文件系统中重命名方法、装置及分布式文件系统 | |
CN110045893A (zh) | 直播查询方法及装置 | |
CN105827834A (zh) | 一种移动设备应用方法及装置 | |
CN105245681B (zh) | 标签添加方法和装置 | |
CN105530129A (zh) | 路由器重置方法及装置 | |
CN106533798A (zh) | 检测方法和装置 | |
CN106385470A (zh) | 信息推送方法及装置 | |
Hohl et al. | A context system for a mobile service platform | |
CN109359441A (zh) | 权限配置方法及装置 | |
CN105915603B (zh) | 文件管理方法及装置 | |
CN105162783B (zh) | 操作权限控制方法和装置 | |
CN105472154B (zh) | 通信事件处理方法及装置 | |
CN106326032B (zh) | 处理数据的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |