CN109918356B - 文件读取方法、装置、设备及计算机可读存储介质 - Google Patents
文件读取方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109918356B CN109918356B CN201910202674.2A CN201910202674A CN109918356B CN 109918356 B CN109918356 B CN 109918356B CN 201910202674 A CN201910202674 A CN 201910202674A CN 109918356 B CN109918356 B CN 109918356B
- Authority
- CN
- China
- Prior art keywords
- file
- copy
- reading
- lease
- lock
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文件读取方法,该方法包括:当接收到客户端的文件读取请求时,依据所述文件读取请求,判断对应的文件是否已加上第一租约锁;若所述文件已加上第一租约锁,则判断所述文件的第一租约锁是否需要续约,其中,在所述第一租约锁的生效时间内,所述文件的副本的存储路由不变;若所述文件的第一租约锁不需要续约,则依据所述文件读取请求,读取一个对应的文件副本。本发明还公开了一种文件读取装置、设备和计算机可读存储介质。本发明能够保证文件副本的读取一致性和降低文件副本的读取时延。
Description
技术领域
本发明涉及分布式存储的技术领域,尤其涉及一种文件读取方法、装置、设备及计算机可读存储介质。
背景技术
随着大数据时代的来临,分布式存储应用越来越广泛,在分布式存储环境下,存在多个存储设备,每个存储设备上存在多个分卷。一个文件为了数据安全性和文件访问效率可能存在不同数目的文件副本,文件副本需要均匀分布在不同主机的不同分卷上,既可以避免由于存储节点发生故障导致文件无法访问的情况,同时也可以避免由于高访问量造成用户访问延迟的增加。
目前,在实际应用分布式存储技术时,由于重建机制和迁移机制,文件副本的存储路由可能发生变更,如果只读单个文件副本,存在读取到的文件副本与源副本不一致的问题,为此,需要读取多个文件副本,从多个文件副本中找到源副本,然而,文件副本分布在不同主机的不同分卷上,读取时需要跨主机甚至跨机房读取文件副本,文件副本的读取时延较高。
因此,如何保证文件副本的读取一致性和降低文件副本的读取时延是目前亟待解决的问题。
发明内容
本发明的主要目的在于提出一种文件读取方法、装置、设备及计算机可读存储介质,旨在保证文件副本的读取一致性和降低文件副本的读取时延。
为实现上述目的,本发明提供一种文件读取方法,所述文件读取方法包括如下步骤:
当接收到客户端的文件读取请求时,依据所述文件读取请求,判断对应的文件是否已加上第一租约锁;
若所述文件已加上第一租约锁,则判断所述文件的第一租约锁是否需要续约,其中,在所述第一租约锁的生效时间内,所述文件的副本的存储路由不变;
若所述文件的第一租约锁不需要续约,则依据所述文件读取请求,读取一个对应的文件副本。
优选地,依据所述文件读取请求,读取一个对应的文件副本的步骤之后,还包括:
判断所述第一租约锁是否处于生效时间内;
若所述第一租约锁处于生效时间内,则将所述文件副本作为所述文件读取请求的响应返回至所述客户端。
优选地,依据所述文件读取请求,读取一个对应的文件副本的步骤包括:
依据所述文件读取请求获取对应文件的副本存储路由组,其中,所述副本存储路由组包含所述文件的各副本的存储路由;
判断所述副本存储路由组中是否存在属于本机的副本存储路由;
若所述副本存储路由组中存在属于本机的副本存储路由,则依据属于本机的副本存储路由从本机中读取一个对应的文件副本。
优选地,判断所述副本存储路由组中是否存在属于本机的副本存储路由的步骤之后,还包括:
若所述副本存储路由组中不存在属于本机的副本存储路由,则确定本机所属的机房;
判断所述副本存储路由组中是否存在属于所述机房的副本存储路由;
若所述副本存储路由组存在属于所述机房的副本存储路由,则依据属于所述机房的副本存储路由,从所述机房中读取一个对应的文件副本;
若所述副本存储路由组不存在属于所述机房的副本存储路由,则跨机房读取一个对应的文件副本。
优选地,依据所述文件读取请求,判断对应的文件是否已加上第一租约锁的步骤包括:
依据所述文件读取请求获取对应文件的副本存储路由信息,并判断所述副本存储路由信息中是否携带有租约标识符;
若所述副本存储路由信息中携带有租约标识符,则判定所述文件已加上第一租约锁;
若所述副本存储路由信息中未携带有租约标识符,则判定所述文件未加上第一租约锁。
优选地,所述文件读取方法还包括:
当监测到路由更新请求时,依据所述路由更新请求,获取对应文件的所有在线文件副本;
对所述所有在线文件副本执行加第二租约锁操作,其中,加上所述第二租约锁后的文件副本无法加上第一租约锁;
在所述所有在线文件副本均加上第二租约锁之后,依据所述路由更新请求,执行对应的路由更新操作;
在路由更新完成之后,对所述所有在线文件副本执行解第二租约锁操作。
可选地,对所述所有在线文件副本执行加第二租约锁操作的步骤包括:
判断所述所有在线文件副本中是否存在已加第一租约锁的目标文件副本;
若所述所有在线文件副本中存在已加第一租约锁的目标文件副本,则在所述目标文件副本的第一租约锁失效时,对所述目标文件副本执行加第二租约锁操作;
若所述所有在线文件副本中不存在已加第一租约锁的目标文件副本,则对所述所有在线文件副本执行加第二租约锁操作。
此外,为实现上述目的,本发明还提供一种文件读取装置,所述文件读取装置包括:
判断模块,用于当接收到客户端的文件读取请求时,依据所述文件读取请求,判断对应的文件是否已加上第一租约锁;
所述判断模块,还用于若所述文件已加上第一租约锁,则判断所述文件的第一租约锁是否需要续约,其中,在所述第一租约锁的生效时间内,所述文件的副本的存储路由不变;
读取模块,用于若所述文件的第一租约锁不需要续约,则依据所述文件读取请求,读取一个对应的文件副本。
可选地,所述文件读取装置还包括:
所述判断模块,还用于判断所述第一租约锁是否处于生效时间内;
发送模块,用于若所述第一租约锁处于生效时间内,则将所述文件副本作为所述文件读取请求的响应返回至所述客户端。
可选地,所述读取模块还用于:
依据所述文件读取请求获取对应文件的副本存储路由组,其中,所述副本存储路由组包含所述文件的各副本的存储路由;
判断所述副本存储路由组中是否存在属于本机的副本存储路由;
若所述副本存储路由组中存在属于本机的副本存储路由,则依据属于本机的副本存储路由从本机中读取一个对应的文件副本。
可选地,所述读取模块还用于:
若所述副本存储路由组中不存在属于本机的副本存储路由,则确定本机所属的机房;
判断所述副本存储路由组中是否存在属于所述机房的副本存储路由;
若所述副本存储路由组存在属于所述机房的副本存储路由,则依据属于所述机房的副本存储路由,从所述机房中读取一个对应的文件副本;
若所述副本存储路由组不存在属于所述机房的副本存储路由,则跨机房读取一个对应的文件副本。
可选地,所述判断模块还用于:
依据所述文件读取请求获取对应文件的副本存储路由信息,并判断所述副本存储路由信息中是否携带有租约标识符;
若所述副本存储路由信息中携带有租约标识符,则判定所述文件已加上第一租约锁;
若所述副本存储路由信息中未携带有租约标识符,则判定所述文件未加上第一租约锁。
可选地,所述文件读取装置还包括:
获取模块,用于当监测到路由更新请求时,依据所述路由更新请求,获取对应文件的所有在线文件副本;
加锁模块,用于对所述所有在线文件副本执行加第二租约锁操作,其中,加上所述第二租约锁后的文件副本无法加上第一租约锁;
更新模块,用于在所述所有在线文件副本均加上第二租约锁之后,依据所述路由更新请求,执行对应的路由更新操作;
解锁模块,用于在路由更新完成之后,对所述所有在线文件副本执行解第二租约锁操作。
可选地,所述加锁模块还用于:
判断所述所有在线文件副本中是否存在已加第一租约锁的目标文件副本;
若所述所有在线文件副本中存在已加第一租约锁的目标文件副本,则在所述目标文件副本的第一租约锁失效时,对所述目标文件副本执行加第二租约锁操作;
若所述所有在线文件副本中不存在已加第一租约锁的目标文件副本,则对所述所有在线文件副本执行加第二租约锁操作。
此外,为实现上述目的,本发明还提供一种文件读取设备,所述文件读取设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的文件读取程序,所述文件读取程序被所述处理器执行时实现如上所述的文件读取方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有文件读取程序,所述文件读取程序被处理器执行时实现如上所述的文件读取方法的步骤。
本发明提供一种文件读取方法、装置、设备及计算机可读存储介质,本发明当接收到文件读取请求时,依据该文件读取请求,判断对应的文件是否已加上第一租约锁,如果文件已加上第一租约锁,则进一步地判断该第一租约锁是否需要续约,且在第一租约锁的生效时间内,该文件的副本的存储路由不变,如果该文件的第一租约锁不需要续约,即第一租约锁还未失效,则依据该文件读取请求,读取一个对应的文件副本,通过给文件加上第一租约锁,使得在第一租约锁的生效时间内,文件的副本存储路由不发生改变,且读取时,只需要读取一个文件副本,由于副本的存储路由不发生改变,可以保证文件副本的读取一致性,同时不需要读取多个文件副本,可以有效的降低文件副本的读取时延,提高文件的读取速度。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的文件读取设备结构示意图;
图2为本发明文件读取方法一实施例的流程示意图;
图3为本发明文件读取方法第另一实施例的流程示意图;
图4为本发明文件读取装置一实施例的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的文件读取设备结构示意图。
本发明实施例文件读取设备可以是搭载了虚拟化平台的PC机或服务器(如X86服务器)等终端设备。
如图1所示,该文件读取设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及文件读取程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的文件读取程序,并执行以下文件读取方法实施例中的操作。
基于上述硬件结构,提出本发明文件读取方法的各实施例。
参照图2,图2为本发明文件读取方法一实施例的流程示意图。
本实施例中,该文件读取方法包括:
步骤S101,当接收到客户端的文件读取请求时,依据所述文件读取请求,判断对应的文件是否已加上第一租约锁;
本实施例中,该文件读取方法应用于文件读取设备,该文件读取设备可选为上述图1所示的设备,该文件读取设备为分布式存储系统,分布存储有文件副本,可以避免由于存储节点发生故障导致文件无法访问的情况,同时也可以避免由于高访问量造成用户访问延迟的增加,该文件读取设备可与客户端进行数据交互,当客户端需要从文件读取设备中读取文件时,客户端向文件读取设备发送文件读取请求,当文件读取设备接收到客户端的文件读取请求时,依据该文件读取请求,判断对应的文件是否已加上第一租约锁,其中,租约为服务器给予客户端在一定期限内可以控制修改操作的权力,租约锁为给予的权力对应的标识符。需要说明的是,第一租约锁为读锁,加上第一租约锁后的文件,其存储路由在租约生效期间不发生改变。
具体地,依据该文件读取请求获取对应文件的副本存储路由信息,并判断该副本存储路由信息中是否携带有租约标识符,如果副本存储路由信息中携带有租约标识符,则判定文件已加上第一租约锁,如果副本存储路由信息中未携带有租约标识符,则判定文件未加上第一租约锁。其中,副本存储路由信息的获取方式具体为:该文件读取设备从该文件读取请求中读取文件标识符,并从本地获取与该文件标识符对应的副本存储路由信息。需要说明的是,该文件标识符可以为文件名称,也可以为文件编号,本实施例对此不作具体限定。
具体实施中,判断对应的文件是否已加上第一租约锁的方式还可以为:判断对应文件的所有副本是否均已加上第一租约锁,如果对应文件的所有副本均已加上第一租约锁,则可以确定对应文件已加上第一租约锁,反之如果有副本未加上第一租约锁,则可以确定文件未加上第一租约锁。
步骤S102,若所述文件已加上第一租约锁,则判断所述文件的第一租约锁是否需要续约,其中,在所述第一租约锁的生效时间内,所述文件的副本的存储路由不变;
本实施例中,如果该文件已加上第一租约锁,则该文件读取设备进一步地判断该文件的第一租约锁是否需要续约,即判断该文件的第一租约锁是否即将到期,如果该文件的第一租约锁即将到期,则可以判定该文件的第一租约锁需要续约,如果该文件的第一租约锁的不即将到期,则不需要续约。需要说明的是,第一租约锁即将到期为租约超时前x秒,该x可选为1,本实施例对此不作具体限定。其中,在第一租约锁的生效时间内,文件的副本的存储路由不变,可以保证文件副本的读取一致性。具体实施中,如果该文件未加上第一租约锁,则该文件读取设备对该文件执行加第一租约锁操作,即向服务器发送租约申请请求,由服务器基于该租约申请请求,给该文件分配租约,并返回响应信息。实际操作中,存在文件的第一租约锁未成功加上的情况,为此,为保证文件副本的读取一致性,需要读取多个文件副本,具体为选取一半以上的文件副本,形成文件副本集,然后基于该文件读取请求从文件副本集中选择对应的文件副本。
步骤S103,若所述文件的第一租约锁不需要续约,则依据所述文件读取请求,读取一个对应的文件副本。
本实施例中,如果该文件的第一租约锁需要续约,则该文件读取设备对文件的第一租约锁执行续约操作,即向服务器发送续约请求,由服务器基于该续约请求执行对应的续约操作,并返回相应的续约响应;如果该文件的第一租约锁不需要续约,则该文件读取设备依据该文件读取请求,读取一个对应的文件副本,即从该文件读取请求中获取文件标识符,并获取与该文件标识符对应的副本存储路由组,然后从该副本存储路由组中任意选择一副本存储路由,并基于该副本存储路由获取一个对应的副本路由。
进一步地,在获取到文件副本之后,判断该第一租约锁是否处于生效时间内,如果该第一租约锁处于生效时间内,则将该文件副本作为该文件读取请求的响应返回至该客户端,如果该第一租约锁不处于生效时间内,则需要重试该文件读取请求,对该文件副本做校验。可以防止返回文件副本时,由于第一租约锁失效导致文件副本的路由被更改,读取到的文件副本不一致的问题发生。
本实施例中,本发明当接收到文件读取请求时,依据该文件读取请求,判断对应的文件是否已加上第一租约锁,如果文件已加上第一租约锁,则进一步地判断该第一租约锁是否需要续约,且在第一租约锁的生效时间内,该文件的副本的存储路由不变,如果该文件的第一租约锁不需要续约,即第一租约锁还未失效,则依据该文件读取请求,读取一个对应的文件副本,通过给文件加上第一租约锁,使得在第一租约锁的生效时间内,文件的副本存储路由不发生改变,且读取时,只需要读取一个文件副本,由于副本的存储路由不发生改变,可以保证文件副本的读取一致性,同时不需要读取多个文件副本,可以有效的降低文件副本的读取时延,提高文件的读取速度。
进一步地,基于上述实施例,提出本发明文件读取方法的另一实施例,与前述实施例的区别在于,文件副本分布在不同主机的不同分卷上,读取时存在本机房中存储有文件副本,而从其余机房中读取文件副本的情况,而机房之间的带宽是有限的,在数据传输量较多时,数据的传输时延较高,会导致文件的读取速度较慢,为此,在读取文件副本时,该文件读取设备依据该文件读取请求获取对应文件的副本存储路由组,即从该文件读取请求中读取文件标识符,并从本地获取与该文件标识符对应的副本存储路由组;然后判断该副本存储路由组中是否存在属于本机的副本存储路由,如果该副本存储路由组中存在属于本机的副本存储路由,则依据属于本机的副本存储路由从本机中读取一个对应的文件副本,其中,该副本存储路由组包含该文件的各副本的存储路由。
本实施例中,在读取文件副本时,先判断本地缓存中是否存在对应的文件副本,如果本地缓存中存在对应的文件副本,则直接从本地缓存中读取文件副本,不需要跨机房读取,可以提高文件的读取速度。
进一步地,基于上述实施例,提出本发明文件读取方法的另一实施例,与前述实施例的区别在于,由于一个机房中并不只有一个主机中存储有文件副本,为进一步地减少机房之间的带宽使用率,可以在副本存储路由组中不存在属于本机的副本存储路由时,从属于同一机房的其余设备中读取文件副本,具体为,如果副本存储路由组中不存在属于本机的副本存储路由,则确定本机所属的机房,并判断该副本存储路由组中是否存在属于该机房的副本存储路由,如果副本存储路由组存在属于该机房的副本存储路由,则依据属于该机房的副本存储路由,从该机房中读取一个对应的文件副本,如果该副本存储路由组不存在属于该机房的副本存储路由,则跨机房读取一个对应的文件副本。
本实施例中,当本地缓存中未存储有对应文件的副本时,可以进一步地判断本机所在机房的其余机器中是否存储有文件副本,如果有,则从本机所在机房中读取文件副本,如果没有,则跨机房读取文件副本,可以减少跨机房读取文件副本的次数,提高文件副本的读取速度。
进一步地,参照图3,基于上述实施例,提出了本发明文件读取方法的另一实施例,与前述实施例的区别在于,该文件读取方法还包括:
步骤S104,当监测到路由更新请求时,依据所述路由更新请求,获取对应文件的所有在线文件副本;
步骤S105,对所述所有在线文件副本执行加第二租约锁操作,其中,加上所述第二租约锁后的文件副本无法加上第一租约锁;
步骤S106,在所述所有在线文件副本均加上第二租约锁之后,依据所述路由更新请求,执行对应的路由更新操作;
步骤S107,在路由更新完成之后,对所述所有在线文件副本执行解第二租约锁操作。
本实施例中,在实际运行过程中,存储的某个文件副本会出现损坏,为此需要重建文件副本,此外,磁盘空间的使用不平衡,需要执行数据迁移操作,即将剩余空间较小的磁盘中的文件副本迁移到剩余空间较大的磁盘中,保证磁盘空间的均衡,然而重建或迁移文件副本,均需要改变文件副本的存储路由,因此需要更新文件副本的存储路由,即当监测到文件副本重建或迁移时,触发对应的路由更新请求,当监测到路由更新请求时,该文件读取设备依据该路由更新请求,获取对应文件的所有在线文件副本,即从该路由更新请求中获取文件标识符,并获取与该文件标识符对应的所有在线文件副本;然后对所有在线文件副本执行加第二租约锁操作,即判断所有在线文件副本中是否存在已加第一租约锁的目标文件副本,如果所有在线文件副本中存在已加第一租约锁的目标文件副本,则在该目标文件副本的第一租约锁失效时,对该目标文件副本执行加第二租约锁操作,如果所有在线文件副本中不存在已加第一租约锁的目标文件副本,则对所有在线文件副本执行加第二租约锁操作;最后在所有在线文件副本均加上第二租约锁之后,依据该路由更新请求,执行对应的路由更新操作,并在路由更新完成之后,对所有在线文件副本执行解第二租约锁操作。其中,加上第二租约锁后的文件副本无法加上第一租约锁,且第一租约锁与第二租约锁互斥,第一租约锁为读锁,第二租约锁为写锁,加第二租约锁操作具体为该文件读取设备向服务器请求用于给在线文件副本加写锁的租约,即第二租约锁,并基于该第二租约锁,对所有在线文件副本执行加第二租约锁操作,路由更新操作具体为该文件读取设备从该路由更新请求中获取路由关系表,从该路由关系表中获取待更新路由的文件副本的目标存储路由,然后将待更新路由的文件副本的当前存储路由替换为该目标存储路由。
本实施例中,本发明可以在文件副本重建或迁移之后,及时的更新文件副本的存储路由,由于对所有在线文件副本执行加第二租约锁操作,使得文件副本无法加上第一租约锁,可以防止路由还没有更新时,通过仅读取一个文件副本导致的读取到的文件副本与源副本不一致的问题。
本发明还提供一种文件读取装置。
参照图4,图4为本发明文件读取装置一实施例的模块示意图。
本实施例中,该文件读取装置包括:
判断模块101,用于当接收到客户端的文件读取请求时,依据所述文件读取请求,判断对应的文件是否已加上第一租约锁;
所述判断模块101,还用于若所述文件已加上第一租约锁,则判断所述文件的第一租约锁是否需要续约,其中,在所述第一租约锁的生效时间内,所述文件的副本的存储路由不变;
读取模块102,用于若所述文件的第一租约锁不需要续约,则依据所述文件读取请求,读取一个对应的文件副本。
进一步地,所述文件读取装置还包括:
所述判断模块101,还用于判断所述第一租约锁是否处于生效时间内;
发送模块,用于若所述第一租约锁处于生效时间内,则将所述文件副本作为所述文件读取请求的响应返回至所述客户端。
进一步地,所述读取模块102还用于:
依据所述文件读取请求获取对应文件的副本存储路由组,其中,所述副本存储路由组包含所述文件的各副本的存储路由;
判断所述副本存储路由组中是否存在属于本机的副本存储路由;
若所述副本存储路由组中存在属于本机的副本存储路由,则依据属于本机的副本存储路由从本机中读取一个对应的文件副本。
进一步地,所述读取模块102还用于:
若所述副本存储路由组中不存在属于本机的副本存储路由,则确定本机所属的机房;
判断所述副本存储路由组中是否存在属于所述机房的副本存储路由;
若所述副本存储路由组存在属于所述机房的副本存储路由,则依据属于所述机房的副本存储路由,从所述机房中读取一个对应的文件副本;
若所述副本存储路由组不存在属于所述机房的副本存储路由,则跨机房读取一个对应的文件副本。
进一步地,所述判断模块101还用于:
依据所述文件读取请求获取对应文件的副本存储路由信息,并判断所述副本存储路由信息中是否携带有租约标识符;
若所述副本存储路由信息中携带有租约标识符,则判定所述文件已加上第一租约锁;
若所述副本存储路由信息中未携带有租约标识符,则判定所述文件未加上第一租约锁。
进一步地,所述文件读取装置还包括:
获取模块,用于当监测到路由更新请求时,依据所述路由更新请求,获取对应文件的所有在线文件副本;
加锁模块,用于对所述所有在线文件副本执行加第二租约锁操作,其中,加上所述第二租约锁后的文件副本无法加上第一租约锁;
更新模块,用于在所述所有在线文件副本均加上第二租约锁之后,依据所述路由更新请求,执行对应的路由更新操作;
解锁模块,用于在路由更新完成之后,对所述所有在线文件副本执行解第二租约锁操作。
进一步地,所述加锁模块还用于:
判断所述所有在线文件副本中是否存在已加第一租约锁的目标文件副本;
若所述所有在线文件副本中存在已加第一租约锁的目标文件副本,则在所述目标文件副本的第一租约锁失效时,对所述目标文件副本执行加第二租约锁操作;
若所述所有在线文件副本中不存在已加第一租约锁的目标文件副本,则对所述所有在线文件副本执行加第二租约锁操作。
其中,本发明文件读取装置的各具体实施例可参照上述文件读取方法各实施例,此处不再赘述。
本发明实施了的文件读取装置通过给文件加上第一租约锁,使得在第一租约锁的生效时间内,文件的副本存储路由不发生改变,且读取时,只需要读取一个文件副本,由于副本的存储路由不发生改变,可以保证文件副本的读取一致性,同时不需要读取多个文件副本,可以有效的降低文件副本的读取时延,提高文件的读取速度。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有文件读取程序,所述文件读取程序被处理器执行时实现如上所述的文件读取方法的步骤。
其中,在所述处理器上运行的文件读取程序被执行时所实现的方法可参照本发明文件读取方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种文件读取方法,其特征在于,所述文件读取方法包括如下步骤:
当接收到客户端的文件读取请求时,依据所述文件读取请求,从所述文件读取请求中读取文件标识符,并获取与所述文件标识符对应的副本存储路由信息;
通过判断所述副本存储路由信息中是否携带有租约标识符,判断对应的文件是否已加上第一租约锁;
若所述文件已加上第一租约锁,则判断所述文件的第一租约锁是否需要续约,其中,在所述第一租约锁的生效时间内,所述文件的副本的存储路由不变;
若所述文件的第一租约锁不需要续约,则依据所述文件读取请求,读取一个对应的文件副本;
判断所述第一租约锁是否处于生效时间内;
若所述第一租约锁处于生效时间内,则将所述文件副本作为所述文件读取请求的响应返回至所述客户端。
2.如权利要求1所述的文件读取方法,其特征在于,依据所述文件读取请求,读取一个对应的文件副本的步骤包括:
依据所述文件读取请求获取对应文件的副本存储路由组,其中,所述副本存储路由组包含所述文件的各副本的存储路由;
判断所述副本存储路由组中是否存在属于本机的副本存储路由;
若所述副本存储路由组中存在属于本机的副本存储路由,则依据属于本机的副本存储路由从本机中读取一个对应的文件副本。
3.如权利要求2所述的文件读取方法,其特征在于,判断所述副本存储路由组中是否存在属于本机的副本存储路由的步骤之后,还包括:
若所述副本存储路由组中不存在属于本机的副本存储路由,则确定本机所属的机房;
判断所述副本存储路由组中是否存在属于所述机房的副本存储路由;
若所述副本存储路由组存在属于所述机房的副本存储路由,则依据属于所述机房的副本存储路由,从所述机房中读取一个对应的文件副本;
若所述副本存储路由组不存在属于所述机房的副本存储路由,则跨机房读取一个对应的文件副本。
4.如权利要求1至3中任一项所述的文件读取方法,其特征在于,依据所述文件读取请求,判断对应的文件是否已加上第一租约锁的步骤包括:
依据所述文件读取请求获取对应文件的副本存储路由信息,并判断所述副本存储路由信息中是否携带有租约标识符;
若所述副本存储路由信息中携带有租约标识符,则判定所述文件已加上第一租约锁;
若所述副本存储路由信息中未携带有租约标识符,则判定所述文件未加上第一租约锁。
5.如权利要求1至3中任一项所述的文件读取方法,其特征在于,所述文件读取方法还包括:
当监测到路由更新请求时,依据所述路由更新请求,获取对应文件的所有在线文件副本;
对所述所有在线文件副本执行加第二租约锁操作,其中,加上所述第二租约锁后的文件副本无法加上所述第一租约锁;
在所述所有在线文件副本均加上第二租约锁之后,依据所述路由更新请求,执行对应的路由更新操作;
在路由更新完成之后,对所述所有在线文件副本执行解第二租约锁操作。
6.如权利要求5所述的文件读取方法,其特征在于,对所述所有在线文件副本执行加第二租约锁操作的步骤包括:
判断所述所有在线文件副本中是否存在已加第一租约锁的目标文件副本;
若所述所有在线文件副本中存在已加第一租约锁的目标文件副本,则在所述目标文件副本的第一租约锁失效时,对所述目标文件副本执行加第二租约锁操作;
若所述所有在线文件副本中不存在已加第一租约锁的目标文件副本,则对所述所有在线文件副本执行加第二租约锁操作。
7.一种文件读取装置,其特征在于,所述文件读取装置包括:
获取模块,用于当接收到客户端的文件读取请求时,从所述文件读取请求中读取文件标识符,并获取与所述文件标识符对应的副本存储路由信息;
判断模块,用于通过判断所述副本存储路由信息中是否携带有租约标识符,判断对应的文件是否已加上第一租约锁;
所述判断模块,还用于若所述文件已加上第一租约锁,则判断所述文件的第一租约锁是否需要续约,其中,在所述第一租约锁的生效时间内,所述文件的副本的存储路由不变;
所述判断模块,还用于判断所述第一租约锁是否处于生效时间内;
读取模块,用于若所述文件的第一租约锁不需要续约,则依据所述文件读取请求,读取一个对应的文件副本;
发送模块,用于若所述第一租约锁处于生效时间内,则将所述文件副本作为所述文件读取请求的响应返回至所述客户端。
8.一种文件读取设备,其特征在于,所述文件读取设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的文件读取程序,所述文件读取程序被所述处理器执行时实现如权利要求1至6中任一项所述的文件读取方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有文件读取程序,所述文件读取程序被处理器执行时实现如权利要求1至6中任一项所述的文件读取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910202674.2A CN109918356B (zh) | 2019-03-15 | 2019-03-15 | 文件读取方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910202674.2A CN109918356B (zh) | 2019-03-15 | 2019-03-15 | 文件读取方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109918356A CN109918356A (zh) | 2019-06-21 |
CN109918356B true CN109918356B (zh) | 2023-05-12 |
Family
ID=66965261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910202674.2A Active CN109918356B (zh) | 2019-03-15 | 2019-03-15 | 文件读取方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109918356B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1343938A (zh) * | 2000-09-21 | 2002-04-10 | 优硕资讯科技股份有限公司 | 控制电子文件的租借效期的方法及其系统 |
US6658417B1 (en) * | 1997-12-31 | 2003-12-02 | International Business Machines Corporation | Term-based methods and apparatus for access to files on shared storage devices |
US8843441B1 (en) * | 2012-01-17 | 2014-09-23 | Amazon Technologies, Inc. | System and method for maintaining a master replica for reads and writes in a data store |
WO2017028688A1 (zh) * | 2015-08-14 | 2017-02-23 | 阿里巴巴集团控股有限公司 | 文件读写方法、装置和系统 |
CN107516048A (zh) * | 2016-06-16 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种控制分布式文件系统中文件访问的方法与设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7685128B2 (en) * | 2004-06-10 | 2010-03-23 | International Business Machines Corporation | Remote access agent for caching in a SAN file system |
US8185566B2 (en) * | 2009-01-15 | 2012-05-22 | Microsoft Corporation | Client-based caching of remote files |
US9575985B2 (en) * | 2009-12-07 | 2017-02-21 | Novell, Inc. | Distributed lock administration |
US8589553B2 (en) * | 2010-09-17 | 2013-11-19 | Microsoft Corporation | Directory leasing |
US10140312B2 (en) * | 2016-03-25 | 2018-11-27 | Amazon Technologies, Inc. | Low latency distributed storage service |
-
2019
- 2019-03-15 CN CN201910202674.2A patent/CN109918356B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658417B1 (en) * | 1997-12-31 | 2003-12-02 | International Business Machines Corporation | Term-based methods and apparatus for access to files on shared storage devices |
CN1343938A (zh) * | 2000-09-21 | 2002-04-10 | 优硕资讯科技股份有限公司 | 控制电子文件的租借效期的方法及其系统 |
US8843441B1 (en) * | 2012-01-17 | 2014-09-23 | Amazon Technologies, Inc. | System and method for maintaining a master replica for reads and writes in a data store |
WO2017028688A1 (zh) * | 2015-08-14 | 2017-02-23 | 阿里巴巴集团控股有限公司 | 文件读写方法、装置和系统 |
CN107516048A (zh) * | 2016-06-16 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种控制分布式文件系统中文件访问的方法与设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109918356A (zh) | 2019-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101643022B1 (ko) | 카탈로그-기반 소프트웨어 컴포넌트 관리 | |
CN102970284B (zh) | 用户信息处理方法和服务器 | |
KR101422563B1 (ko) | 데이터 패키지의 효율적인 다운로드 방법 및 시스템 | |
US8745342B2 (en) | Computer system for controlling backups using wide area network | |
CN106802939B (zh) | 一种解决数据冲突的方法和系统 | |
CN109873839B (zh) | 数据访问的方法、服务器与分布式系统 | |
CN110109628B (zh) | 分布式存储系统的数据重建方法、装置、设备及存储介质 | |
CN113886743B (zh) | 缓存资源的刷新方法、装置及系统 | |
CN115277145B (zh) | 分布式存储访问授权管理方法、系统、设备和可读介质 | |
US8635280B2 (en) | Method for utilizing heterogeneous storage systems by cooperating with server side storage software | |
US11093389B2 (en) | Method, apparatus, and computer program product for managing storage system | |
CN110119388B (zh) | 文件读写方法、装置、系统、设备及计算机可读存储介质 | |
CN109918356B (zh) | 文件读取方法、装置、设备及计算机可读存储介质 | |
CN112631994A (zh) | 数据迁移方法及系统 | |
CN108681494B (zh) | 备份数据还原方法、装置、用户设备及存储介质 | |
CN115309336A (zh) | 数据写入方法、缓存信息更新方法及相关装置 | |
CN114584545A (zh) | 数据管理方法、装置、系统、存储介质及电子设备 | |
CN113656100A (zh) | 接口切换方法、装置、电子装置及计算机程序产品 | |
CN109960682B (zh) | 快照点数据访问方法、装置、服务器及存储介质 | |
CN111104134B (zh) | 可编程器件的管理单元的更新方法、装置和存储介质 | |
CN114422538B (zh) | 多云存储系统、多云数据读写方法及电子设备 | |
JP7476481B2 (ja) | 情報処理システム、物理マシン、情報処理方法、及びプログラム | |
CN117177050B (zh) | 一种支持虚机vpc网络配置快照处理方法和系统 | |
JP7279371B2 (ja) | 管理サーバ、ブートサーバ、ネットワークブートシステム、ネットワークブート方法、プログラム | |
CN109933566B (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 |