CN115934743A - 一种文件锁管理方法、系统、设备及计算机可读存储介质 - Google Patents
一种文件锁管理方法、系统、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115934743A CN115934743A CN202310233167.1A CN202310233167A CN115934743A CN 115934743 A CN115934743 A CN 115934743A CN 202310233167 A CN202310233167 A CN 202310233167A CN 115934743 A CN115934743 A CN 115934743A
- Authority
- CN
- China
- Prior art keywords
- lock
- file system
- system server
- network file
- record information
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种文件锁管理方法、系统、设备及计算机可读存储介质,涉及网络文件系统技术领域,应用于目标网络文件系统服务端,接收目标网络文件系统客户端对目标文件的锁申请;在目标文件已有文件锁的情况下,确定持有文件锁的当前网络文件系统服务端;待文件锁转移后,生成表征文件锁属于目标网络文件系统服务端的第一锁记录信息并保存;更新当前网络文件系统服务端保存的第二锁记录信息,以使第二锁记录信息记录文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端。本申请中,通过查询第一锁记录和第二锁记录便可以准确获知文件锁在当前网络文件系统服务端和目标网络文件系统服务端间的转移情况,解决了数据一致性问题。
Description
技术领域
本申请涉及网络文件系统技术领域,更具体地说,涉及一种文件锁管理方法、系统、设备及计算机可读存储介质。
背景技术
在NAS(Network Attached Storage,网络附属存储)存储领域中,NFS(NetworkFile System,网络文件系统)是操作系统下重要的文件共享协议,且网络文件系统在发展过程中迭代出了增加客户端缓存的功能,比如在第四版的网络文件系统中便新增了该功能,该功能允许网络文件系统服务端将文件的某些操作(如读写操作等)委派给网络文件系统客户端,网络文件系统客户端会进行数据缓存并允许缓存锁定状态,之后网络文件系统服务端通过委派放弃对文件更新和网络文件系统客户端的锁定状态的控制,且通过允许网络文件系统客户端在本地执行不同的操作和缓存数据来减少延迟,提高性能。当然,网络文件系统服务端在出现文件竞争时会将网络文件系统客户端缓存数据回刷到网络文件系统服务端用以保证数据的一致性。
然而,网络文件系统服务是通过文件锁的方式来实现上述功能的,在文件锁召回的时候触发网络文件系统客户端缓存回刷操作,达到网络文件系统服务端数据一致性的作用。在单个网络文件系统服务端节点的环境中,网络文件系统服务端进程内可以对文件锁进行管理,但是在大规模的集群系统中,多个网络文件系统服务端节点同时运行网络文件系统服务,就会造成多节点间网络文件系统服务的数据一致性问题。
综上所述,如何保证多网络文件系统服务端节点间的数据一致性是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种文件锁管理方法,其能在一定程度上解决如何保证多网络文件系统服务端节点间的数据一致性的技术问题。本申请还提供了一种文件锁管理系统、设备及计算机可读存储介质。
一方面,本申请提供一种文件锁管理方法,应用于目标网络文件系统服务端,包括:
接收目标网络文件系统客户端对目标文件的锁申请;
判断所述目标文件是否已有文件锁;
在所述目标文件已有所述文件锁的情况下,确定持有所述文件锁的当前网络文件系统服务端;
待所述文件锁转移后,生成表征所述文件锁属于所述目标网络文件系统服务端的第一锁记录信息并保存;
更新所述当前网络文件系统服务端保存的第二锁记录信息,以使所述第二锁记录信息记录所述文件锁由所述当前网络文件系统服务端转移至所述目标网络文件系统服务端。
在一实施方式中,所述生成表征所述文件锁属于所述目标网络文件系统服务端的第一锁记录信息并保存之后,还包括:
在所述第一锁记录信息中记录持有所述文件锁的下一网络文件系统服务端为所述目标网络文件系统服务端。
在一实施方式中,所述生成表征所述文件锁属于所述目标网络文件系统服务端的第一锁记录信息,包括:
按照预设锁记录模板生成所述第一锁记录信息,所述预设锁记录模板包括锁记录头,所述锁记录头包括记录所述文件锁的当前持有节点的第一字段;
将所述第一锁记录信息中所述第一字段的内容记录为所述目标网络文件系统服务端的标识。
在一实施方式中,所述锁记录头包括记录所述文件锁的下一持有节点的第二字段;
所述在所述第一锁记录信息中记录持有所述文件锁的下一网络文件系统服务端为所述目标网络文件系统服务端,包括:
将所述第一锁记录信息中所述第二字段的内容记录为所述目标网络文件系统服务端的标识。
在一实施方式中,所述更新所述当前网络文件系统服务端保存的第二锁记录信息,以使所述第二锁记录信息记录所述文件锁由所述当前网络文件系统服务端转移至所述目标网络文件系统服务端,包括:
更新所述第二锁记录信息中所述第二字段的内容为所述目标网络文件系统服务端的标识。
在一实施方式中,所述确定持有所述文件锁的当前网络文件系统服务端,包括:
确定所述目标文件系统绑定的初始网络文件系统服务端;
获取所述初始网络文件系统服务端保存的第四锁记录信息,所述第四锁记录信息由第一个对所述目标文件进行加锁的网络文件系统服务端生成并存储至所述初始网络文件系统服务端;
在所述第四锁记录信息中的所述第一字段和所述第二字段的内容相同的情况下,将所述第四锁记录信息中所述第一字段记录的网络文件系统服务端作为所述当前网络文件系统服务端。
在一实施方式中,所述获取所述初始网络文件系统服务端保存的第四锁记录信息之后,还包括:
在所述第四锁记录信息中的所述第一字段和所述第二字段的内容不相同的情况下,将所述第四锁记录信息中的所述第二字段记录的网络文件系统作为待判定网络文件系统服务端;
获取所述待判定网络文件系统服务端保存的已有锁记录信息;
判断所述已有锁记录信息中的所述第一字段和所述第二字段的内容是否相同;
在所述已有锁记录信息中的所述第一字段和所述第二字段的内容相同的情况下,将所述待判定网络文件系统服务端作为所述当前网络文件系统服务端。
在一实施方式中,所述判断所述已有锁记录信息中的所述第一字段和所述第二字段的内容是否相同之后,还包括:
在所述已有锁记录信息中的所述第一字段和所述第二字段的内容不相同的情况下,将所述已有锁记录信息中的所述第二字段记录的网络文件系统作为所述待判定网络文件系统服务端,返回执行所述获取所述待判定网络文件系统服务端保存的已有锁记录信息的步骤。
在一实施方式中,所述锁记录头包括记录文件的访问次数的第三字段;
所述按照预设锁记录模板生成所述第一锁记录信息之后,还包括:
确定所述目标文件的当前访问次数;
将所述第一锁记录信息中所述第三字段的内容记录为所述当前访问次数。
在一实施方式中,所述预设锁记录模板包括锁记录数据;
所述按照预设锁记录模板生成所述第一锁记录信息之后,还包括:
将所述第一锁记录信息中所述锁记录数据的内容记录为所述锁申请对应的锁内容。
在一实施方式中,所述更新所述当前网络文件系统服务端保存的第二锁记录信息,以使所述第二锁记录信息记录所述文件锁由所述当前网络文件系统服务端转移至所述目标网络文件系统服务端,包括:
获取所述当前网络文件系统服务端保存的所述第二锁记录信息;
在所述第二锁记录信息中记录持有所述文件锁的下一网络文件系统服务端为所述目标网络文件系统服务端的信息;
发送所述第二锁记录信息至所述当前网络文件系统服务端进行保存。
在一实施方式中,所述更新所述当前网络文件系统服务端保存的第二锁记录信息,以使所述第二锁记录信息记录所述文件锁由所述当前网络文件系统服务端转移至所述目标网络文件系统服务端,包括:
发送表征所述文件锁由所述当前网络文件系统服务端转移至所述目标网络文件系统服务端的锁记录更新信息至所述当前网络文件系统服务端,以使所述当前网络文件系统服务端在所述第二锁记录信息中记录持有所述文件锁的下一网络文件系统服务端为所述目标网络文件系统服务端的信息。
在一实施方式中,所述判断所述目标文件是否已有文件锁之后,还包括:
在所述目标文件未有所述文件锁的情况下,生成表征所述文件锁属于所述目标网络文件系统服务端的第三锁记录信息并保存。
在一实施方式中,所述生成表征所述文件锁属于所述目标网络文件系统服务端的第三锁记录信息并保存之后,还包括:
确定所述目标文件系统绑定的初始网络文件系统服务端;
在所述初始网络文件系统服务端并非所述目标网络文件系统服务端的情况下,发送所述第三锁记录信息至所述初始网络文件系统服务端进行保存。
在一实施方式中,所述确定第一个保存所述目标文件系统的锁记录的初始网络文件系统服务端,包括:
确定所述目标文件的编号;
确定各个已有网络文件系统服务端的节点号;
对所述编号进行哈希运算,得到哈希运算结果;
将所述节点号与所述哈希运算结果匹配的所述已有网络文件系统服务端确定为所述初始网络文件系统服务端。
在一实施方式中,所述更新所述当前网络文件系统服务端保存的第二锁记录信息之后,还包括:
向所述目标网络文件系统客户端发送锁召回请求,以使所述目标网络文件系统客户端下刷缓存的所述目标文件的对应数据。
在一实施方式中,所述更新所述当前网络文件系统服务端保存的第二锁记录信息之后,还包括:
待所述文件锁转移后,在所述第一锁记录信息中记录所述文件锁由所述目标网络文件系统服务端转移至持有所述文件锁的下一网络文件系统服务端。
另一方面,本申请提供一种文件锁管理系统,应用于目标网络文件系统服务端,包括:
接收模块,用于接收目标网络文件系统客户端对目标文件的锁申请;
判断模块,用于判断所述目标文件是否已有文件锁;在所述目标文件已有所述文件锁的情况下,确定持有所述文件锁的当前网络文件系统服务端;
生成模块,用于待所述文件锁转移后,生成表征所述文件锁属于所述目标网络文件系统服务端的第一锁记录信息并保存;
更新模块,用于更新所述当前网络文件系统服务端保存的第二锁记录信息,以使所述第二锁记录信息记录所述文件锁由所述当前网络文件系统服务端转移至所述目标网络文件系统服务端。
另一方面,本申请提供一种文件锁管理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述文件锁管理方法的步骤。
另一方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述文件锁管理方法的步骤。
本申请提供的一种文件锁管理方法,应用于目标网络文件系统服务端,接收目标网络文件系统客户端对目标文件的锁申请;判断目标文件是否已有文件锁;在目标文件已有文件锁的情况下,确定持有文件锁的当前网络文件系统服务端;待文件锁转移后,生成表征文件锁属于目标网络文件系统服务端的第一锁记录信息并保存;更新当前网络文件系统服务端保存的第二锁记录信息,以使第二锁记录信息记录文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端。本申请中,目标网络文件系统服务端在文件锁由当前网络文件系统服务端转由自身后,可以借助第一锁记录信息来保证文件锁属于自身,且可以通过更新当前网络文件系统服务端保存的第二锁记录来使得第二锁记录信息记录文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端,这样,通过查询第一锁记录和第二锁记录便可以准确获知文件锁在当前网络文件系统服务端和目标网络文件系统服务端间的转移情况,解决了无法确定文件锁在网络文件系统服务端间的转移而带来的数据一致性问题。本申请提供的一种文件锁管理系统、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种文件锁管理方法的流程图;
图2为本申请实施例提供的一种文件锁管理方法的流程图;
图3为本申请中锁记录模板的示意图;
图4为本申请实施例提供的一种文件锁管理方法的流程图;
图5为网络文件系统的结构示意图;
图6为三个节点间锁记录的处理流程图;
图7为本申请实施例提供的一种文件锁管理系统的结构示意图;
图8为本申请实施例提供的一种文件锁管理设备的结构示意图;
图9为本申请实施例提供的一种文件锁管理设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,图1为本申请实施例提供的一种文件锁管理方法的流程图。
本申请实施例提供的一种文件锁管理方法,应用于目标网络文件系统服务端,可以包括以下步骤:
步骤S101:接收目标网络文件系统客户端对目标文件的锁申请。
实际应用中,目标网络文件系统服务端可以先接收目标网络文件系统服务端对目标文件的锁申请,以便响应该锁申请执行后续的文件锁管理过程。
需要说明的是,目标网络文件系统服务端指的是需要为自身连接的目标网络文件系统客户端分配对目标文件的文件锁的网络系统服务端,其中的目标文件的类型、内容等可以根据实际需要确定,本申请在此不做具体限定。
步骤S102:判断目标文件是否已有文件锁;在目标文件已有文件锁的情况下,执行步骤S103。
实际应用中,目标网络文件系统服务端在接收目标网络文件系统客户端对目标文件的锁申请之后,可以先判断目标文件是否已有文件锁,以便后续根据判断结果对文件锁进行对应处理。
具体应用场景中,目标网络文件系统服务端可以通过查询网络附属存储中是否存在目标文件的相应锁记录信息来判断目标文件是否已有文件锁等,比如在查询到相应锁记录的情况下可以判定目标文件已有文件锁,在未查询到相应锁记录的情况下可以判定目标文件未有文件锁等,当然还可以有其他判断方式,本申请在此不做具体限定。
步骤S103:确定持有文件锁的当前网络文件系统服务端。
实际应用中,目标网络文件系统服务端在目标文件已有文件锁的情况下,可以先确定持有文件锁的当前网络文件系统服务端,以便后续根据当前网络文件系统服务端对文件锁进行相应转移处理。
步骤S104:待文件锁转移后,生成表征文件锁属于目标网络文件系统服务端的第一锁记录信息并保存。
实际应用中,目标网络文件系统服务端在确定持有文件锁的当前网络文件系统服务端之后,待文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端之后,可以生成表征文件锁属于目标网络文件系统服务端的第一锁记录信息并保存,以便告知其他网络文件系统服务端自身拥有目标文件的文件锁。
步骤S105:更新当前网络文件系统服务端保存的第二锁记录信息,以使第二锁记录信息记录文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端。
实际应用中,目标网络文件系统服务端在生成表征文件锁属于目标网络文件系统服务端的第一锁记录信息并保存之后,还需更新当前网络文件系统服务端保存的第二锁记录信息,以使第二锁记录信息记录文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端。不难理解,当其他网络文件系统服务端查询到当前网络文件系统服务端中的第二锁记录信息时,通过该第二锁记录信息,可以获知当前网络文件系统服务端曾经拥有目标文件的文件锁,且之后将文件锁转移到了目标网络文件系统服务端,也即借助本申请中的第二锁记录信息便可以获知文件锁在多个网络文件系统服务端间的转移情况。
需要说明的是,本申请中的目标网络文件系统服务端、当前网络文件系统服务端是以文件锁持有状态命名的,当网络文件系统服务端满足相应条件时便可以成为对应服务端,换言之,目标网络文件系统服务端指的是新接收到锁请求需要处理锁请求的网络文件系统服务端,当前网络文件系统服务端指的是在目标网络文件系统服务端之前拥有文件锁的最后一个网络文件系统服务端,当随着时间推移,目标网络文件系统服务端之后再有网络文件系统服务端申请文件锁时,该新申请文件锁的网络文件系统服务端便会成为目标网络文件系统服务端,而目标网络文件系统服务端便会成为当前网络文件系统服务端。
本申请提供的一种文件锁管理方法,应用于目标网络文件系统服务端,接收目标网络文件系统客户端对目标文件的锁申请;判断目标文件是否已有文件锁;在目标文件已有文件锁的情况下,确定持有文件锁的当前网络文件系统服务端;待文件锁转移后,生成表征文件锁属于目标网络文件系统服务端的第一锁记录信息并保存;更新当前网络文件系统服务端保存的第二锁记录信息,以使第二锁记录信息记录文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端。本申请中,目标网络文件系统服务端在文件锁由当前网络文件系统服务端转由自身后,可以借助第一锁记录信息来保证文件锁属于自身,且可以通过更新当前网络文件系统服务端保存的第二锁记录来使得第二锁记录信息记录文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端,这样,通过查询第一锁记录和第二锁记录便可以准确获知文件锁在当前网络文件系统服务端和目标网络文件系统服务端间的转移情况,解决了无法确定文件锁在网络文件系统服务端间的转移而带来的数据一致性问题。
请参阅图2,图2为本申请实施例提供的一种文件锁管理方法的流程图。
本申请实施例提供的一种文件锁管理方法,应用于目标网络文件系统服务端,可以包括以下步骤:
步骤S201:接收目标网络文件系统客户端对目标文件的锁申请。
步骤S202:判断目标文件是否已有文件锁;在目标文件已有文件锁的情况下,执行步骤S203。
步骤S203:确定持有文件锁的当前网络文件系统服务端。
步骤S204:待文件锁转移后,生成表征文件锁属于目标网络文件系统服务端的第一锁记录信息并保存,在第一锁记录信息中记录持有文件锁的下一网络文件系统服务端为目标网络文件系统服务端。
实际应用中,目标网络文件系统服务端在生成表征文件锁属于目标网络文件系统服务端的第一锁记录信息并保存之后,还可以在第一锁记录信息中记录持有文件锁的下一网络文件系统服务端为目标网络文件系统服务端。不难理解,因为此时目标网络文件系统服务端中记录的持有文件锁的下一网络文件系统服务端为自身,而非其他网络文件系统服务端,所以目标文件的文件锁的最新持有者便是目标网络文件系统服务端,也即借助该类型的锁记录信息便可以快速确定目标文件的文件锁的最新持有者。
步骤S205:更新当前网络文件系统服务端保存的第二锁记录信息,以使第二锁记录信息记录文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端。
实际应用中,为了方便的借助锁信息来确定文件锁在多个网络文件系统服务端间的转移情况,可以对本申请中所涉及的第一锁记录信息、第二锁记录信息等锁记录信息的格式进行改进,比如锁记录信息的锁记录模板可以如图3所示,此锁记录模板包括锁记录头、锁记录数据,锁记录头包括记录文件锁的当前持有节点的第一字段、记录文件锁的下一持有节点的第二字段、记录文件的访问次数的第三字段,而锁记录数据而用于记录锁的具体内容。这样,只需更改、查找锁记录信息的相应内容便可以快速获知文件锁的对应信息。需要说明的是,文件的访问次数越高,而相应锁记录信息的时间越靠后,所以借助锁记录信息中的第三字段还可以辅助追溯锁记录信息的生成顺序,也即第三字段的值越大的锁记录信息的生成时间越晚。
具体应用场景中,目标网络文件系统服务端在生成表征文件锁属于目标网络文件系统服务端的第一锁记录信息的过程中,可以按照预设锁记录模板生成第一锁记录信息,预设锁记录模板包括锁记录头,锁记录头包括记录文件锁的当前持有节点的第一字段;将第一锁记录信息中第一字段的内容记录为目标网络文件系统服务端的标识。
具体应用场景中,目标网络文件系统服务端在第一锁记录信息中记录持有文件锁的下一网络文件系统服务端为目标网络文件系统服务端的过程中,可以将第一锁记录信息中第二字段的内容记录为目标网络文件系统服务端的标识。
具体应用场景中,目标网络文件系统服务端在更新当前网络文件系统服务端保存的第二锁记录信息,以使第二锁记录信息记录文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端的过程中,可以更新第二锁记录信息中第二字段的内容为目标网络文件系统服务端的标识。这样,只需查看第二锁记录信息中的第二字段,便可以快速得到在当前网络文件系统服务端之后持有文件锁的是目标网络文件系统服务端的信息。
具体应用场景中,目标网络文件系统服务端在按照预设锁记录模板生成第一锁记录信息之后,还可以确定目标文件的当前访问次数;将第一锁记录信息中第三字段的内容记录为当前访问次数。
具体应用场景中,目标网络文件系统服务端在按照预设锁记录模板生成第一锁记录信息之后,还可以将第一锁记录信息中锁记录数据的内容记录为锁申请对应的锁内容。
实际应用中,为了快速查找到目标文件的第一个锁记录信息,可以预先为目标文件确定绑定的初始网络文件系统服务端,再由第一个对目标文件进行加锁的网络文件系统服务端生成相应锁记录并存储至初始网络文件系统服务端,这样,只需查找该初始网络文件系统服务端,便可以快速确定目标文件的第一个锁记录信息,之后,只需按照本申请中锁记录信息的相应内容便可以对目标文件的文件锁在多个网络文件系统服务端间的转移过程进行追溯。
具体应用场景中,目标网络文件系统在确定持有文件锁的当前网络文件系统服务端的过程中,可以确定目标文件系统绑定的初始网络文件系统服务端;获取初始网络文件系统服务端保存的第四锁记录信息,第四锁记录信息由第一个对目标文件进行加锁的网络文件系统服务端生成并存储至初始网络文件系统服务端;在第四锁记录信息中的第一字段和第二字段的内容相同的情况下,将第四锁记录信息中第一字段记录的网络文件系统服务端作为当前网络文件系统服务端。
具体应用场景中,目标网络文件系统服务端在获取初始网络文件系统服务端保存的第四锁记录信息之后,还可以在第四锁记录信息中的第一字段和第二字段的内容不相同的情况下,将第四锁记录信息中的第二字段记录的网络文件系统作为待判定网络文件系统服务端;获取待判定网络文件系统服务端保存的已有锁记录信息;判断已有锁记录信息中的第一字段和第二字段的内容是否相同;在已有锁记录信息中的第一字段和第二字段的内容相同的情况下,将待判定网络文件系统服务端作为当前网络文件系统服务端。
具体应用场景中,目标网络文件系统服务端判断已有锁记录信息中的第一字段和第二字段的内容是否相同之后,还可以在已有锁记录信息中的第一字段和第二字段的内容不相同的情况下,将已有锁记录信息中的第二字段记录的网络文件系统作为待判定网络文件系统服务端,返回执行获取待判定网络文件系统服务端保存的已有锁记录信息的步骤。
实际应用中,目标网络文件系统服务端在更新当前网络文件系统服务端保存的第二锁记录信息,以使第二锁记录信息记录文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端的过程中,可以将第二锁记录信息拉取到本地进行修改,也即可以获取当前网络文件系统服务端保存的第二锁记录信息;在第二锁记录信息中记录持有文件锁的下一网络文件系统服务端为目标网络文件系统服务端的信息;发送第二锁记录信息至当前网络文件系统服务端进行保存。
具体应用场景中,目标网络文件系统服务端在更新当前网络文件系统服务端保存的第二锁记录信息,以使第二锁记录信息记录文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端的过程中,可以远程指示当前网络文件系统服务端自己更新第二锁记录信息,也即可以发送表征文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端的锁记录更新信息至当前网络文件系统服务端,以使当前网络文件系统服务端在第二锁记录信息中记录持有文件锁的下一网络文件系统服务端为目标网络文件系统服务端的信息。
请参阅图4,图4为本申请实施例提供的一种文件锁管理方法的流程图。
本申请实施例提供的一种文件锁管理方法,应用于目标网络文件系统服务端,可以包括以下步骤:
步骤S301:接收目标网络文件系统客户端对目标文件的锁申请。
步骤S302:判断目标文件是否已有文件锁;在目标文件已有文件锁的情况下,执行步骤S303;在目标文件未有文件锁的情况下,执行步骤S306。
步骤S303:确定持有文件锁的当前网络文件系统服务端。
步骤S304:待文件锁转移后,生成表征文件锁属于目标网络文件系统服务端的第一锁记录信息并保存。
步骤S305:更新当前网络文件系统服务端保存的第二锁记录信息,以使第二锁记录信息记录文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端。
步骤S306:生成表征文件锁属于目标网络文件系统服务端的第三锁记录信息并保存。
实际应用中,目标文件系统服务端在判断目标文件是否已有文件锁之后,在目标文件未有文件锁的情况下,还可以生成表征文件锁属于目标网络文件系统服务端的第三锁记录信息并保存,以借助第三锁记录信息告知其他网络文件服务端自身为目标文件的第一且最新的文件锁持有者。
具体应用场景中,目标文件锁系统服务端在生成表征文件锁属于目标网络文件系统服务端的第三锁记录信息并保存之后,还可以确定目标文件系统绑定的初始网络文件系统服务端;在初始网络文件系统服务端并非目标网络文件系统服务端的情况下,发送第三锁记录信息至初始网络文件系统服务端进行保存。
具体应用场景中,目标文件系统服务端在确定第一个保存目标文件系统的锁记录的初始网络文件系统服务端的过程中,可以确定目标文件的编号;确定各个已有网络文件系统服务端的节点号;对编号进行哈希运算,得到哈希运算结果;将节点号与哈希运算结果匹配的已有网络文件系统服务端确定为初始网络文件系统服务端。比如可以为各个网络文件系统服务端分配唯一的PNN号,并建立PNN号与网络文件系统服务端的IP地址间的映射关系;之后,确定PNN号的总个数值,对目标文件的编号与PNN号与该总个数值进行哈希运算,得到哈希运算结果,将值与该哈希运算结果相同的PNN号对应的网络文件系统服务端作为初始网络文件系统服务端。
实际应用中,目标网络文件系统服务端在更新当前网络文件系统服务端保存的第二锁记录信息之后,当结束文件锁后,还可以向目标网络文件系统客户端发送锁召回请求,以使目标网络文件系统客户端下刷缓存的目标文件的对应数据。
实际应用中,目标网络文件系统服务端在更新当前网络文件系统服务端保存的第二锁记录信息之后,待文件锁转移后,还可以在第一锁记录信息中记录文件锁由目标网络文件系统服务端转移至持有文件锁的下一网络文件系统服务端,以明确在目标网络文件系统服务端之后持有文件锁的下一网络文件系统服务端的。
在具体应用场景中,网络文件系统服务端通用实现方式有内核态的NFSD和用户态ganesha,现以用户态NFS的程序ganesha为例对本申请方案进行阐述,在网络文件系统服务端增加DLM进程作为锁服务进程,ganesha的锁相关操作修改为向DLM进程申请,DLM接收记录锁请求,查询集群内的锁记录,锁记录的迁移等操作,整个网络文件系统的结构可以如图5所示,其中每个节点表示一个网络文件系统服务端,为便于理解本申请提供的文件锁管理方法,以三个节点间锁记录的处理过程为例进行说明,其过程可以如图6所示,包括以下步骤:
节点1的用户态程序调用锁服务进程的应用程序编程接口进行锁申请;
节点1的锁服务进程接收到锁申请后,计算所申请的文件的hash值为1,则该文件绑定的初始网络文件系统服务端的PNN号为1,即在本节点;
节点1在本节点数据库中查找该锁记录,如果没有则说明没有节点持有该锁记录,则在本地创建相应锁记录,返回成功给节点1的用户态程序;若读取到了锁记录,且自身锁记录中的第二字段为2,则表明节点2是该文件的文件锁的第一个持有者,则向节点2申请锁记录;
节点2读取本地数据库记录,若查找到自身锁记录中的第二字段为3,自身锁记录中的第一字段为2,则说明该文件锁已有节点2转移至节点3,则将表征节点2将文件锁转移至节点3的结果返回给节点1;
节点1根据返回的结果,向节点3申请该文件锁的记录信息;
节点3收到请求后,读取数据库记录,若查找到自身锁记录中的第二字段为3,且自身锁记录中的第一字段也为3,则表明自身为文件锁的最新持有者,之后节点3向本节点的用户态程序发送锁召回请求;
节点3的用户态程序收到锁召回请求后,向所有连接到本节点的网络文件系统客户端,收回该操作的委派,网络文件系统客户端下刷缓存后,返回给本节点的锁服务进程;
节点3将自身锁记录信息返回给节点1;
节点1收到节点3的锁记录信息后,更新本地数据库,插入该锁信息,同时更新节点3的锁记录信息中的第二字段为1并返回给节点3;
需要说明的是,整个过程中,用户态程序根据锁服务进程返回的记录信息来决定相关操作,例如请求的是文件读锁,则可以加锁成功读取最新数据,如果是互斥锁则加锁失败返回给网络文件系统客户端。
请参阅7,图7为本申请实施例提供的一种文件锁管理系统的结构示意图。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,可以包括:
接收模块101,用于接收目标网络文件系统客户端对目标文件的锁申请;
判断模块102,用于判断目标文件是否已有文件锁;在目标文件已有文件锁的情况下,确定持有文件锁的当前网络文件系统服务端;
生成模块103,用于待文件锁转移后,生成表征文件锁属于目标网络文件系统服务端的第一锁记录信息并保存;
更新模块104,用于更新当前网络文件系统服务端保存的第二锁记录信息,以使第二锁记录信息记录文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,生成模块还可以用于:生成表征文件锁属于目标网络文件系统服务端的第一锁记录信息并保存之后,在第一锁记录信息中记录持有文件锁的下一网络文件系统服务端为目标网络文件系统服务端。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,生成模块可以用于:按照预设锁记录模板生成第一锁记录信息,预设锁记录模板包括锁记录头,锁记录头包括记录文件锁的当前持有节点的第一字段;将第一锁记录信息中第一字段的内容记录为目标网络文件系统服务端的标识。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,锁记录头包括记录文件锁的下一持有节点的第二字段;
生成模块可以用于:将第一锁记录信息中第二字段的内容记录为目标网络文件系统服务端的标识。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,更新模块可以用于:更新第二锁记录信息中第二字段的内容为目标网络文件系统服务端的标识。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,判断模块可以用于:确定目标文件系统绑定的初始网络文件系统服务端;获取初始网络文件系统服务端保存的第四锁记录信息,第四锁记录信息由第一个对目标文件进行加锁的网络文件系统服务端生成并存储至初始网络文件系统服务端;在第四锁记录信息中的第一字段和第二字段的内容相同的情况下,将第四锁记录信息中第一字段记录的网络文件系统服务端作为当前网络文件系统服务端。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,判断模块还可以用于:获取初始网络文件系统服务端保存的第四锁记录信息之后,在第四锁记录信息中的第一字段和第二字段的内容不相同的情况下,将第四锁记录信息中的第二字段记录的网络文件系统作为待判定网络文件系统服务端;获取待判定网络文件系统服务端保存的已有锁记录信息;判断已有锁记录信息中的第一字段和第二字段的内容是否相同;在已有锁记录信息中的第一字段和第二字段的内容相同的情况下,将待判定网络文件系统服务端作为当前网络文件系统服务端。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,判断模块还可以用于:判断已有锁记录信息中的第一字段和第二字段的内容是否相同之后,在已有锁记录信息中的第一字段和第二字段的内容不相同的情况下,将已有锁记录信息中的第二字段记录的网络文件系统作为待判定网络文件系统服务端,返回执行获取待判定网络文件系统服务端保存的已有锁记录信息的步骤。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,锁记录头包括记录文件的访问次数的第三字段;
生成模块还可以用于:按照预设锁记录模板生成第一锁记录信息之后,确定目标文件的当前访问次数;将第一锁记录信息中第三字段的内容记录为当前访问次数。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,预设锁记录模板包括锁记录数据;
生成模块还可以用于:按照预设锁记录模板生成第一锁记录信息之后,还包括:将第一锁记录信息中锁记录数据的内容记录为锁申请对应的锁内容。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,更新模块可以用于:
获取当前网络文件系统服务端保存的第二锁记录信息;
在第二锁记录信息中记录持有文件锁的下一网络文件系统服务端为目标网络文件系统服务端的信息;
发送第二锁记录信息至当前网络文件系统服务端进行保存。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,更新模块可以用于:
发送表征文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端的锁记录更新信息至当前网络文件系统服务端,以使当前网络文件系统服务端在第二锁记录信息中记录持有文件锁的下一网络文件系统服务端为目标网络文件系统服务端的信息。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,判断模块还可以用于:判断目标文件是否已有文件锁之后,在目标文件未有文件锁的情况下,生成表征文件锁属于目标网络文件系统服务端的第三锁记录信息并保存。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,判断模块还可以用于:生成表征文件锁属于目标网络文件系统服务端的第三锁记录信息并保存之后,确定目标文件系统绑定的初始网络文件系统服务端;在初始网络文件系统服务端并非目标网络文件系统服务端的情况下,发送第三锁记录信息至初始网络文件系统服务端进行保存。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,判断模块可以用于:确定目标文件的编号;确定各个已有网络文件系统服务端的节点号;对编号进行哈希运算,得到哈希运算结果;将节点号与哈希运算结果匹配的已有网络文件系统服务端确定为初始网络文件系统服务端。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,还可以包括:
召回模块,用于更新模块更新当前网络文件系统服务端保存的第二锁记录信息之后,向目标网络文件系统客户端发送锁召回请求,以使目标网络文件系统客户端下刷缓存的目标文件的对应数据。
本申请实施例提供的一种文件锁管理系统,应用于目标网络文件系统服务端,还可以包括:
记录模块,用于更新模块更新当前网络文件系统服务端保存的第二锁记录信息之后,待文件锁转移后,在第一锁记录信息中记录文件锁由目标网络文件系统服务端转移至持有文件锁的下一网络文件系统服务端。
本申请还提供了一种文件锁管理设备及计算机可读存储介质,其均具有本申请实施例提供的一种文件锁管理方法具有的对应效果。请参阅图8,图8为本申请实施例提供的一种文件锁管理设备的结构示意图。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:
接收目标网络文件系统客户端对目标文件的锁申请;
判断目标文件是否已有文件锁;
在目标文件已有文件锁的情况下,确定持有文件锁的当前网络文件系统服务端;
待文件锁转移后,生成表征文件锁属于目标网络文件系统服务端的第一锁记录信息并保存;
更新当前网络文件系统服务端保存的第二锁记录信息,以使第二锁记录信息记录文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:生成表征文件锁属于目标网络文件系统服务端的第一锁记录信息并保存之后,在第一锁记录信息中记录持有文件锁的下一网络文件系统服务端为目标网络文件系统服务端。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:按照预设锁记录模板生成第一锁记录信息,预设锁记录模板包括锁记录头,锁记录头包括记录文件锁的当前持有节点的第一字段;将第一锁记录信息中第一字段的内容记录为目标网络文件系统服务端的标识。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:锁记录头包括记录文件锁的下一持有节点的第二字段;将第一锁记录信息中第二字段的内容记录为目标网络文件系统服务端的标识。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:更新第二锁记录信息中第二字段的内容为目标网络文件系统服务端的标识。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:确定目标文件系统绑定的初始网络文件系统服务端;获取初始网络文件系统服务端保存的第四锁记录信息,第四锁记录信息由第一个对目标文件进行加锁的网络文件系统服务端生成并存储至初始网络文件系统服务端;在第四锁记录信息中的第一字段和第二字段的内容相同的情况下,将第四锁记录信息中第一字段记录的网络文件系统服务端作为当前网络文件系统服务端。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:获取初始网络文件系统服务端保存的第四锁记录信息之后,在第四锁记录信息中的第一字段和第二字段的内容不相同的情况下,将第四锁记录信息中的第二字段记录的网络文件系统作为待判定网络文件系统服务端;获取待判定网络文件系统服务端保存的已有锁记录信息;判断已有锁记录信息中的第一字段和第二字段的内容是否相同;在已有锁记录信息中的第一字段和第二字段的内容相同的情况下,将待判定网络文件系统服务端作为当前网络文件系统服务端。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:判断已有锁记录信息中的第一字段和第二字段的内容是否相同之后,在已有锁记录信息中的第一字段和第二字段的内容不相同的情况下,将已有锁记录信息中的第二字段记录的网络文件系统作为待判定网络文件系统服务端,返回执行获取待判定网络文件系统服务端保存的已有锁记录信息的步骤。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:锁记录头包括记录文件的访问次数的第三字段;按照预设锁记录模板生成第一锁记录信息之后,确定目标文件的当前访问次数;将第一锁记录信息中第三字段的内容记录为当前访问次数。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:预设锁记录模板包括锁记录数据;按照预设锁记录模板生成第一锁记录信息之后,将第一锁记录信息中锁记录数据的内容记录为锁申请对应的锁内容。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:获取当前网络文件系统服务端保存的第二锁记录信息;在第二锁记录信息中记录持有文件锁的下一网络文件系统服务端为目标网络文件系统服务端的信息;发送第二锁记录信息至当前网络文件系统服务端进行保存。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:发送表征文件锁由当前网络文件系统服务端转移至目标网络文件系统服务端的锁记录更新信息至当前网络文件系统服务端,以使当前网络文件系统服务端在第二锁记录信息中记录持有文件锁的下一网络文件系统服务端为目标网络文件系统服务端的信息。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:判断目标文件是否已有文件锁之后,在目标文件未有文件锁的情况下,生成表征文件锁属于目标网络文件系统服务端的第三锁记录信息并保存。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:生成表征文件锁属于目标网络文件系统服务端的第三锁记录信息并保存之后,确定目标文件系统绑定的初始网络文件系统服务端;在初始网络文件系统服务端并非目标网络文件系统服务端的情况下,发送第三锁记录信息至初始网络文件系统服务端进行保存。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:确定目标文件的编号;确定各个已有网络文件系统服务端的节点号;对编号进行哈希运算,得到哈希运算结果;将节点号与哈希运算结果匹配的已有网络文件系统服务端确定为初始网络文件系统服务端。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:更新当前网络文件系统服务端保存的第二锁记录信息之后,向目标网络文件系统客户端发送锁召回请求,以使目标网络文件系统客户端下刷缓存的目标文件的对应数据。
本申请实施例提供的一种文件锁管理设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:更新当前网络文件系统服务端保存的第二锁记录信息之后,待文件锁转移后,在第一锁记录信息中记录文件锁由目标网络文件系统服务端转移至持有文件锁的下一网络文件系统服务端。
请参阅图9,本申请实施例提供的另一种文件锁管理设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现文件锁管理设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如上任一实施例所描述的文件锁管理方法。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的文件锁管理系统、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的文件锁管理方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (20)
1.一种文件锁管理方法,其特征在于,应用于目标网络文件系统服务端,包括:
接收目标网络文件系统客户端对目标文件的锁申请;
判断所述目标文件是否已有文件锁;
在所述目标文件已有所述文件锁的情况下,确定持有所述文件锁的当前网络文件系统服务端;
待所述文件锁转移后,生成表征所述文件锁属于所述目标网络文件系统服务端的第一锁记录信息并保存;
更新所述当前网络文件系统服务端保存的第二锁记录信息,以使所述第二锁记录信息记录所述文件锁由所述当前网络文件系统服务端转移至所述目标网络文件系统服务端。
2.根据权利要求1所述的方法,其特征在于,所述生成表征所述文件锁属于所述目标网络文件系统服务端的第一锁记录信息并保存之后,还包括:
在所述第一锁记录信息中记录持有所述文件锁的下一网络文件系统服务端为所述目标网络文件系统服务端。
3.根据权利要求2所述的方法,其特征在于,所述生成表征所述文件锁属于所述目标网络文件系统服务端的第一锁记录信息,包括:
按照预设锁记录模板生成所述第一锁记录信息,所述预设锁记录模板包括锁记录头,所述锁记录头包括记录所述文件锁的当前持有节点的第一字段;
将所述第一锁记录信息中所述第一字段的内容记录为所述目标网络文件系统服务端的标识。
4.根据权利要求3所述的方法,其特征在于,所述锁记录头包括记录所述文件锁的下一持有节点的第二字段;
所述在所述第一锁记录信息中记录持有所述文件锁的下一网络文件系统服务端为所述目标网络文件系统服务端,包括:
将所述第一锁记录信息中所述第二字段的内容记录为所述目标网络文件系统服务端的标识。
5.根据权利要求4所述的方法,其特征在于,所述更新所述当前网络文件系统服务端保存的第二锁记录信息,以使所述第二锁记录信息记录所述文件锁由所述当前网络文件系统服务端转移至所述目标网络文件系统服务端,包括:
更新所述第二锁记录信息中所述第二字段的内容为所述目标网络文件系统服务端的标识。
6.根据权利要求5所述的方法,其特征在于,所述确定持有所述文件锁的当前网络文件系统服务端,包括:
确定所述目标文件系统绑定的初始网络文件系统服务端;
获取所述初始网络文件系统服务端保存的第四锁记录信息,所述第四锁记录信息由第一个对所述目标文件进行加锁的网络文件系统服务端生成并存储至所述初始网络文件系统服务端;
在所述第四锁记录信息中的所述第一字段和所述第二字段的内容相同的情况下,将所述第四锁记录信息中所述第一字段记录的网络文件系统服务端作为所述当前网络文件系统服务端。
7.根据权利要求6所述的方法,其特征在于,所述获取所述初始网络文件系统服务端保存的第四锁记录信息之后,还包括:
在所述第四锁记录信息中的所述第一字段和所述第二字段的内容不相同的情况下,将所述第四锁记录信息中的所述第二字段记录的网络文件系统作为待判定网络文件系统服务端;
获取所述待判定网络文件系统服务端保存的已有锁记录信息;
判断所述已有锁记录信息中的所述第一字段和所述第二字段的内容是否相同;
在所述已有锁记录信息中的所述第一字段和所述第二字段的内容相同的情况下,将所述待判定网络文件系统服务端作为所述当前网络文件系统服务端。
8.根据权利要求7所述的方法,其特征在于,所述判断所述已有锁记录信息中的所述第一字段和所述第二字段的内容是否相同之后,还包括:
在所述已有锁记录信息中的所述第一字段和所述第二字段的内容不相同的情况下,将所述已有锁记录信息中的所述第二字段记录的网络文件系统作为所述待判定网络文件系统服务端,返回执行所述获取所述待判定网络文件系统服务端保存的已有锁记录信息的步骤。
9.根据权利要求4所述的方法,其特征在于,所述锁记录头包括记录文件的访问次数的第三字段;
所述按照预设锁记录模板生成所述第一锁记录信息之后,还包括:
确定所述目标文件的当前访问次数;
将所述第一锁记录信息中所述第三字段的内容记录为所述当前访问次数。
10.根据权利要求4所述的方法,其特征在于,所述预设锁记录模板包括锁记录数据;
所述按照预设锁记录模板生成所述第一锁记录信息之后,还包括:
将所述第一锁记录信息中所述锁记录数据的内容记录为所述锁申请对应的锁内容。
11.根据权利要求1所述的方法,其特征在于,所述更新所述当前网络文件系统服务端保存的第二锁记录信息,以使所述第二锁记录信息记录所述文件锁由所述当前网络文件系统服务端转移至所述目标网络文件系统服务端,包括:
获取所述当前网络文件系统服务端保存的所述第二锁记录信息;
在所述第二锁记录信息中记录持有所述文件锁的下一网络文件系统服务端为所述目标网络文件系统服务端的信息;
发送所述第二锁记录信息至所述当前网络文件系统服务端进行保存。
12.根据权利要求1所述的方法,其特征在于,所述更新所述当前网络文件系统服务端保存的第二锁记录信息,以使所述第二锁记录信息记录所述文件锁由所述当前网络文件系统服务端转移至所述目标网络文件系统服务端,包括:
发送表征所述文件锁由所述当前网络文件系统服务端转移至所述目标网络文件系统服务端的锁记录更新信息至所述当前网络文件系统服务端,以使所述当前网络文件系统服务端在所述第二锁记录信息中记录持有所述文件锁的下一网络文件系统服务端为所述目标网络文件系统服务端的信息。
13.根据权利要求1至12任一项所述的方法,其特征在于,所述判断所述目标文件是否已有文件锁之后,还包括:
在所述目标文件未有所述文件锁的情况下,生成表征所述文件锁属于所述目标网络文件系统服务端的第三锁记录信息并保存。
14.根据权利要求13所述的方法,其特征在于,所述生成表征所述文件锁属于所述目标网络文件系统服务端的第三锁记录信息并保存之后,还包括:
确定所述目标文件系统绑定的初始网络文件系统服务端;
在所述初始网络文件系统服务端并非所述目标网络文件系统服务端的情况下,发送所述第三锁记录信息至所述初始网络文件系统服务端进行保存。
15.根据权利要求13所述的方法,其特征在于,所述确定第一个保存所述目标文件系统的锁记录的初始网络文件系统服务端,包括:
确定所述目标文件的编号;
确定各个已有网络文件系统服务端的节点号;
对所述编号进行哈希运算,得到哈希运算结果;
将所述节点号与所述哈希运算结果匹配的所述已有网络文件系统服务端确定为所述初始网络文件系统服务端。
16.根据权利要求1所述的方法,其特征在于,所述更新所述当前网络文件系统服务端保存的第二锁记录信息之后,还包括:
向所述目标网络文件系统客户端发送锁召回请求,以使所述目标网络文件系统客户端下刷缓存的所述目标文件的对应数据。
17.根据权利要求1所述的方法,其特征在于,所述更新所述当前网络文件系统服务端保存的第二锁记录信息之后,还包括:
待所述文件锁转移后,在所述第一锁记录信息中记录所述文件锁由所述目标网络文件系统服务端转移至持有所述文件锁的下一网络文件系统服务端。
18.一种文件锁管理系统,其特征在于,应用于目标网络文件系统服务端,包括:
接收模块,用于接收目标网络文件系统客户端对目标文件的锁申请;
判断模块,用于判断所述目标文件是否已有文件锁;在所述目标文件已有所述文件锁的情况下,确定持有所述文件锁的当前网络文件系统服务端;
生成模块,用于待所述文件锁转移后,生成表征所述文件锁属于所述目标网络文件系统服务端的第一锁记录信息并保存;
更新模块,用于更新所述当前网络文件系统服务端保存的第二锁记录信息,以使所述第二锁记录信息记录所述文件锁由所述当前网络文件系统服务端转移至所述目标网络文件系统服务端。
19.一种文件锁管理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至17任一项所述文件锁管理方法的步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述文件锁管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310233167.1A CN115934743B (zh) | 2023-03-13 | 2023-03-13 | 一种文件锁管理方法、系统、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310233167.1A CN115934743B (zh) | 2023-03-13 | 2023-03-13 | 一种文件锁管理方法、系统、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115934743A true CN115934743A (zh) | 2023-04-07 |
CN115934743B CN115934743B (zh) | 2023-06-02 |
Family
ID=85818583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310233167.1A Active CN115934743B (zh) | 2023-03-13 | 2023-03-13 | 一种文件锁管理方法、系统、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934743B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11250016A (ja) * | 1998-02-26 | 1999-09-17 | Nec Corp | ファイル共有システムのファイルロック方式および方法 |
US20020019874A1 (en) * | 1997-12-05 | 2002-02-14 | Andrea Borr | Multi-protocol unified file-locking |
US20150106411A1 (en) * | 2013-10-14 | 2015-04-16 | Red Hat, Inc. | Migrating file locks in distributed file systems |
CN109684285A (zh) * | 2018-12-13 | 2019-04-26 | 郑州云海信息技术有限公司 | 一种用户态网络文件系统文件锁方法、装置及设备 |
CN111274214A (zh) * | 2020-02-20 | 2020-06-12 | 苏州浪潮智能科技有限公司 | 一种文件锁处理方法、装置及电子设备和存储介质 |
CN112463748A (zh) * | 2020-11-23 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种存储系统文件锁标识方法、系统、终端及存储介质 |
-
2023
- 2023-03-13 CN CN202310233167.1A patent/CN115934743B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020019874A1 (en) * | 1997-12-05 | 2002-02-14 | Andrea Borr | Multi-protocol unified file-locking |
JPH11250016A (ja) * | 1998-02-26 | 1999-09-17 | Nec Corp | ファイル共有システムのファイルロック方式および方法 |
US20150106411A1 (en) * | 2013-10-14 | 2015-04-16 | Red Hat, Inc. | Migrating file locks in distributed file systems |
CN109684285A (zh) * | 2018-12-13 | 2019-04-26 | 郑州云海信息技术有限公司 | 一种用户态网络文件系统文件锁方法、装置及设备 |
CN111274214A (zh) * | 2020-02-20 | 2020-06-12 | 苏州浪潮智能科技有限公司 | 一种文件锁处理方法、装置及电子设备和存储介质 |
CN112463748A (zh) * | 2020-11-23 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种存储系统文件锁标识方法、系统、终端及存储介质 |
Non-Patent Citations (1)
Title |
---|
周晓玉,杨一平,许向荣: "网络环境下医院管理信息系统数据共享与并发控制", 北京生物医学工程, no. 03, pages 158 - 161 * |
Also Published As
Publication number | Publication date |
---|---|
CN115934743B (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10789217B2 (en) | Hierarchical namespace with strong consistency and horizontal scalability | |
WO2017167171A1 (zh) | 一种数据操作方法,服务器及存储系统 | |
US10831612B2 (en) | Primary node-standby node data transmission method, control node, and database system | |
JP4931660B2 (ja) | データ移行処理装置 | |
CN104618482B (zh) | 访问云数据的方法、服务器、传统存储设备、系统 | |
CN103607428B (zh) | 一种访问共享内存的方法和装置 | |
EP3076307A1 (en) | Method and device for responding to a request, and distributed file system | |
CN109302448B (zh) | 一种数据处理方法及装置 | |
JP2011242949A (ja) | ファイル管理プログラム、ファイル管理方法、及び情報処理装置 | |
CN111225003B (zh) | 一种nfs节点配置方法和装置 | |
WO2020215580A1 (zh) | 一种分布式全局数据去重方法和装置 | |
CN109407975A (zh) | 写数据方法与计算节点以及分布式存储系统 | |
CN107493309B (zh) | 一种分布式系统中的文件写入方法及装置 | |
CN113608694B (zh) | 数据迁移方法、信息处理方法、装置及服务器与介质 | |
CN110855627B (zh) | 应用部署方法、装置、设备及介质 | |
CN111274004A (zh) | 进程实例管理方法、装置及计算机存储介质 | |
CN111399753B (zh) | 写入图片的方法和装置 | |
CN111796772A (zh) | 缓存的管理方法、缓存节点及分布式存储系统 | |
JP2011242826A (ja) | ファイル管理システム及びファイル管理プログラム | |
JP2005063374A (ja) | データ管理方法、データ管理装置、およびそのためのプログラムならびに記録媒体。 | |
CN115934743B (zh) | 一种文件锁管理方法、系统、设备及计算机可读存储介质 | |
CN114490540B (zh) | 数据存储方法、介质、装置和计算设备 | |
CN116049306A (zh) | 数据同步方法、装置、电子设备以及可读存储介质 | |
CN112860480B (zh) | 一种双活存储系统及其处理数据的方法 | |
CN115328859A (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 |