CN110602026B - 文件访问方法、控制节点、客户端和电子设备 - Google Patents
文件访问方法、控制节点、客户端和电子设备 Download PDFInfo
- Publication number
- CN110602026B CN110602026B CN201810608275.1A CN201810608275A CN110602026B CN 110602026 B CN110602026 B CN 110602026B CN 201810608275 A CN201810608275 A CN 201810608275A CN 110602026 B CN110602026 B CN 110602026B
- Authority
- CN
- China
- Prior art keywords
- client
- read
- write access
- time
- numerical value
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开一种文件访问方法、控制节点、客户端和电子设备,方法包括:判断控制节点与第一客户端之间的通信链路是否断开;当在第一时刻确定通信链路断开时,在第二时刻向目标数据块服务器发送通知消息;其中,第二时刻晚于第一时刻,且第二时刻与第一时刻之间的时间间隔为第一预设时长,目标数据块服务器用于在第一客户端对目标文件的读写访问权限失效前为第一客户端提供对目标文件的读写访问服务,通知消息用于通知目标数据块服务器第一客户端对目标文件的读写访问权限已失效。
Description
技术领域
本申请涉及计算机网络技术领域,更具体地涉及分布式系统中的文件访问方法、控制节点、客户端和电子设备。
背景技术
分布式系统通常包括客户端(Client)、控制(Master)节点和块服务器(ChunkSever),用户通过Client访问数据,Master节点存储用户的元数据,即文件名、文件长度及数据实际的存储位置等信息,ChunkSever实际存储了用户的数据。用户读写数据时,先访问Master节点查询实际数据存储在哪台Chunksever上,然后再访问相应的ChunkSever读写数据。
Client对文件进行访问时,通过会话(Session)机制与Master节点定期保持心跳来拿到文件访问权,Master节点通过周期性扫描来检测是否有过期的Session,当出现网络分区时,Client与Master节点之间的网络不通,心跳断开。但当Client与ChunkSever之间的网络保持连通,Master节点与ChunkSever之间的网络也保持连通时,由于心跳断开,Master将收回文件访问权,并且释放Client的Session信息,继而Master通知ChunkSever该Client不再拥有文件访问权,使得Client将无法访问ChunkSever,导致Client写失败。
目前分布式系统中为了提高出现网络分区时系统的可用性,将在与Master节点之间的网络不通的Client上运行的任务调度到其他Client上来执行,但由于网络分区的存在,新的Client与网络之间的网络不一定相同,可能会导致多次调度的问题。并且即使新的Client与Master节点相通,新的Client可以成功重新打开文件,但任务的迁移、文件的重打开耗时秒级,无法做到平滑容错和迁移。
因此,需要一种文件访问方法,来克服上述技术问题。
发明内容
本申请的目的在于提供一种文件访问方法、控制节点、客户端和电子设备,能够在分布式系统中出现网络分区时提高分布式系统的可用性。
第一方面,提供了一种文件访问方法,包括:判断控制节点与第一客户端之间的通信链路是否断开;当在第一时刻确定通信链路断开时,在第二时刻向目标数据块服务器发送通知消息;其中,第二时刻晚于第一时刻,且第二时刻与第一时刻之间的时间间隔为第一预设时长,目标数据块服务器用于在第一客户端对目标文件的读写访问权限失效前为第一客户端提供对目标文件的读写访问服务,通知消息用于通知目标数据块服务器第一客户端对目标文件的读写访问权限已失效。
第二方面,提供了一种文件访问方法,包括:向控制节点发送第二权限申请请求,第二权限申请请求用于请求对目标文件的读写访问权限,第二权限申请请求中包括第一数值,第一数值大于第二数值,第一数值为第一客户端请求进行读写访问且与目标文件相关的数据块的个数,第二数值由第一客户端根据要进行读写访问的数据的大小和每个数据块的预设大小确定;接收控制节点发送的第二权限申请响应,第二权限申请响应中包括第一客户端请求进行读写访问且与目标文件相关的数据块的位置信息。
第三方面,提供了一种文件访问系统,文件访问系统包括控制节点和客户端;该控制节点包括:判断单元,判断主控节点与第一客户端之间的通信链路是否断开;收发单元,当在第一时刻确定通信链路断开时,在第二时刻向目标数据块服务器发送通知消息;其中,第二时刻晚于第一时刻,且第二时刻与第一时刻之间的时间间隔为第一预设时长,目标数据块服务器用于在第一客户端对目标文件的读写访问权限失效前为第一客户端提供对目标文件的读写访问服务,通知消息用于通知目标数据块服务器第一客户端对目标文件的读写访问权限已失效;该客户端包括:发送单元,向控制节点发送第二权限申请请求,第二权限申请请求用于请求对目标文件的读写访问权限,第二权限申请请求中包括第一数值,第一数值大于第二数值,第一数值为第一客户端请求进行读写访问且与目标文件相关的数据块的个数,第二数值由第一客户端根据要进行读写访问的数据的大小和每个数据块的预设大小确定;接收单元,接收控制节点发送的第二权限申请响应,第二权限申请响应中包括第一客户端请求进行读写访问且与目标文件相关的数据块的位置信息。
第四方面,提供了一种计算机可读介质,所述计算机可读介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得电子设备执行以下操作:
判断控制节点与第一客户端之间的通信链路是否断开;当在第一时刻确定通信链路断开时,在第二时刻向目标数据块服务器发送通知消息;其中,所述第二时刻晚于所述第一时刻,且第二时刻与第一时刻之间的时间间隔为第一预设时长,目标数据块服务器用于在第一客户端对目标文件的读写访问权限失效前为第一客户端提供对目标文件的读写访问服务,通知消息用于通知目标数据块服务器第一客户端对目标文件的读写访问权限已失效。
第五方面,提供了一种计算机可读介质,所述计算机可读介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
向控制节点发送第二权限申请请求,第二权限申请请求用于请求对目标文件的读写访问权限,第二权限申请请求中包括第一数值,第一数值大于第二数值,第一数值为第一客户端请求进行读写访问且与目标文件相关的数据块的个数,第二数值由第一客户端根据要进行读写访问的数据的大小和每个数据块的预设大小确定;接收控制节点发送的第二权限申请响应,第二权限申请响应中包括第一客户端请求进行读写访问且与目标文件相关的数据块的位置信息。
由以上本申请的技术方案可见,本申请实施例的控制节点在第一时刻确定其与第一客户端之间的通信链路断开时,在从第一时刻开始经过第一预设时长时向为第一客户端提供对目标文件的读写访问服务的目标数据块服务器发送通知消息,能够使得客户端在与控制节点之间的通信链路断开后的一段时间内仍能够继续对文件进行读写访问,并且不需要将客户端运行的任务调度到其他客户端,避免任务的迁移、文件的重打开带来的耗时,能够提高分布式系统在出现网络分区时的可用性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是基于一些实施例的一个应用场景的示意图。
图2是根据本申请的一个实施例的文件访问方法的示意性流程图。
图3是根据本申请的一个实施例的文件访问方法的另一示意性流程图。
图4是根据本申请的另一个实施例的文件访问方法的示意性流程图。
图5是根据本申请的一个实施例的电子设备的结构示意图。
图6是根据本申请的另一个实施例的电子设备的结构示意图。
图7是根据本申请的一个实施例的控制节点的结构示意图。
图8是根据本申请的一个实施例的客户端的结构示意图。
图9是根据本申请的一个实施例的文件访问系统的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
图1是基于一些实施例的一个应用场景的示意图。如图1所示出的应用场景中包括客户端(Client)、控制(Master)节点和数据块服务器(ChunkSever)。在Client和Master节点之间传输控制流,使得Client向Master查询实际数据存储在哪台ChunkSever上,Master节点与ChunkSever之间传输控制流,使得Master节点通知ChunkSever Client是否具有文件访问权限,Client与ChunkSever之间传输数据流,使得Client通过访问ChunkSever读写数据。但是当Client与Master节点之间的通信链路断开时,Master节点将收回Client的文件访问权限,并通知ChunkSever,使得Client无法访问ChunkSever进行数据读写,影响分布式系统的可用性。
为了提高分布式系统的可用性,本申请提供了一种文件访问方法。下面将结合图2,详细描述根据本申请的一个实施例的文件访问方法。图2所示的方法由控制节点执行。
如图2所示出的,在S202处,判断控制节点与第一客户端之间的通信链路是否断开。
可选地,作为一个例子,第一客户端通过会话(Session)机制与控制节点定期保持心跳来申请文件访问权限,控制节点通过周期性扫描来检测与第一客户端的Session是否过期,当控制节点发现与第一客户端的Session过期时,认为第一客户端的心跳断开,即认为自己与第一客户端之间的通信链路断开。
在S204处,当在第一时刻确定通信链路断开时,在第二时刻向目标数据块服务器发送通知消息;
其中,第二时刻晚于第一时刻,且第二时刻与第一时刻之间的时间间隔为第一预设时长,目标数据块服务器用于在第一客户端对目标文件的访问权限失效前为第一客户端提供对目标文件的读写访问服务,通知消息用于通知目标数据块服务器第一客户端对目标文件的读写访问权限已失效。
也就是说,当控制节点发现其与第一客户端之间的通信链路断开时,并不是立刻通知为该第一客户端提供服务的目标数据块服务器该第一客户端的读写访问权限已失效,而是从发现其与第一客户端之间的通信链路断开的时刻开始经过第一预设时长时通知目标数据块服务器该第一客户端的读写访问权限已失效,使得第一客户端在与控制节点之间的通信链路断开之后的一段时间内仍能够通过访问目标数据块服务器进行数据读写,提高系统的可用性。
可以理解的是,目标文件可能被分成多个块(Chunk),这多个Chunk可能存储在一个或多个数据块服务器上。也就是说,目标数据块服务器的个数可能是一个也可能是多个。如果目标数据块服务器的个数是一个,则控制节点只向这一个目标数据块服务器发送通知消息,如果目标数据块服务器的个数是多个,则控制节点会向这多个目标数据块服务器发送通知消息,使得这多个目标数据块服务器均获知第一客户端对目标文件的读写访问权限已失效,从而不再为第一客户端提供对目标文件的读写访问服务。在这里,目标文件被分成的Chunk的大小例如可以是64M,也可以为其他数值,例如可以是1G。
可选地,作为一个例子,第一预设时长为半小时(30min)。但可以理解的是,第一预设时长可以根据实际需要设置。例如可以根据数据实际坏盘年华率确定第一预设时长。
进一步地,在一些实施例中,图2所示的方法还包括:当在第一时刻确定通信链路断开时,在从第一时刻开始的第二预设时长内缓存第一客户端的会话信息。在这里的第二预设时长可以与第一预设时长相等,第二预设时长例如可以是半小时。但可以理解的是,第二预设时长可以根据实际需要动态调整。通过缓存第一客户端的会话信息,可以避免将第一客户端运行的任务调度到新的客户端上进行运行带来的耗时。
更进一步地,在一些实施例中,图2所示的方法还包括:若再第三时刻确定通信链路恢复,则确定控制节点确定第一客户端对目标文件的读写访问权限恢复,并基于第一客户端的会话信息与第一客户端继续进行通信;其中,第三时刻晚于第一时刻,且第三时刻与第一时刻之间的时间间隔小于第二预设时长。
换言之,如果第一客户端与控制节点之间的通信链路在控制节点释放第一客户端的会话信息之前恢复,则控制节点可以基于缓存的第一客户端的会话信息继续与第一客户端进行通信,由此可以在通信链路恢复时直接为第一客户端提供服务,避免重新认证以及文件重新打开带来的多次远程过程调用(Remote Procedure Call,RPC)耗时。
可选地,在另一些实施例中,若在第四时刻接收到第二客户端发送的用于申请对目标文件的读写访问权限的第一权限申请请求,则释放第一客户端的会话信息,并向第二客户端发送第一权限申请响应;其中,第一权限申请响应用于通知第二客户端对目标文件的读写访问权限申请成功,第四时刻在第一时刻与第三时刻之间。
也就是说,如果控制节点在确定其与第一客户端之间的通信链路断开的第一时刻与确定其与第一客户端之间的通信链路恢复的第三时刻之间收到了其他客户端请求访问目标文件的第一权限申请请求(可以认为由第一客户端运行的读写任务被调度到其他客户端上),则控制节点会同意该其他客户端对目标文件的访问。在这种情况下,控制节点可以在接收到其他客户端的第一权限申请请求时释放掉缓存的第一客户端的会话信息。
具体地,在一些实施例中,图2所示的方法还包括:在缓存第一客户端的会话信息时,将第一客户端的会话信息的状态记录为待失效(ToExpired)状态;在第三时刻确定通信链路恢复时,将第一客户端的会话信息的状态由待失效状态修改为正常(Normal)状态。
或者可以理解为,控制节点在发现其与第一客户端的通信链路断掉时,将第一客户端的Session信息缓存下来,并标记为待失效(ToExpired)状态而不是直接释放掉Session信息,当控制节点与第一客户端之间的通信链路恢复时(或者说网络分区恢复时),第一客户端可以按照Session信息继续与控制节点进行通信,并且控制节点可以将第一客户端的Session信息的状态由ToExpired状态修改为Normal状态。但如果在控制节点与第一客户端之间的通信链路恢复之前,第一客户端上运行的读写任务被调度到新的客户端上,且新的客户端向控制节点索要文件的读写访问权限,则控制节点将会将第一客户端的Session信息释放掉,并允许新的客户端对文件进行读写访问。
在本申请实施例中,可选地,如图3所示,图2所示的方法还包括:
S206,接收第一客户端发送的第二权限申请请求,第二权限申请请求用于请求对目标文件的读写访问权限,第二权限申请请求中包括第一数值,第一数值大于第二数值,第一数值为第一客户端请求进行读写访问且与目标文件相关的数据块的个数,第二数值由第一客户端根据要进行读写访问的数据的大小和每个数据块的预设大小确定。
作为一个例子,第二数值为第一客户端根据要进行读写访问的数据的大小与每个数据块的预设大小的比值确定。例如,第一客户端要进行读写访问的数据的大小为130M,每个数据块的大小为64M,则第二数值为2。在这种情况下,第一数值可以是大于2的数值,例如第二数值为4。但本申请实施例对根据第一数值确定第二数值的方法不作限定。
S208,向第一客户端发送第二权限申请响应,第二权限申请响应中包括第一客户端请求进行读写访问且与目标文件相关的数据块的位置信息。
具体地,在一些实施例中,第二权限申请请求中可以包括第一客户端的认证信息和文件读取信息(例如,访问版本、文件名称、第二数值)。如果控制节点查看认证信息和文件名均正确,且没有其他客户端正在读写第一客户端请求访问的文件名称对应的文件,则允许第一客户端打开文件,并更改记录的信息,以及标记该文件属于第一客户端。第二权限申请响应中包括指示第一客户端对文件进行读写访问的权限申请成功的信息和第一客户端请求访问的与该文件相关的数据块的位置信息(例如,具体在哪些ChunkSever的哪些盘上,即Location)。
在上述所有实施例中,可选地,目标文件被分成的数据块的大小为1G。采用大的数据块尺寸,第一客户端和控制节点的一次通信获取数据块的位置信息后就可以对一个大的数据块进行多次的读写操作。即使第一客户端与控制节点之间的通信链路断开,第一客户端依然能够保持很长一段时间对目标数据块服务器上的数据块继续进行读写,提高分布式系统的可用性。
图4示出了本申请的另一个实施例文件访问方法,图4所示的方法能够应用于图1所示的应用场景中。
如图4所示出的,在S402处,向控制节点发送第二权限申请请求,所述第二权限申请请求用于请求对目标文件的读写访问权限,所述第二权限申请请求中包括第一数值,所述第一数值大于第二数值,所述第一数值为所述第一客户端请求进行读写访问且与所述目标文件相关的数据块的个数,所述第二数值由所述第一客户端根据要进行读写访问的数据的大小和每个数据块的预设大小确定。
在S404处,接收所述控制节点发送的第二权限申请响应,所述第二权限申请响应中包括所述第一客户端请求进行读写访问且与所述目标文件相关的数据块的位置信息。
根据本申请实施例的文件访问方法,第一客户端向控制节点发送用于请求对目标文件的读写访问权限的第二权限申请请求,且第二权限申请请求中包括第一数值,第一数值大于由第一客户端根据要进行读写访问的数据的大小和每个数据块的预设大小确定的第二数值,并接收控制节点发送的第二权限申请响应,第二权限申请响应中包括第一客户端请求进行读写访问且与目标文件相关的数据块的位置信息,能够使得第一客户端多缓存几个数据块的位置信息,进而使得第一客户端即使在与控制节点之间的通信链路断开时,也能依然能够在通信链路断开后的一段时间内在缓存的位置信息对应的数据快上进行读写操作,能够提高分布式系统在出现网络分区时的可用性。
可选地,作为一个实施例,目标文件被分成的数据块的大小为1G。
以上结合图2至图4详细描述了根据本申请实施例的文件访问方法。下面将结合图5详细描述根据本申请实施例的电子设备。参考图5,在硬件层面,电子设备包括处理器,可选地,包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成控制节点。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
判断控制节点与第一客户端之间的通信链路是否断开;
当在第一时刻确定所述通信链路断开时,在第二时刻向目标数据块服务器发送通知消息;
其中,所述第二时刻晚于所述第一时刻,且所述第二时刻与所述第一时刻之间的时间间隔为第一预设时长,所述目标数据块服务器用于在所述第一客户端对目标文件的读写访问权限失效前为所述第一客户端提供对所述目标文件的读写访问服务,所述通知消息用于通知所述目标数据块服务器所述第一客户端对所述目标文件的读写访问权限已失效。
上述如本申请图2和图3所示实施例揭示的控制节点执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图2和图3所示实施例的方法,并具体用于执行以下方法:
判断控制节点与第一客户端之间的通信链路是否断开;
当在第一时刻确定所述通信链路断开时,在第二时刻向目标数据块服务器发送通知消息;
其中,所述第二时刻晚于所述第一时刻,且所述第二时刻与所述第一时刻之间的时间间隔为第一预设时长,所述目标数据块服务器用于在所述第一客户端对目标文件的读写访问权限失效前为所述第一客户端提供对所述目标文件的读写访问服务,所述通知消息用于通知所述目标数据块服务器所述第一客户端对所述目标文件的读写访问权限已失效。
下面将结合图6详细描述根据本申请实施例的电子设备。参考图6,在硬件层面,电子设备包括处理器,可选地,包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成客户端。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
向控制节点发送第二权限申请请求,所述第二权限申请请求用于请求对目标文件的读写访问权限,所述第二权限申请请求中包括第一数值,所述第一数值大于第二数值,所述第一数值为所述第一客户端请求进行读写访问且与所述目标文件相关的数据块的个数,所述第二数值由所述第一客户端根据要进行读写访问的数据的大小和每个数据块的预设大小确定;
接收所述控制节点发送的第二权限申请响应,所述第二权限申请响应中包括所述第一客户端请求进行读写访问且与所述目标文件相关的数据块的位置信息。
上述如本申请图4所示实施例揭示的客户端执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图4所示实施例的方法,并具体用于执行以下方法:
向控制节点发送第二权限申请请求,所述第二权限申请请求用于请求对目标文件的读写访问权限,所述第二权限申请请求中包括第一数值,所述第一数值大于第二数值,所述第一数值为所述第一客户端请求进行读写访问且与所述目标文件相关的数据块的个数,所述第二数值由所述第一客户端根据要进行读写访问的数据的大小和每个数据块的预设大小确定;
接收所述控制节点发送的第二权限申请响应,所述第二权限申请响应中包括所述第一客户端请求进行读写访问且与所述目标文件相关的数据块的位置信息。
图7是本申请的一个实施例的控制节点的结构示意图。请参考图7,在一种软件实施方式中,控制节点700可包括:处理单元701和收发单元702,其中,
处理单元701,判断控制节点700与第一客户端之间的通信链路是否断开;
收发单元702,当在第一时刻确定所述通信链路断开时,在第二时刻向目标数据块服务器发送通知消息;
其中,所述第二时刻晚于所述第一时刻,且所述第二时刻与第一时刻之间的时间间隔为第一预设时长,所述目标数据块服务器用于在所述第一客户端对目标文件的读写访问权限失效前为所述第一客户端提供对所述目标文件的读写访问服务,所述通知消息用于通知所述目标数据块服务器所述第一客户端对所述目标文件的读写访问权限已失效。
根据本申请实施例的控制节点,在第一时刻确定其与第一客户端之间的通信链路断开时,在从第一时刻开始经过第一预设时长时向为第一客户端提供对目标文件的读写访问服务的目标数据块服务器发送通知消息,使得客户端在与控制节点之间的通信链路断开后的一段时间内仍能够继续对文件进行读写访问,并且不需要将客户端运行的任务调度到其他客户端,避免任务的迁移、文件的重打开带来的耗时,能够提高分布式系统在出现网络分区时的可用性。
可选地,作为一个实施例,处理单元701:
当在所述第一时刻确定所述通信链路断开时,在从所述第一时刻开始的第二预设时长内缓存所述第一客户端的会话信息。
可选地,作为一个实施例,处理单元701:
若在第三时刻确定所述通信链路恢复,则确定所述控制节点确定所述第一客户端对所述目标文件的读写访问权限恢复,并基于所述第一客户端的会话信息与所述第一客户端继续进行通信;
其中,所述第三时刻晚于所述第一时刻,且所述第三时刻与所述第一时刻之间的时间间隔小于所述第二预设时长。
可选地,作为一个实施例,收发单元702:
若在第四时刻接收到第二客户端发送的用于申请对所述目标文件的读写访问权限的第一权限申请请求,则释放所述第一客户端的会话信息,并向所述第二客户端发送第一权限申请响应;
其中,所述第一权限申请响应用于通知所述第二客户端对所述目标文件的读写访问权限申请成功,所述第四时刻在所述第一时刻与所述第三时刻之间。
可选地,作为一个实施例,所述第一预设时长与所述第二预设时长相等。
可选地,作为一个实施例,处理单元701:
在缓存所述第一客户端的会话信息时,将所述第一客户端的会话信息的状态记录为待失效状态;
在所述第三时刻确定所述通信链路恢复时,将所述第一客户端的会话信息的状态由待失效状态修改为正常状态。
可选地,作为一个实施例,收发单元702:
接收所述第一客户端发送的第二权限申请请求,所述第二权限申请请求用于请求对所述目标文件的读写访问权限,所述第二权限申请请求中包括第一数值,所述第一数值大于第二数值,所述第一数值为所述第一客户端请求进行读写访问且与所述目标文件相关的数据块的个数,所述第二数值由所述第一客户端根据要进行读写访问的数据的大小和每个数据块的预设大小确定;
向所述第一客户端发送第二权限申请响应,所述第二权限申请响应中包括所述第一客户端请求进行读写访问且与所述目标文件相关的数据块的位置信息。
可选地,作为一个实施例,所述目标文件被分成的数据块的大小为1G。
图8是本申请的一个实施例的客户端的结构示意图。请参考图8,在一种软件实施方式中,客户端800可包括:发送单元801和接收单元802,其中,
发送单元801,向控制节点发送第二权限申请请求,所述第二权限申请请求用于请求对目标文件的读写访问权限,所述第二权限申请请求中包括第一数值,所述第一数值大于第二数值,所述第一数值为所述第一客户端请求进行读写访问且与所述目标文件相关的数据块的个数,所述第二数值由所述第一客户端根据要进行读写访问的数据的大小和每个数据块的预设大小确定;
接收单元802,接收所述控制节点发送的第二权限申请响应,所述第二权限申请响应中包括所述第一客户端请求进行读写访问且与所述目标文件相关的数据块的位置信息。
可选地,作为一个实施例,所述目标文件被分成的数据块的大小为1G。
根据本申请实施例的客户端向控制节点发送用于请求对目标文件的读写访问权限的第二权限申请请求,且第二权限申请请求中包括第一数值,第一数值大于由第一客户端根据要进行读写访问的数据的大小和每个数据块的预设大小确定的第二数值,并接收控制节点发送的第二权限申请响应,第二权限申请响应中包括第一客户端请求进行读写访问且与目标文件相关的数据块的位置信息,进而客户端能够多缓存几个数据块的位置信息,即使在与控制节点之间的通信链路断开时,也能依然保持一段时间在缓存的位置信息对应的数据块上进行读写访问,能够提高分布式系统在出现网络分区时的可用性。
可选地,作为一个实施例,目标文件被分成的数据块的大小为1G。
图9是本申请的一个实施例的文件访问系统的示意图。请参考图9,在一种软件实施方式中,文件访问系统包括图7所示的控制节点700和图8所示的客户端800。
总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (13)
1.一种文件访问方法,包括:
判断控制节点与第一客户端之间的通信链路是否断开;
当在第一时刻确定所述通信链路断开时,在第二时刻向目标数据块服务器发送通知消息;
其中,所述第二时刻晚于所述第一时刻,且所述第二时刻与所述第一时刻之间的时间间隔为第一预设时长,所述目标数据块服务器用于在所述第一客户端对目标文件的读写访问权限失效前为所述第一客户端提供对所述目标文件的读写访问服务,所述通知消息用于通知所述目标数据块服务器所述第一客户端对所述目标文件的读写访问权限已失效。
2.根据权利要求1所述的方法,还包括:
当在所述第一时刻确定所述通信链路断开时,在从所述第一时刻开始的第二预设时长内缓存所述第一客户端的会话信息。
3.根据权利要求2所述的方法,还包括:
若在第三时刻确定所述通信链路恢复,则确定所述控制节点确定所述第一客户端对所述目标文件的读写访问权限恢复,并基于所述第一客户端的会话信息与所述第一客户端继续进行通信;
其中,所述第三时刻晚于所述第一时刻,且所述第三时刻与所述第一时刻之间的时间间隔小于所述第二预设时长。
4.根据权利要求3所述的方法,还包括:
若在第四时刻接收到第二客户端发送的用于申请对所述目标文件的读写访问权限的第一权限申请请求,则释放所述第一客户端的会话信息,并向所述第二客户端发送第一权限申请响应;
其中,所述第一权限申请响应用于通知所述第二客户端对所述目标文件的读写访问权限申请成功,所述第四时刻在所述第一时刻与所述第三时刻之间。
5.根据权利要求2至4中任一项所述的方法,所述第一预设时长与所述第二预设时长相等。
6.根据权利要求3或4所述的方法,还包括:
在缓存所述第一客户端的会话信息时,将所述第一客户端的会话信息的状态记录为待失效状态;
在所述第三时刻确定所述通信链路恢复时,将所述第一客户端的会话信息的状态由待失效状态修改为正常状态。
7.根据权利要求1至4中任一项所述的方法,还包括:
接收所述第一客户端发送的第二权限申请请求,所述第二权限申请请求用于请求对所述目标文件的读写访问权限,所述第二权限申请请求中包括第一数值,所述第一数值大于第二数值,所述第一数值为所述第一客户端请求进行读写访问且与所述目标文件相关的数据块的个数,所述第二数值由所述第一客户端根据要进行读写访问的数据的大小和每个数据块的预设大小确定;
向所述第一客户端发送第二权限申请响应,所述第二权限申请响应中包括所述第一客户端请求进行读写访问且与所述目标文件相关的数据块的位置信息。
8.根据权利要求1至4中任一项所述的方法,所述目标文件被分成的数据块的大小为1G。
9.一种文件访问方法,包括:
向控制节点发送第二权限申请请求,所述第二权限申请请求用于请求对目标文件的读写访问权限,所述第二权限申请请求中包括第一数值,所述第一数值大于第二数值,所述第一数值为第一客户端请求进行读写访问且与所述目标文件相关的数据块的个数,所述第二数值由所述第一客户端根据要进行读写访问的数据的大小和每个数据块的预设大小的比值确定;
接收所述控制节点发送的第二权限申请响应,所述第二权限申请响应中包括所述第一客户端请求进行读写访问且与所述目标文件相关的所述第一数值的数据块的位置信息;
基于所述第二权限申请响应,缓存所述第一数值的数据块的位置信息,以在与控制节点之间的通信链路断开后根据所述位置信息在所述第一数值的数据块上进行读写操作。
10.根据权利要求9所述的方法,所述目标文件被分成的数据块的大小为1G。
11.一种文件访问系统,所述文件访问系统包括控制节点和客户端;
所述控制节点包括:
判断单元,判断所述控制节点与第一客户端之间的通信链路是否断开;
收发单元,当在第一时刻确定所述通信链路断开时,在第二时刻向目标数据块服务器发送通知消息;
其中,所述第二时刻晚于所述第一时刻,且所述第二时刻与所述第一时刻之间的时间间隔为第一预设时长,所述目标数据块服务器用于在所述第一客户端对目标文件的读写访问权限失效前为所述第一客户端提供对所述目标文件的读写访问服务,所述通知消息用于通知所述目标数据块服务器所述第一客户端对所述目标文件的读写访问权限已失效;
所述客户端包括:
发送单元,向控制节点发送第二权限申请请求,所述第二权限申请请求用于请求对目标文件的读写访问权限,所述第二权限申请请求中包括第一数值,所述第一数值大于第二数值,所述第一数值为所述第一客户端请求进行读写访问且与所述目标文件相关的数据块的个数,所述第二数值由所述第一客户端根据要进行读写访问的数据的大小和每个数据块的预设大小确定;
接收单元,接收所述控制节点发送的第二权限申请响应,所述第二权限申请响应中包括所述第一客户端请求进行读写访问且与所述目标文件相关的数据块的位置信息。
12.一种计算机可读介质,所述计算机可读介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得电子设备执行以下操作:
判断控制节点与第一客户端之间的通信链路是否断开;
当在第一时刻确定所述通信链路断开时,在第二时刻向目标数据块服务器发送通知消息;
其中,所述第二时刻晚于所述第一时刻,且所述第二时刻与所述第一时刻之间的时间间隔为第一预设时长,所述目标数据块服务器用于在所述第一客户端对目标文件的读写访问权限失效前为所述第一客户端提供对所述目标文件的读写访问服务,所述通知消息用于通知所述目标数据块服务器所述第一客户端对所述目标文件的读写访问权限已失效。
13.一种计算机可读介质,所述计算机可读介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得电子设备执行以下操作:
向控制节点发送第二权限申请请求,所述第二权限申请请求用于请求对目标文件的读写访问权限,所述第二权限申请请求中包括第一数值,所述第一数值大于第二数值,所述第一数值为第一客户端请求进行读写访问且与所述目标文件相关的数据块的个数,所述第二数值由所述第一客户端根据要进行读写访问的数据的大小和每个数据块的预设大小的比值确定;
接收所述控制节点发送的第二权限申请响应,所述第二权限申请响应中包括所述第一客户端请求进行读写访问且与所述目标文件相关的所述第一数值的数据块的位置信息;
基于所述第二权限申请响应,缓存所述第一数值的数据块的位置信息,以在与控制节点之间的通信链路断开后根据所述位置信息在所述第一数值的数据块上进行读写操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810608275.1A CN110602026B (zh) | 2018-06-13 | 2018-06-13 | 文件访问方法、控制节点、客户端和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810608275.1A CN110602026B (zh) | 2018-06-13 | 2018-06-13 | 文件访问方法、控制节点、客户端和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110602026A CN110602026A (zh) | 2019-12-20 |
CN110602026B true CN110602026B (zh) | 2021-12-14 |
Family
ID=68849161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810608275.1A Active CN110602026B (zh) | 2018-06-13 | 2018-06-13 | 文件访问方法、控制节点、客户端和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110602026B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523279A (zh) * | 2011-12-12 | 2012-06-27 | 云海创想信息技术(无锡)有限公司 | 一种分布式文件系统及其热点文件存取方法 |
CN103294701A (zh) * | 2012-02-24 | 2013-09-11 | 联想(北京)有限公司 | 一种分布式文件系统以及数据处理的方法 |
CN106354840A (zh) * | 2016-08-31 | 2017-01-25 | 北京小米移动软件有限公司 | 文件处理方法、装置及分布式文件系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101694988B1 (ko) * | 2014-02-26 | 2017-01-11 | 한국전자통신연구원 | 분산 파일시스템에서의 읽기 동작 수행 방법 및 장치 |
-
2018
- 2018-06-13 CN CN201810608275.1A patent/CN110602026B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523279A (zh) * | 2011-12-12 | 2012-06-27 | 云海创想信息技术(无锡)有限公司 | 一种分布式文件系统及其热点文件存取方法 |
CN103294701A (zh) * | 2012-02-24 | 2013-09-11 | 联想(北京)有限公司 | 一种分布式文件系统以及数据处理的方法 |
CN106354840A (zh) * | 2016-08-31 | 2017-01-25 | 北京小米移动软件有限公司 | 文件处理方法、装置及分布式文件系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110602026A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10884623B2 (en) | Method and apparatus for upgrading a distributed storage system | |
US8838904B2 (en) | Method, system and server of removing a distributed caching object | |
CN113840012B (zh) | 基于区块链的录屏取证方法、系统和电子设备 | |
US11379836B2 (en) | Methods and systems for recording data based on plurality of blockchain networks | |
US11050550B2 (en) | Methods and systems for reading data based on plurality of blockchain networks | |
CN111046310A (zh) | 页面处理方法、装置、服务器及计算机可读存储介质 | |
CN110601868B (zh) | 实时分发配置信息的分布式系统、方法和电子设备 | |
JP2009282907A (ja) | データベースアクセスサーバおよびデータベースアクセスシステム | |
CN107516048B (zh) | 一种控制分布式文件系统中文件访问的方法与设备 | |
CN111865687A (zh) | 一种业务数据更新方法及设备 | |
CN113806143B (zh) | 一种异地容灾方法、系统和电子设备 | |
CN110602026B (zh) | 文件访问方法、控制节点、客户端和电子设备 | |
CN107528703B (zh) | 一种用于管理分布式系统中节点设备的方法与设备 | |
CN111090818A (zh) | 资源管理方法、资源管理系统、服务器及计算机存储介质 | |
CN113391759B (zh) | 一种通信方法和设备 | |
US11086849B2 (en) | Methods and systems for reading data based on plurality of blockchain networks | |
CN110928944B (zh) | 一种数据处理方法及其装置 | |
CN106940660B (zh) | 缓存的实现的方法和装置 | |
CN111274176B (zh) | 一种信息处理方法、电子设备、系统及存储介质 | |
TWI740885B (zh) | 分布式儲存系統的服務節點切換方法及裝置 | |
KR20170027726A (ko) | 데이터 처리를 위한 방법 및 시스템 | |
US20120016969A1 (en) | Distributed object management system, distributed object management server, distributed object management method and computer program of the same | |
US9600508B1 (en) | Data layer service availability | |
CN110688057A (zh) | 一种分布式存储方法及装置 | |
US8135982B2 (en) | Parallel multiplex storage systems |
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 |