文件处理方法及装置、存储介质、电子装置与流程

文档序号:26954200发布日期:2021-10-16 03:03阅读:104来源:国知局
文件处理方法及装置、存储介质、电子装置与流程

1.本发明实施例涉及文件处理领域,具体而言,涉及一种文件处理方法及装置、存储介质、电子装置。


背景技术:

2.在视频安防领域,文件需要支持锁定和解锁的功能,文件可能是一段视频录像,也可能是人脸、卡口图片。现有技术中对文件的锁定和解锁是基于特殊的录像存储格式,并不适用于多种场景,也不能保证锁定文件的一致性。
3.针对上述技术问题,相关技术中尚未提出有效的解决方案。


技术实现要素:

4.本发明实施例提供了一种文件处理方法及装置、存储介质、电子装置,以至少解决相关技术中对文件锁定的问题。
5.根据本发明的一个实施例,提供了一种文件处理方法,包括:接收客户端发送的第一请求消息,其中,上述第一请求消息中包括目标文件名和锁定命令,上述请求消息用于请求锁定目标文件;在确定数据库中包括上述目标文件的情况下,将上述锁定命令发送到元数据服务器,其中,上述锁定命令中包括上述目标文件的目标文件号,上述元数据服务器用于基于上述目标文件号对上述目标文件执行锁定操作;基于上述元数据服务器发送的锁定结果修改上述目标文件在上述数据库中的锁定状态,上述锁定状态中包括锁定标记;将上述锁定状态发送至上述客户端。
6.根据本发明的另一个实施例,提供了一种文件处理方法,包括:接收目录服务器发送的锁定命令,其中,上述锁定命令中包括待锁定的目标文件的目标文件号;基于上述目标文件号对上述目标文件执行锁定操作;将锁定结果发送到上述目录服务器,其中,上述目录服务器用于修改上述目标文件在数据库中的锁定状态,上述锁定状态中包括锁定标记。
7.根据本发明的另一个实施例,提供了一种文件处理方法,包括:从元数据服务器中获取数据块,其中,上述数据块包括待锁定数据块和待解锁数据块,上述数据块对应于目标数据;将上述数据块和上述数据块的待执行任务添加至数据队列中,其中,上述待执行任务包括锁定任务或解锁任务;利用异步线程处理上述数据块的待执行任务,得到执行结果,其中,上述执行结果包括对上述数据块锁定的锁定标记,或者,对上述数据块解锁的解锁标记;将上述执行结果发送到上述元数据服务器,其中,上述元数据服务器用于将锁定的数据块从待锁定列表中删除,或者,用于将锁定的数据块从待解锁列表中删除。
8.根据本发明的另一个实施例,提供了一种文件处理装置,包括:第一接收模块,用于接收客户端发送的第一请求消息,其中,上述第一请求消息中包括目标文件名和锁定命令,上述请求消息用于请求锁定目标文件;第一发送模块,用于在确定数据库中包括上述目标文件的情况下,将上述锁定命令发送到元数据服务器,其中,上述锁定命令中包括上述目标文件的目标文件号,上述元数据服务器用于基于上述目标文件号对上述目标文件执行锁
定操作;第一修改模块,用于基于上述元数据服务器发送的锁定结果修改上述目标文件在上述数据库中的锁定状态,上述锁定状态中包括锁定标记;第二发送模块,用于将上述锁定状态发送至上述客户端。
9.在一个示例性实施例中,上述第一发送模块,包括:第一查找单元,用于在上述数据库中查找与上述目标文件名对应的文件,得到上述目标文件;第一发送单元,用于按照上述目标文件号将上述锁定命令发送到上述元数据服务器。
10.在一个示例性实施例中,上述装置还包括:第三接收模块,用于将上述锁定命令发送到上述元数据服务器之后,接收上述客户端发送的第二请求消息,其中,上述第二请求消息中包括目标文件名和解锁命令,上述请求消息用于请求解锁上述目标文件,上述解锁命令中包括上述目标文件号;第三发送模块,用于在确定上述数据库中包括上述目标文件,且上述目标文件处于锁定状态的情况下,按照上述目标文件号将上述解锁命令发送到上述元数据服务器,其中,上述元数据服务器用于对上述目标文件执行解锁操作;第一修改模块,用于基于上述元数据服务器发送的解锁结果修改上述目标文件在上述数据库中的解锁状态;第四接收模块,用于将上述解锁状态发送到上述客户端,其中,上述解锁状态中包括解锁标记。
11.在一个示例性实施例中,上述装置还包括:第二获取模块,用于按照预设周期从上述客户端获取待删除文件信息;第四发送模块,用于发送删除通知到上述元数据服务器,其中,上述删除通知中包括上述待删除文件信息,上述元数据服务器用于将上述待删除文件信息对应的文件从删除。
12.根据本发明的另一个实施例,提供了一种文件处理装置,包括:第二接收模块,用于接收目录服务器发送的锁定命令,其中,上述锁定命令中包括待锁定的目标文件的目标文件号;第一锁定模块,用于基于上述目标文件号对上述目标文件执行锁定操作;第二发送模块,用于将锁定结果发送到上述目录服务器,其中,上述目录服务器用于修改上述目标文件在数据库中的锁定状态,上述锁定状态中包括锁定标记。
13.在一个实例性实施例中,上述第一锁定模块,包括:第一确定单元,用于按照上述目标文件号确定上述目标文件对应的数据节点和上述目标文件的数据块;第一添加单元,用于将上述数据块添加到上述数据节点的待锁定列表中;第二添加单元,用于将上述目标文件添加到元数据列表的锁定文件列表中,以锁定上述目标文件,其中,上述元数据列表包括在元数据服务器中。
14.在一个示例性实施例中,上述装置还包括:第五接收模块,用于将锁定结果发送到上述目录服务器之后,接收上述目录服务器发送的解锁命令,其中,上述解锁命令中包括上述目标文件号;第五发送模块,用于第一执行模块,用于基于上述目标文件号对上述目标文件执行解锁操作;第六发送模块,用于将解锁结果发送到上述目录服务器,其中,上述目录服务器用于修改上述目标文件在数据库中的解锁状态,上述解锁状态中包括解锁标记。
15.在一个示例性实施例中,上述第一执行模块,包括:第一删除单元,用于在确定上述目标文件号包括在上述数据节点的锁定列表中的情况下,将上述目标文件对应的数据块从上述锁定列表中删除;第三添加单元,用于将上述目标文件对应的数据块添加到待解锁列表中;第二删除单元,用于将上述目标文件从元数据列表中删除,以解锁上述目标文件,其中,上述元数据列表包括在元数据服务器中。
16.根据本发明的另一个实施例,提供了一种文件处理装置,包括:第一获取模块,用于从元数据服务器中获取数据块,其中,上述数据块包括待锁定数据块和待解锁数据块,上述数据块对应于目标数据;第一添加模块,用于将上述数据块和上述数据块的待执行任务添加至数据队列中,其中,上述待执行任务包括锁定任务或解锁任务;第一处理模块,用于利用异步线程处理上述数据块的待执行任务,得到执行结果,其中,上述执行结果包括对上述数据块锁定的锁定标记,或者,对上述数据块解锁的解锁标记;第三发送模块,用于将上述执行结果发送到上述元数据服务器,其中,上述元数据服务器用于将锁定的数据块从待锁定列表中删除,或者,用于将锁定的数据块从待解锁列表中删除。
17.在一个示例性实施例中,上述第一获取模块,包括:第二查找单元,用于从上述元数据服务器中的内存中查找到上述数据块,获取上述数据块所在的磁盘信息和上述数据块的存储区域zone信息。
18.在一个示例性实施例中,上述第一处理模块,包括:第一标记单元,用于在上述待执行任务包括锁定任务的情况下,将上述锁定标记写入磁盘中上述数据块的锁定标记位中;第一修改单元,用于在上述磁盘中的锁定存储空间zone中,修改上述数据块的锁定标记、以及与上述数据块对应的锁定区域,得到上述执行结果。
19.在一个示例性实施例中,上述第一处理模块,包括:第三查找单元,用于在上述待执行任务包括解锁任务的情况下,查找上述数据块所在的磁盘和锁定zone;第一清除单元,用于清除上述磁盘中上述数据块的锁定标记;第二清除单元,用于清除上述锁定zone中与上述数据块对应的锁定区域,得到上述执行结果。
20.在一个示例性实施例中,上述装置还包括:第一判断模块,用于清除上述zone中与上述数据块对应的锁定区域,得到上述执行结果之后,判断磁盘中上述zone中的剩余空间;第二添加模块,用于在上述剩余空间均被锁定文件占用的情况下,将存储上述锁定文件的n个锁定zone添加到待迁移列表中,其中,上述n是大于或等于1的自然数;第一合并模块,用于在上述n大于预设阈值的情况下,将上述n个锁定zone合并至上述n个锁定zone中一个目标锁定zone中,以释放上述n个锁定zone中除上述目标锁定zone之外的其他锁定zone的空间。
21.根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
22.根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
23.通过本发明,通过接收客户端发送的第一请求消息,其中,第一请求消息中包括目标文件名和锁定命令,请求消息用于请求锁定目标文件;在确定数据库中包括目标文件的情况下,将锁定命令发送到元数据服务器,其中,锁定命令中包括目标文件的目标文件号,元数据服务器用于基于目标文件号对目标文件执行锁定操作;基于元数据服务器发送的锁定结果修改目标文件在数据库中的锁定状态,锁定状态中包括锁定标记;将锁定状态发送至客户端。实现了在客户端、元数据服务器以及目录服务器中锁定文件的一致性。因此,可以解决相关技术中对文件锁定的问题,达到保证文件锁定的一致性的效果。
附图说明
24.图1是本发明实施例的一种文件处理方法的移动终端的硬件结构框图;
25.图2是根据本发明实施例的文件处理方法的流程图(一);
26.图3是根据本发明实施例的文件处理方法的流程图(二);
27.图4是根据本发明实施例的文件处理方法的流程图(三);
28.图5是根据本发明实施例的各个设备锁定文件时的交互流程图;
29.图6是根据本发明实施例的文件处理装置的结构框图(一);
30.图7是根据本发明实施例的文件处理装置的结构框图(二);
31.图8是根据本发明实施例的文件处理装置的结构框图(三)。
具体实施方式
32.下文中将参考附图并结合实施例来详细说明本发明的实施例。
33.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
34.本技术实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种文件处理方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
35.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的文件处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
36.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
37.在本实施例中提供了一种文件处理方法,图2是根据本发明实施例的文件处理方法的流程图(一),如图2所示,该流程包括如下步骤:
38.步骤s202,接收客户端发送的第一请求消息,其中,第一请求消息中包括目标文件名和锁定命令,请求消息用于请求锁定目标文件;
39.步骤s204,在确定数据库中包括目标文件的情况下,将锁定命令发送到元数据服
务器,其中,锁定命令中包括目标文件的目标文件号,元数据服务器用于基于目标文件号对目标文件执行锁定操作;
40.步骤s206,基于元数据服务器发送的锁定结果修改目标文件在数据库中的锁定状态,锁定状态中包括锁定标记;
41.步骤s208,将锁定状态发送至客户端。
42.本实施例包括但不限于应用于对文件进行锁定和解锁的场景中。
43.在本实施例中,目标文件包括但不限于是视频文件、图片、文字等文件。
44.其中,上述步骤的执行主体可以为服务器(例如,目录服务器)等,但不限于此。
45.通过上述步骤,通过接收客户端发送的第一请求消息,其中,第一请求消息中包括目标文件名和锁定命令,请求消息用于请求锁定目标文件;在确定数据库中包括目标文件的情况下,将锁定命令发送到元数据服务器,其中,锁定命令中包括目标文件的目标文件号,元数据服务器用于基于目标文件号对目标文件执行锁定操作;基于元数据服务器发送的锁定结果修改目标文件在数据库中的锁定状态,锁定状态中包括锁定标记;将锁定状态发送至客户端。实现了在客户端、元数据服务器以及目录服务器中锁定文件的一致性。因此,可以解决相关技术中对文件锁定的问题,达到保证文件锁定的一致性的效果。
46.在一个示例性实施例中,在确定数据库中包括目标文件的情况下,将锁定命令发送到元数据服务器,包括:
47.s1,在数据库中查找与目标文件名对应的文件,得到目标文件;
48.s2,按照目标文件号将锁定命令发送到元数据服务器。
49.在本实施例中,目录服务器接收客户端发送的目标文件名和锁定命令。目录服务器首先查找数据库,目标文件存在则根据目标文件号发送锁定命令给元数据服务器,目标文件不存在则直接返回客户端。
50.在一个示例性实施例中,将锁定命令发送到元数据服务器之后,方法还包括:
51.s1,接收客户端发送的第二请求消息,其中,第二请求消息中包括目标文件名和解锁命令,请求消息用于请求解锁目标文件,解锁命令中包括目标文件号;
52.s2,在确定数据库中包括目标文件,且目标文件处于锁定状态的情况下,按照目标文件号将解锁命令发送到元数据服务器,其中,元数据服务器用于对目标文件执行解锁操作;
53.s3,基于元数据服务器发送的解锁结果修改目标文件在数据库中的解锁状态;
54.s4,将解锁状态发送到客户端,其中,解锁状态中包括解锁标记。
55.在本实施例中,目录服务器接收到解锁命令后,先查找目标文件是否存在,存在且目标文件是锁定状态,则根据文件号发送解锁命令给元数据管理服务器。目录服务器接收到解锁状态后,修改数据库中目标文件的锁定状态,最后返回客户端文件解锁成功。
56.在一个示例性实施例中,方法还包括:
57.s1,按照预设周期从客户端获取待删除文件信息;
58.s2,发送删除通知到元数据服务器,其中,删除通知中包括待删除文件信息,元数据服务器用于将待删除文件信息对应的文件从删除。
59.在本实施例中,目录服务器定期获取删除文件,发送删除通知给元数据服务器。元数据服务器用于将待删除文件的数据块分别添加到数据节点的待删除块列表中,并将文件
从文件列表中删除。
60.在本实施例中提供了一种文件处理方法,图3是根据本发明实施例的文件处理方法的流程图(二),如图3所示,该流程包括如下步骤:
61.步骤s302,接收目录服务器发送的锁定命令,其中,锁定命令中包括待锁定的目标文件的目标文件号;
62.步骤s304,基于目标文件号对目标文件执行锁定操作;
63.步骤s306,将锁定结果发送到目录服务器,其中,目录服务器用于修改目标文件在数据库中的锁定状态,锁定状态中包括锁定标记。
64.本实施例包括但不限于应用于对文件进行锁定和解锁的场景中。
65.在本实施例中,目标文件包括但不限于是视频文件、图片、文字等文件。
66.其中,上述步骤的执行主体可以为服务器(例如,元数据服务器)等,但不限于此。
67.通过上述步骤,通过接收目录服务器发送的锁定命令,其中,锁定命令中包括待锁定的目标文件的目标文件号;基于目标文件号对目标文件执行锁定操作;将锁定结果发送到目录服务器,其中,目录服务器用于修改目标文件在数据库中的锁定状态,锁定状态中包括锁定标记。实现了在客户端、元数据服务器以及目录服务器中锁定文件的一致性。因此,可以解决相关技术中对文件锁定的问题,达到保证文件锁定的一致性的效果。
68.在一个示例性实施例中,基于目标文件号对目标文件执行锁定操作,包括:
69.s1,按照目标文件号确定目标文件对应的数据节点和目标文件的数据块;
70.s2,将数据块添加到数据节点的待锁定列表中;
71.s3,将目标文件添加到元数据列表的锁定文件列表中,以锁定目标文件,其中,元数据列表包括在元数据服务器中。
72.在本实施例中,元数据服务器接收到锁定命令后,根据目标文件号查找目标文件对应的数据节点和数据块。
73.在一个示例性实施例中,将锁定结果发送到目录服务器之后,方法还包括:
74.s1,接收目录服务器发送的解锁命令,其中,解锁命令中包括目标文件号;
75.s2,基于目标文件号对目标文件执行解锁操作;
76.s3,将解锁结果发送到目录服务器,其中,目录服务器用于修改目标文件在数据库中的解锁状态,解锁状态中包括解锁标记。
77.在一个示例性实施例中,基于目标文件号对目标文件执行解锁操作,包括:
78.s1,在确定目标文件号包括在数据节点的锁定列表中的情况下,将目标文件对应的数据块从锁定列表中删除;
79.s2,将目标文件对应的数据块添加到待解锁列表中;
80.s3,将目标文件从元数据列表中删除,以解锁目标文件,其中,元数据列表包括在元数据服务器中。
81.在本实施例中,元数据管理服务器查找目标文件是否在锁定列表中,存在则将数据块从数据节点的锁定列表中删除,并加入到待解锁列表中,同时将文件从锁定文件列表中删除。上述操作成功后,元数据服务器返回目录服务器锁定成功。
82.在本实施例中提供了一种文件处理方法,图4是根据本发明实施例的文件处理方法的流程图(三),如图4所示,该流程包括如下步骤:
83.步骤s402,从元数据服务器中获取数据块,其中,数据块包括待锁定数据块和待解锁数据块,数据块对应于目标数据;
84.步骤s404,将数据块和数据块的待执行任务添加至数据队列中,其中,待执行任务包括锁定任务或解锁任务;
85.步骤s406,利用异步线程处理数据块的待执行任务,得到执行结果,其中,执行结果包括对数据块锁定的锁定标记,或者,对数据块解锁的解锁标记;
86.步骤s408,将执行结果发送到元数据服务器,其中,元数据服务器用于将锁定的数据块从待锁定列表中删除,或者,用于将锁定的数据块从待解锁列表中删除。
87.本实施例包括但不限于应用于对文件进行锁定和解锁的场景中。
88.在本实施例中,目标文件包括但不限于是视频文件、图片、文字等文件。
89.其中,上述步骤的执行主体可以为数据节点等,但不限于此。
90.通过上述步骤,通过从元数据服务器中获取数据块,其中,数据块包括待锁定数据块和待解锁数据块,数据块对应于目标数据;将数据块和数据块的待执行任务添加至数据队列中,其中,待执行任务包括锁定任务或解锁任务;利用异步线程处理数据块的待执行任务,得到执行结果,其中,执行结果包括对数据块锁定的锁定标记,或者,对数据块解锁的解锁标记;将执行结果发送到元数据服务器,其中,元数据服务器用于将锁定的数据块从待锁定列表中删除,或者,用于将锁定的数据块从待解锁列表中删除。实现了在客户端、元数据服务器以及目录服务器中锁定文件的一致性。因此,可以解决相关技术中对文件锁定的问题,达到保证文件锁定的一致性的效果。
91.在一个示例性实施例中,从元数据服务器中获取数据块,包括:
92.s1,从元数据服务器中的内存中查找到数据块,获取数据块所在的磁盘信息和数据块的存储区域zone信息。
93.在本实施例中,数据节点执行数据块的锁定时,先从内存中查找该数据块,获取其所在的磁盘信息、zone信息。
94.在一个示例性实施例中,利用异步线程处理数据块的待执行任务,得到执行结果,包括:
95.s1,在待执行任务包括锁定任务的情况下,将锁定标记写入磁盘中数据块的锁定标记位中;
96.s2,在磁盘中的锁定存储空间zone中,修改数据块的锁定标记、以及与数据块对应的锁定区域,得到执行结果。
97.在本实施例中,将锁定标记写入数据块的锁定标记位,锁定标记仅占1bit位,0表示未锁定,1表示数据块已经锁定。
98.在一个示例性实施例中,利用异步线程处理数据块的待执行任务,得到执行结果,包括:
99.s1,在待执行任务包括解锁任务的情况下,查找数据块所在的磁盘和锁定zone;
100.s2,清除磁盘中数据块的锁定标记;
101.s3,清除锁定zone中与数据块对应的锁定区域,得到执行结果。
102.在本实施例中,数据节点执行数据库的解锁操作时,查找数据块所在的磁盘信息,zone信息;清除数据块的锁定标记,清除zone的锁定区域。
103.在一个示例性实施例中,清除zone中与数据块对应的锁定区域,得到执行结果之后,方法还包括:
104.s1,判断磁盘中zone中的剩余空间;
105.s2,在剩余空间均被锁定文件占用的情况下,将存储锁定文件的n个锁定zone添加到待迁移列表中,其中,n是大于或等于1的自然数;
106.s3,在n大于预设阈值的情况下,将n个锁定zone合并至n个锁定zone中一个目标锁定zone中,以释放n个锁定zone中除目标锁定zone之外的其他锁定zone的空间。
107.在本实施例中,数据节点同时需要判断该zone的剩余空间,如果zone中的使用空间全部是因为文件锁定而被占用,则将该zone加入待迁移列表。
108.下面结合具体实施例对本发明进行说明:
109.本实施例以视频云存储系统对文件的处理为例进行说明。
110.在本实施例中,视频云存储系统包括:目录服务器、元数据管理服务器和数据节点;其中,目录服务器通过数据库管理文件名、文件号和文件属性;元数据管理服务器管理文件号、数据节点以及数据块属性信息;数据节点管理完整的数据块、zone和数据读写。一个录像文件写入时需要先从元数据管理服务器获取待存储的数据节点后,客户端将真实数据分成多个块写入数据节点中,数据节点保存文件号写入的数据块号、写入长度和具体写入的数据盘,zone。
111.如图5所示,是各个设备锁定文件时的交互流程图,包括以下步骤:
112.s1,当客户端设置文件锁定时,发送文件名和锁定命令给目录服务器;
113.s2,目录服务器首先查找数据库,该文件存在则根据文件号发送锁定命令给元数据服务器,文件不存在则直接返回客户端;
114.s3,元数据服务器接收到锁定命令后,根据文件号查找该文件对应的数据节点和数据块;将数据块加入到数据节点的待锁定列表中,同时将文件加入元数据列表的锁定文件列表中;
115.s4,上述操作成功后,元数据服务器返回目录服务器锁定成功;
116.s5

s6,目录服务器再修改数据库中的锁定状态;
117.s7,最后返回客户端文件锁定成功。
118.在本实施例中,客户端执行文件解锁操作,和锁定操作流程基本一致,客户端发送解锁命令,目录服务器接收到解锁命令后,先查找文件是否存在,存在且文件是锁定状态则根据文件号发送解锁命令给元数据管理服务器,元数据管理服务器查找文件是否在锁定列表中,存在则将数据块从数据节点的锁定列表中删除,并加入到待解锁列表中,同时将文件从锁定文件列表中删除,上述操作成功后,元数据服务器返回目录服务器锁定成功,目录服务器再修改数据库中的锁定状态,最后返回客户端文件解锁成功。
119.在本实施例中,数据节点通过心跳定期向元数据管理服务器获取待锁定的数据块和待解锁的数据块,数据节点将数据块和锁定状态作为一个命令加入队列中,由异步线程处理数据块的锁定和解锁。数据节点执行数据块锁定或解锁完成,需要通知元数据管理服务器锁定或解锁成功,元数据管理服务器将该锁定数据块从数据节点的待锁定列表中删除,将解锁数据块从数据节点待解锁列表中删除。
120.在本实施例中,数据节点执行数据块的锁定时,先从内存中查找该数据块,获取其
所在的磁盘信息、zone信息;将锁定标记写入数据块的锁定标记位,该标记仅占1bit位,0表示未锁定,1表示数据块已经锁定;同时修改zone的锁定标记位和锁定区域,而后将zone信息更新到rocksdb中持久化。数据节点执行数据库的解锁操作时,查找数据块所在的磁盘信息,zone信息;清除数据块的锁定标记,清除zone的锁定区域,若zone内还存在其他锁定区域组,则不清除锁定标记位,否则清除掉,并更新到rocksdb中。
121.在本实施例中,客户端文件删除时,查询目录服务器数据库中的文件锁定标记,文件已经被锁定时则直接返回客户端文件被锁定删除失败;文件未被锁定则将文件加入到待删除列表;目录服务器定期获取删除文件,发送删除通知给元数据服务器,元数据服务器将待删除文件的数据块分别添加到数据节点的待删除块列表中,并将文件从文件列表中删除。数据节点定期从元数据服务器获取需要删除的数据块信息;先从内存中查找该数据块获取其所在的磁盘信息、zone信息。根据真实的写入zone,将zone中的数据块清除。同时判断该zone的剩余空间,如果zone中的使用空间全部是因为文件锁定而被占用,则将该zone加入待迁移列表。
122.在本实施例中,在smr的磁盘上,我们给文件锁定划分了锁定zone区域,一般为磁盘的最后6个zone用于锁定zone的数据搬迁。在待迁移列表中的锁定zone个数达到上限值或列表中的多个锁定zone文件大小能占满一个zone空间时,将待迁移列表中的锁定zone的数据块合并到一个zone中,合并完成后其他的zone空间即可释放出来。
123.综上所述,本实施例在设置文件锁定和解锁时,客户端均通过目录服务器作为通知入口,到元数据管理服务器中时将数据块加入到锁定或解锁列表,数据节点定期从列表中获取待锁定或解锁的数据块,设置成功才通知元数据管理服务器删除。减少了客户端和存储系统的网络交互操作,保证了文件锁定的数据一致性;同时在删除文件时,如果数据节点中的zone上只剩余锁定的数据块时,将zone加入待迁移列表;待迁移列表中的zone积累到一定程度时,将zone数据合并到锁定zone区域中存储,提升了zone的空间使用率。
124.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
125.在本实施例中还提供了一种文件处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
126.图6是根据本发明实施例的文件处理装置的结构框图(一),如图6所示,该装置包括:
127.第一接收模块62,用于接收客户端发送的第一请求消息,其中,第一请求消息中包括目标文件名和锁定命令,请求消息用于请求锁定目标文件;
128.第一发送模块64,用于在确定数据库中包括目标文件的情况下,将锁定命令发送到元数据服务器,其中,锁定命令中包括目标文件的目标文件号,元数据服务器用于基于目
标文件号对目标文件执行锁定操作;
129.第一修改模块66,用于基于元数据服务器发送的锁定结果修改目标文件在数据库中的锁定状态,锁定状态中包括锁定标记;
130.第二发送模块68,用于将锁定状态发送至客户端。
131.在一个示例性实施例中,上述第一发送模块,包括:
132.第一查找单元,用于在上述数据库中查找与上述目标文件名对应的文件,得到上述目标文件;
133.第一发送单元,用于按照上述目标文件号将上述锁定命令发送到上述元数据服务器。
134.在一个示例性实施例中,上述装置还包括:
135.第三接收模块,用于将上述锁定命令发送到上述元数据服务器之后,接收上述客户端发送的第二请求消息,其中,上述第二请求消息中包括目标文件名和解锁命令,上述请求消息用于请求解锁上述目标文件,上述解锁命令中包括上述目标文件号;
136.第三发送模块,用于在确定上述数据库中包括上述目标文件,且上述目标文件处于锁定状态的情况下,按照上述目标文件号将上述解锁命令发送到上述元数据服务器,其中,上述元数据服务器用于对上述目标文件执行解锁操作;
137.第一修改模块,用于基于上述元数据服务器发送的解锁结果修改上述目标文件在上述数据库中的解锁状态;
138.第四接收模块,用于将上述解锁状态发送到上述客户端,其中,上述解锁状态中包括解锁标记。
139.在一个示例性实施例中,上述装置还包括:
140.第二获取模块,用于按照预设周期从上述客户端获取待删除文件信息;
141.第四发送模块,用于发送删除通知到上述元数据服务器,其中,上述删除通知中包括上述待删除文件信息,上述元数据服务器用于将上述待删除文件信息对应的文件从删除。
142.在一个实例性实施例中,上述第一锁定模块,包括:
143.第一确定单元,用于按照上述目标文件号确定上述目标文件对应的数据节点和上述目标文件的数据块;
144.第一添加单元,用于将上述数据块添加到上述数据节点的待锁定列表中;
145.第二添加单元,用于将上述目标文件添加到元数据列表的锁定文件列表中,以锁定上述目标文件,其中,上述元数据列表包括在元数据服务器中。
146.在一个示例性实施例中,上述装置还包括:
147.第五接收模块,用于将锁定结果发送到上述目录服务器之后,接收上述目录服务器发送的解锁命令,其中,上述解锁命令中包括上述目标文件号;
148.第五发送模块,用于第一执行模块,用于基于上述目标文件号对上述目标文件执行解锁操作;
149.第六发送模块,用于将解锁结果发送到上述目录服务器,其中,上述目录服务器用于修改上述目标文件在数据库中的解锁状态,上述解锁状态中包括解锁标记。
150.在一个示例性实施例中,上述第一执行模块,包括:
151.第一删除单元,用于在确定上述目标文件号包括在上述数据节点的锁定列表中的情况下,将上述目标文件对应的数据块从上述锁定列表中删除;
152.第三添加单元,用于将上述目标文件对应的数据块添加到待解锁列表中;
153.第二删除单元,用于将上述目标文件从元数据列表中删除,以解锁上述目标文件,其中,上述元数据列表包括在元数据服务器中。
154.图7是根据本发明实施例的文件处理装置的结构框图(二),如图7所示,该装置包括:
155.第二接收模块72,用于接收目录服务器发送的锁定命令,其中,锁定命令中包括待锁定的目标文件的目标文件号;
156.第一锁定模块74,用于基于目标文件号对目标文件执行锁定操作;
157.第二发送模块76,用于将锁定结果发送到目录服务器,其中,目录服务器用于修改目标文件在数据库中的锁定状态,锁定状态中包括锁定标记。
158.在一个实例性实施例中,上述第一锁定模块,包括:
159.第一确定单元,用于按照上述目标文件号确定上述目标文件对应的数据节点和上述目标文件的数据块;
160.第一添加单元,用于将上述数据块添加到上述数据节点的待锁定列表中;
161.第二添加单元,用于将上述目标文件添加到元数据列表的锁定文件列表中,以锁定上述目标文件,其中,上述元数据列表包括在元数据服务器中。
162.在一个示例性实施例中,上述装置还包括:
163.第五接收模块,用于将锁定结果发送到上述目录服务器之后,接收上述目录服务器发送的解锁命令,其中,上述解锁命令中包括上述目标文件号;
164.第五发送模块,用于第一执行模块,用于基于上述目标文件号对上述目标文件执行解锁操作;
165.第六发送模块,用于将解锁结果发送到上述目录服务器,其中,上述目录服务器用于修改上述目标文件在数据库中的解锁状态,上述解锁状态中包括解锁标记。
166.在一个示例性实施例中,上述第一执行模块,包括:
167.第一删除单元,用于在确定上述目标文件号包括在上述数据节点的锁定列表中的情况下,将上述目标文件对应的数据块从上述锁定列表中删除;
168.第三添加单元,用于将上述目标文件对应的数据块添加到待解锁列表中;
169.第二删除单元,用于将上述目标文件从元数据列表中删除,以解锁上述目标文件,其中,上述元数据列表包括在元数据服务器中。
170.图8是根据本发明实施例的文件处理装置的结构框图(三),如图7所示,该装置包括:
171.第一获取模块82,用于从元数据服务器中获取数据块,其中,数据块包括待锁定数据块和待解锁数据块,数据块对应于目标数据;
172.第一添加模块84,用于将数据块和数据块的待执行任务添加至数据队列中,其中,待执行任务包括锁定任务或解锁任务;
173.第一处理模块86,用于利用异步线程处理数据块的待执行任务,得到执行结果,其中,执行结果包括对数据块锁定的锁定标记,或者,对数据块解锁的解锁标记;
174.第三发送模块88,用于将执行结果发送到元数据服务器,其中,元数据服务器用于将锁定的数据块从待锁定列表中删除,或者,用于将锁定的数据块从待解锁列表中删除。
175.在一个示例性实施例中,上述第一获取模块,包括:
176.第二查找单元,用于从上述元数据服务器中的内存中查找到上述数据块,获取上述数据块所在的磁盘信息和上述数据块的存储区域zone信息。
177.在一个示例性实施例中,上述第一处理模块,包括:
178.第一标记单元,用于在上述待执行任务包括锁定任务的情况下,将上述锁定标记写入磁盘中上述数据块的锁定标记位中;
179.第一修改单元,用于在上述磁盘中的锁定存储空间zone中,修改上述数据块的锁定标记、以及与上述数据块对应的锁定区域,得到上述执行结果。
180.在一个示例性实施例中,上述第一处理模块,包括:
181.第三查找单元,用于在上述待执行任务包括解锁任务的情况下,查找上述数据块所在的磁盘和锁定zone;
182.第一清除单元,用于清除上述磁盘中上述数据块的锁定标记;
183.第二清除单元,用于清除上述锁定zone中与上述数据块对应的锁定区域,得到上述执行结果。
184.在一个示例性实施例中,上述装置还包括:
185.第一判断模块,用于清除上述zone中与上述数据块对应的锁定区域,得到上述执行结果之后,判断磁盘中上述zone中的剩余空间;
186.第二添加模块,用于在上述剩余空间均被锁定文件占用的情况下,将存储上述锁定文件的n个锁定zone添加到待迁移列表中,其中,上述n是大于或等于1的自然数;
187.第一合并模块,用于在上述n大于预设阈值的情况下,将上述n个锁定zone合并至上述n个锁定zone中一个目标锁定zone中,以释放上述n个锁定zone中除上述目标锁定zone之外的其他锁定zone的空间。
188.需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
189.本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
190.在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以上各步骤的计算机程序。
191.在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read

only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
192.本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
193.在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,
其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
194.在一个示例性实施例中,上述处理器可以被设置为通过计算机程序执行以上各步骤。
195.本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
196.显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
197.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1