掌桥专利:专业的专利平台
掌桥专利
首页

一种分布式存储系统的请求处理方法及设备

文献发布时间:2024-04-18 20:01:23


一种分布式存储系统的请求处理方法及设备

技术领域

本发明涉及分布式存储技术领域,具体涉及一种分布式存储系统的请求处理方法及设备。

背景技术

随着计算机科学与技术的发展,分布式存储系统的业务处理技术不断提高。

在分布式存储系统中,客户端指令删除某个文件后,系统的缓存中可能还保存该文件的相关数据。之后,当另一客户端发起对该文件的写请求时,系统依然会在该缓存中对该文件的相关数据执行写操作,并返回写操作成功的提示消息,但此时该另一客户端无法查询到该文件,导致写入的数据丢失。

发明内容

有鉴于此,本发明提供了一种分布式存储系统的请求处理方法及设备,以解决上述问题。

第一方面,本发明提供了一种分布式存储系统的请求处理方法,所述方法包括:

在元数据服务器确定第一文件为已删除文件后,接收所述元数据服务器通过中间缓存模块发送的第一文件标识;其中,所述第一文件标识用于标识所述第一文件;

根据所述第一文件标识在本地的多个文件缓存数据中确定第一文件缓存数据;其中,所述第一文件缓存数据中包括文件状态标识和所述第一文件标识;

将所述第一文件缓存数据中的所述文件状态标识设置为删除标识;

当接收到第一客户端发送的包含所述第一文件标识的文件操作请求时,根据所述第一文件缓存数据中的所述删除标识,驳回所述文件操作请求并向所述第一客户端返回第一通知消息,所述第一通知消息用于提示所述第一文件失效。

在一种可选的实施方式中,所述当接收到第一客户端发送的包含所述第一文件标识的文件操作请求时,根据所述第一文件缓存数据中的所述删除标识,驳回所述文件操作请求,包括:

当接收到所述文件操作请求时,获取所述文件操作请求中的所述第一文件标识;

根据已获取的所述第一文件标识确定所述第一文件缓存数据,并获取所述第一文件缓存数据中的所述文件状态标识;

在确定所述文件状态标识为所述删除标识的情况下,确定所述第一文件为已删除文件,驳回所述文件操作请求。

在一种可选的实施方式中,所述在元数据服务器确定第一文件为已删除文件后,接收所述元数据服务器通过中间缓存模块发送的第一文件标识,包括:

向所述中间缓存模块发送事件注册指令,以使所述中间缓存模块注册删除回调事件;

接收所述中间缓存模块当所述删除回调事件触发时发送的所述第一文件标识;其中,所述删除回调事件为当所述中间缓存模块接收到所述元数据服务器发送的所述第一文件标识时触发,所述第一文件标识为所述元数据服务器确定所述第一文件为所述已删除文件后发送至所述中间缓存模块。

在一种可选的实施方式中,所述方法还包括:

当接收到第二客户端发送的包含第二文件标识的文件处理请求时,从所述文件处理请求中获取所述第二文件标识,所述第二文件标识用于标识第二文件;

在确定本地的多个文件缓存数据中未存在与所述第二文件标识对应的文件缓存数据的情况下,向所述中间缓存模块发送包含所述第二文件标识的查询指令,以使所述中间缓存模块在多个文件缓存数据中查找是否存在与所述第二文件标识对应的第二文件缓存数据;

当接收到所述中间缓存模块返回的第一消息时,确定所述第二文件为已删除文件,驳回所述文件处理请求并向所述第二客户端返回第二通知消息;其中,所述第一消息和所述第二通知消息均用于提示所述第二文件失效;所述第一消息为所述中间缓存模块在未查找到所述第二文件缓存数据时发送的,或者为所述中间缓存模块在查找到所述第二文件缓存数据并确定所述第二文件缓存数据中的文件状态标识为删除标识时发送的,所述第二文件缓存数据中的删除标识为所述中间缓存模块在接收到所述元数据服务器发送的所述第二文件标识后在所述第二文件缓存数据中设置的,所述第二文件标识为所述元数据服务器当确定所述第二文件为已删除文件时发送至所述中间缓存模块;

当接收到所述中间缓存模块返回的第二消息时,确定所述第二文件非已删除文件;其中,所述第二消息用于提示所述第二文件为有效文件,所述第二消息为所述中间缓存模块在查找到所述第二文件缓存数据并确定所述第二文件缓存数据中的文件状态标识非删除标识时发送的。

在一种可选的实施方式中,所述第二文件缓存数据中包括文件数据;在所述确定所述第二文件非已删除文件之后,所述方法还包括:

向所述中间缓存模块发送与所述文件处理请求对应的文件操作指令,以使所述中间缓存模块对所述第二文件缓存数据中的文件数据执行相应操作。

在一种可选的实施方式中,在所述从所述文件处理请求中获取所述第二文件标识之后,所述方法还包括:

在确定本地的多个文件缓存数据中存在与所述第二文件标识对应的第三文件缓存数据的情况下,获取所述第三文件缓存数据中的文件状态标识;所述第三文件缓存数据中包括文件状态标识和文件数据;

当所述第三文件缓存数据中的文件状态标识非删除标识时,根据所述文件处理请求对所述第三文件缓存数据中的文件数据执行相应操作。

第二方面,本发明提供了一种分布式存储系统的请求处理设备,所述设备包括:

第一接收模块,用于在元数据服务器确定第一文件为已删除文件后,接收所述元数据服务器通过中间缓存模块发送的第一文件标识;其中,所述第一文件标识用于标识所述第一文件;

第一确定模块,用于根据所述第一文件标识在本地的多个文件缓存数据中确定第一文件缓存数据;其中,所述第一文件缓存数据中包括文件状态标识和所述第一文件标识;

第一设置模块,用于将所述第一文件缓存数据中的所述文件状态标识设置为删除标识;

第一驳回模块,用于当接收到第一客户端发送的包含所述第一文件标识的文件操作请求时,根据所述第一文件缓存数据中的所述删除标识,驳回所述文件操作请求;

第一返回模块,用于向所述第一客户端返回第一通知消息,所述第一通知消息用于提示所述第一文件失效。

第三方面,本发明提供了一种分布式存储系统的请求处理装置,所述装置包括元数据服务器、中间缓存模块和服务端;其中:

所述元数据服务器,用于在确定第一文件为已删除文件后,通过所述中间缓存模块向所述服务端发送第一文件标识;其中,所述第一文件标识用于标识所述第一文件;

所述服务端,用于根据所述第一文件标识在本地的多个文件缓存数据中确定第一文件缓存数据;其中,所述第一文件缓存数据中包括文件状态标识和所述第一文件标识;将所述第一文件缓存数据中的所述文件状态标识设置为删除标识;当接收到第一客户端发送的包含所述第一文件标识的文件操作请求时,根据所述第一文件缓存数据中的所述删除标识,驳回所述文件操作请求并向所述第一客户端返回第一通知消息,所述第一通知消息用于提示所述第一文件失效。

第四方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的分布式存储系统的请求处理方法。

第五方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的分布式存储系统的请求处理方法。

本发明提供的分布式存储系统的请求处理方法及设备,可以在元数据服务器确定第一文件为已删除文件后,接收元数据服务器通过中间缓存模块发送的第一文件标识;其中,第一文件标识用于标识第一文件。根据第一文件标识在本地的多个文件缓存数据中确定第一文件缓存数据;其中,第一文件缓存数据中包括文件状态标识和第一文件标识。将第一文件缓存数据中的文件状态标识设置为删除标识;当接收到第一客户端发送的包含第一文件标识的文件操作请求时,根据第一文件缓存数据中的删除标识,驳回文件操作请求并向第一客户端返回第一通知消息,第一通知消息用于提示第一文件失效。本实施例可以当文件被删除时,在相应的文件缓存数据中设置删除标识,并可以接收到客户端对文件的写请求时,根据文件缓存数据中的删除标识驳回客户端请求并向客户端返回通知消息,无需执行对文件的写操作,避免写入数据的丢失。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的分布式存储系统的请求处理方法的流程示意图之一;

图2是根据本发明实施例的元数据服务器的处理流程示意图;

图3是根据本发明实施例的中间缓存模块的处理流程示意图;

图4是根据本发明实施例的分布式存储系统的请求处理方法的流程示意图之二;

图5是根据本发明实施例的分布式存储系统的请求处理设备的结构示意图;

图6是根据本发明实施例的分布式存储系统的请求处理装置的结构示意图;

图7是本发明实施例的计算机设备的硬件结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

根据本发明实施例,提供了一种分布式存储系统的请求处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

如图1所示,本实施例提出第一种分布式存储系统的请求处理方法,该方法可以包括以下步骤:

S101、在元数据服务器确定第一文件为已删除文件后,接收元数据服务器通过中间缓存模块发送的第一文件标识;其中,第一文件标识用于标识第一文件。

需要说明的是,分布式存储系统中可以包括多个节点设备,每个节点设备中可以包括中间存储模块和服务端。

其中,中间存储模块可以为lib模块。服务端可以为网络文件系统(Network FileSystem,NFS)服务端即ganesha,也可以为fuse客户端对应的服务端。

具体的,本实施例可以应用于上述节点设备中的服务端。

可以理解的是,在分布式存储系统中,元数据服务器(metadata server,mds)负责管理整个文件系统的元数据信息,当有客户端删除某文件导致文件元数据发生变法时,mds必定能感知。

具体的,当fuse客户端或NFS客户端删除某个文件时,mds会第一时间感知更新,并将该文件的文件标识通过中间缓存模块发送至上述节点设备中的服务端。

需要说明的是,不同中间缓存模块具有对相应文件的操作权限。mds可以记录相对应的文件以及中间缓存模块,并以列表形式进行保存。具体的,对于某个文件,mds可以将该文件以及所有具有对该文件的操作权限的中间缓存模块进行关联,并以列表形式保存该关联关系。

具体的,mds可以在fuse客户端删除某个文件时,感知到该文件被删除,通过向列表中记录的所有拥有该文件的操作权限的中间缓存模块发送该文件的文件标识,以向中间缓存模块告知该文件已被删除。其中,mds可以无需向未访问过该文件的中间缓存模块发送该文件的文件标识,即无需告知其该文件已被删除。

其中,第一文件标识即为第一文件的文件标识。

可选的,mds可以向中间缓存模块发送携带第一文件标识的通告消息,中间缓存模块可以将该通告消息发送至其所在节点设备中的服务端。此时服务端可以从该通告消息中获取第一文件标识。

可以理解的是,mds在向相关的各个中间缓存模块发送通告消息时,即可以实现跨节点设备的信息传输,有效保障各个节点设备上的中间缓存模块对于通告消息的同步获取,保障信息同步。

S102、根据第一文件标识在本地的多个文件缓存数据中确定第一文件缓存数据;其中,第一文件缓存数据中包括文件状态标识和第一文件标识。

其中,文件缓存数据即为服务端缓存的某个文件的相关数据。

具体的,文件缓存数据中可以包括文件状态标识和文件标识。其中,文件状态标识为本实施例在缓存的文件相关数据中增设的信息,可以用于标识相应文件的状态,如已删除或未删除。文件标识即为相应文件的文件标识。

需要说明的是,服务端本地存储有多个文件缓存数据,即缓存有多个文件的相关数据。具体的,中间缓存模块中同样可以包括多个文件缓存数据。

具体的,本实施例可以根据第一文件标识,在本地的多个文件缓存数据中查找出包含第一文件标识的文件缓存数据,并确定为第一文件缓存数据。

S103、将第一文件缓存数据中的文件状态标识设置为删除标识。

其中,删除标识可以用于标识文件已被删除。

具体的,本实施例可以将删除标记delete_flag作为参数名,通过设置其对应的参数值来将文件状态标识设置为删除标识或非删除标识。其中,非删除标识用于标识文件未被删除。

其中,上述参数值可以包括真ture和假false。当参数值为ture时,文件状态标识即为删除标识。当参数值为false时,文件状态标识即为非删除标识。

可选的,服务端还可以将第一文件缓存数据加入删除队列,每隔一定时长即根据该删除队列中记录的文件缓存数据清除相应的文件缓存数据,比如每2分钟清除一次,以释放计数并释放缓存。且,服务端还可以通知中间缓存模块删除相应的文件缓存数据以释放相关文件标识的计数和释放缓存。

S104、当接收到第一客户端发送的包含第一文件标识的文件操作请求时,根据第一文件缓存数据中的删除标识,驳回文件操作请求并向第一客户端返回第一通知消息,第一通知消息用于提示第一文件失效。

其中,第一客户端可以为NFS客户端。

具体的,文件操作请求可以用于请求对第一文件执行相关操作,比如写操作和复制操作等。

可选的,步骤S104可以具体包括:

当接收到文件操作请求时,获取文件操作请求中的第一文件标识;

根据已获取的第一文件标识确定第一文件缓存数据,并获取第一文件缓存数据中的文件状态标识;

在确定文件状态标识为删除标识的情况下,确定第一文件为已删除文件,驳回文件操作请求并向第一客户端返回第一通知消息。

具体的,本实施例可以根据第一文件标识从本地的多个文件缓存数据中查找出第一文件缓存数据,并获取第一文件缓存数据中的文件状态标识,有效保障对第一文件缓存数据的获取和后续进一步处理的顺利执行。

可以理解的是,本实施例可以确定第一文件缓存数据中的文件状态标识即为删除标识。此时,本实施例可以确定第一文件已被删除,无需执行文件操作请求,并可以向客户端返回第一通知消息,即向客户端第一文件不存在的异常消息。

需要说明的是,本实施例可以提高多协议多客户端场景下并发访问删除时的数据安全性,保证写入数据结果不误报,避免客户端在请求对文件执行写操作,而文件已被其他客户端删除,写入仍显示成功的问题。本实施例可以在中间缓存模块及服务端协议中设置多层的缓存以及校验拦截,使客户端第一时间感知异常,避免数据丢失而导致的数据定位难等问题。同时可以避免一个客户端删除文件后,另一个客户端创建同名文件时由于缓存导致文件冲突的问题。本实施例从存储底层软件层面出发,可以有效保证文件被删除后实时同步各客户端信息,使其他客户端无法再访问该文件,能直接完善多客户端信息同步的数据一致性机制,增强了用户业务场景的安全性。

本实施例提出的分布式存储系统的请求处理方法,可以在元数据服务器确定第一文件为已删除文件后,接收元数据服务器通过中间缓存模块发送的第一文件标识;其中,第一文件标识用于标识第一文件。根据第一文件标识在本地的多个文件缓存数据中确定第一文件缓存数据;其中,第一文件缓存数据中包括文件状态标识和第一文件标识。将第一文件缓存数据中的文件状态标识设置为删除标识;当接收到第一客户端发送的包含第一文件标识的文件操作请求时,根据第一文件缓存数据中的删除标识,驳回文件操作请求并向第一客户端返回第一通知消息,第一通知消息用于提示第一文件失效。本实施例可以当文件被删除时,在相应的文件缓存数据中设置删除标识,并可以接收到客户端对文件的写请求时,根据文件缓存数据中的删除标识驳回客户端请求并向客户端返回通知消息,无需执行对文件的写操作,避免写入数据的丢失。

基于图1,本实施例提出第二种分布式存储系统的请求处理方法。在该方法中,步骤S101可以包括:

向中间缓存模块发送事件注册指令,以使中间缓存模块注册删除回调事件;

接收中间缓存模块当删除回调事件触发时发送的第一文件标识;其中,删除回调事件为当中间缓存模块接收到元数据服务器发送的第一文件标识时触发,第一文件标识为元数据服务器确定第一文件为已删除文件后发送至中间缓存模块。

具体的,中间缓存模块可以在删除回调事件触发时,向服务端发送第一文件标识,以使服务端根据第一文件标识确定第一文件缓存数据并在第一文件缓存数据中设置删除标识。

本实施例提出的分布式存储系统的请求处理方法,可以通过注册删除回调事件,实现中间缓存模块向服务端发送第一文件标识并触发服务端进行进一步处理。

基于图1,本实施例提出第三种分布式存储系统的请求处理方法,该方法还可以包括:

当接收到第二客户端发送的包含第二文件标识的文件处理请求时,从文件处理请求中获取第二文件标识,第二文件标识用于标识第二文件;

在确定本地的多个文件缓存数据中未存在与第二文件标识对应的文件缓存数据的情况下,向中间缓存模块发送包含第二文件标识的查询指令,以使中间缓存模块在多个文件缓存数据中查找是否存在与第二文件标识对应的第二文件缓存数据;

当接收到中间缓存模块返回的第一消息时,确定第二文件为已删除文件,驳回文件处理请求并向第二客户端返回第二通知消息,第一消息和第二通知消息均用于提示第二文件失效;其中,第一消息为中间缓存模块在未查找到第二文件缓存数据时发送的,或者为中间缓存模块在查找到第二文件缓存数据并确定第二文件缓存数据中的文件状态标识为删除标识时发送的,第二文件缓存数据中的删除标识为中间缓存模块在接收到元数据服务器发送的第二文件标识后在第二文件缓存数据中设置的,第二文件标识为元数据服务器当确定第二文件为已删除文件时发送至中间缓存模块;

当接收到中间缓存模块返回的第二消息时,确定第二文件非已删除文件;其中,第二消息用于提示第二文件为有效文件,第二消息为中间缓存模块在查找到第二文件缓存数据并确定第二文件缓存数据中的文件状态标识非删除标识时发送的。

具体的,第二客户端可以为与第一客户端不同的客户端。比如,当第一客户端为第一NFS客户端时,第二客户端可以为第二NFS客户端。

其中,文件处理请求与上述文件操作请求相同,同样用于请求对文件执行相关操作,比如写操作或复制操作。

具体的,服务端可以在接收到第二客户端的文件处理请求时,从文件处理请求中获取第二文件标识,并可以根据第二文件标识在本地的多个文件缓存数据中查找是否存在相应的第二文件缓存数据。

其中,服务端如果查找到第二文件缓存数据,则可以获取第二文件缓存数据中的文件状态标识。当该文件状态标识为删除标识时,驳回该文件处理请求并向第二客户端发送通知消息,告知第二客户端第二文件不存在的异常。当该文件状态标识非删除标识时,即正常根据文件处理请求执行相应的文件操作。

其中,服务端如果没有查找到第二文件缓存数据,则可以向中间缓存模块发送查询指令。

具体的,中间缓存模块可以在接收到查询指令后,从查询指令中获取第二文件标识,并根据第二文件标识在自身缓存的多个文件缓存数据中查找是否存在第二文件缓存数据。

其中,中间缓存模块如果查找到第二文件缓存数据,则可以获取第二文件缓存数据中的文件状态标识,当该文件状态标识为删除标识时,中间缓存模块向服务端返回上述第一消息,使得服务端驳回文件处理请求并向第二客户端返回第二通知消息。当该文件状态标识非删除标识时,中间缓存模块可以向服务端返回第二消息,使得服务端可以确定第二文件没有被删除。

其中,中间缓存模块如果没有查找到第二文件缓存数据,可以直接向服务端返回上述第一消息,使得服务端驳回文件处理请求并向第二客户端返回第二通知消息。

可选的,上述第二文件缓存数据中包括文件数据;在上述确定第二文件非已删除文件之后,上述方法还包括:

向中间缓存模块发送与文件处理请求对应的文件操作指令,以使中间缓存模块对第二文件缓存数据中的文件数据执行相应操作。

可选的,在上述从文件处理请求中获取第二文件标识之后,方法还包括:

在确定本地的多个文件缓存数据中存在与第二文件标识对应的第三文件缓存数据的情况下,获取第三文件缓存数据中的文件状态标识;第三文件缓存数据中包括文件状态标识和文件数据;

当第三文件缓存数据中的文件状态标识非删除标识时,根据文件处理请求对第三文件缓存数据中的文件数据执行相应操作。

具体的,服务端可以在确定第二文件没有被删除时,正常根据文件处理请求执行相应的文件操作,有效保障正常文件操作的执行,从而保障业务的正常进行。

如图2所示,本实施例提供一种mds的处理流程图,以更好的对mds的处理流程进行说明。

参照图2,当fuse客户端删除一个文件时,mds会第一时间感知更新。Mds还会检查拥有该文件操作权限的中间缓存模块即拥有该文件cap的lib客户端,并通知该各个拥有该文件cap的lib客户端此文件已被删除。而没有访问过该文件的lib客户端,mds可不进行处理即不进行通知。

如图3所示,本实施例提供一种中间缓存模块的处理流程图,以更好的对中间缓存模块的处理流程进行说明。

参照图3,中间缓存模块即lib模块可以当收到mds消息后,更新本地缓存信息,同时调用ganesha即服务端注册的删除回调函数通知ganesha模块。

具体的,lib模块可以在接收到mds对某个文件的文件删除通知时,根据其携带的文件标识查找相应的文件缓存数据,对该文件访问计数进行减计数操作并做缓存删除标记,即在文件缓存数据中设置删除标识,以便下次客户端访问时可以根据删除标识直接返回该文件不存在的异常信息。之后,lib模块可以调用ganesha注册的删除回调函数,使ganesha执行后续处理。而当ganesha调用lookup接口查询该文件时,lib模块可以在相应的文件缓存数据中查询到删除标识,并直接返回文件不存在。

如图4所示,本实施例提供一种mds、中间缓存模块以及服务端执行的处理流程图,以更好的对本实施例请求处理方法进行说明。

参照图4,fuse客户端、mds和lib模块执行的流程可以参照图2和图3的相关说明。其中,mds可以在fuse客户端删除文件时,第一时间感知到该文件被删除,并通知所有client lib即lib模块。lib模块可以标记lib缓存,即在自身缓存中确定相应的文件缓存数据并设置删除标记,还可以触发ganesha注册的删除回调函数触发,通过ganesha回调函数,查缓存将其置为失效,即在ganesha中查询到相应的文件缓存数据并在文件缓存数据中设置删除标识。

参照图4,对于ganesha,ganesha可以在启动后,向lib模块注册删除回调函数。ganesha可以在接收到客户端操作字请求即文件操作请求时,从文件操作请求中获取文件标识,根据文件标识判断是否有缓存,即在本地的多个文件缓存数据中查找是否存在相应的文件缓存数据,如果是即如果查找到,则再判断缓存是否失效即确定文件缓存数据中文件状态标识是否为删除标识。如果是删除标识,则可以确定文件不存在,驳回客户端的文件操作请求并向客户端返回文件不存在的异常消息,请求处理结束。如果否即如果非删除标识,则可以正常执行文件处理。

其中,如果ganesha没有在本地的多个文件缓存数据中查找到相应的文件缓存数据,可以调用lookup接口向lib模块发送查询指令。

具体的,lib模块可以在接收到查询指令时,在自身的多个文件缓存数据中查找是否存在相应的文件缓存数据,如果查找到相应的文件缓存数据且该文件缓存数据中的文件状态标识非删除标识,可以向ganesha返回正常消息即lookup返回正常以使ganesha正常执行文件操作。如果没有查找到相应的文件缓存数据,或者查找到的文件缓存数据中包含删除标识,则可以向ganesha返回文件不存在的异常消息即lookup返回文件不存在,使得ganesha执行文件不存在的相应处理逻辑。

还需要说明的是,本实施例从存储底层软件层面出发,保证客户端删除文件后实时同步各客户端信息,使其他客户端无法再访问该文件。通过mds、lib模块以及ganesha删除回调通知机制,使文件删除在多协议多客户端下及时感知同步,避免在删除文件后仍然可以对文件执行操作而出现数据丢失错乱的问题,解决多协议多客户端场景下的数据同步问题。

在本实施例中还提供了一种分布式存储系统的请求处理设备,该设备用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

如图5所示,本实施例提出一种分布式存储系统的请求处理设备,该设备包括:

第一接收模块501,用于在元数据服务器确定第一文件为已删除文件后,接收元数据服务器通过中间缓存模块发送的第一文件标识;其中,第一文件标识用于标识第一文件;

第一确定模块502,用于根据第一文件标识在本地的多个文件缓存数据中确定第一文件缓存数据;其中,第一文件缓存数据中包括文件状态标识和第一文件标识;

第一设置模块503,用于将第一文件缓存数据中的文件状态标识设置为删除标识;

第一驳回模块504,用于当接收到第一客户端发送的包含第一文件标识的文件操作请求时,根据第一文件缓存数据中的删除标识,驳回文件操作请求;

第一返回模块505,用于向第一客户端返回第一通知消息,第一通知消息用于提示第一文件失效。

可选的,第一驳回模块504还用于当接收到文件操作请求时,获取文件操作请求中的第一文件标识;

可选的,第一驳回模块504还用于根据已获取的第一文件标识确定第一文件缓存数据,并获取第一文件缓存数据中的文件状态标识;

可选的,第一驳回模块504还用于在确定文件状态标识为删除标识的情况下,确定第一文件为已删除文件,驳回文件操作请求。

可选的,第一接收模块501还用于向中间缓存模块发送事件注册指令,以使中间缓存模块注册删除回调事件;

可选的,第一接收模块501还用于接收中间缓存模块当删除回调事件触发时发送的第一文件标识;其中,删除回调事件为当中间缓存模块接收到元数据服务器发送的第一文件标识时触发,第一文件标识为元数据服务器确定第一文件为已删除文件后发送至中间缓存模块。

可选的,上述装置还包括:

第一获取模块,用于当接收到第二客户端发送的包含第二文件标识的文件处理请求时,从文件处理请求中获取第二文件标识,第二文件标识用于标识第二文件;

第一发送模块,用于在确定本地的多个文件缓存数据中未存在与第二文件标识对应的文件缓存数据的情况下,向中间缓存模块发送包含第二文件标识的查询指令,以使中间缓存模块在多个文件缓存数据中查找是否存在与第二文件标识对应的第二文件缓存数据;

第二确定模块,用于当接收到中间缓存模块返回的第一消息时,确定第二文件为已删除文件;

第二驳回模块,用于驳回文件处理请求;

第二返回模块,用于向第二客户端返回第二通知消息。其中,第一消息和第二通知消息均用于提示第二文件失效;第一消息为中间缓存模块在未查找到第二文件缓存数据时发送的,或者为中间缓存模块在查找到第二文件缓存数据并确定第二文件缓存数据中的文件状态标识为删除标识时发送的,第二文件缓存数据中的删除标识为中间缓存模块在接收到元数据服务器发送的第二文件标识后在第二文件缓存数据中设置的,第二文件标识为元数据服务器当确定第二文件为已删除文件时发送至中间缓存模块;

第三确定模块,用于当接收到中间缓存模块返回的第二消息时,确定第二文件非已删除文件;其中,第二消息用于提示第二文件为有效文件,第二消息为中间缓存模块在查找到第二文件缓存数据并确定第二文件缓存数据中的文件状态标识非删除标识时发送的。

可选的,第二文件缓存数据中包括文件数据;上述装置还包括:

第二发送模块,用于在确定第二文件非已删除文件之后,向中间缓存模块发送与文件处理请求对应的文件操作指令,以使中间缓存模块对第二文件缓存数据中的文件数据执行相应操作。

可选的,上述装置还包括:

第二获取模块,用于在确定本地的多个文件缓存数据中存在与第二文件标识对应的第三文件缓存数据的情况下,获取第三文件缓存数据中的文件状态标识;第三文件缓存数据中包括文件状态标识和文件数据;

第一执行模块,用于当第三文件缓存数据中的文件状态标识非删除标识时,根据文件处理请求对第三文件缓存数据中的文件数据执行相应操作。

上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。

本实施例提出的分布式存储系统的请求处理设备,可以当文件被删除时,在相应的文件缓存数据中设置删除标识,并可以接收到客户端对文件的写请求时,根据文件缓存数据中的删除标识驳回客户端请求并向客户端返回通知消息,无需执行对文件的写操作,避免写入数据的丢失。

如图6所示,本实施例还提出一种分布式存储系统的请求处理装置,装置包括元数据服务器601、中间缓存模块602和服务端603,其中:

元数据服务器601,用于在确定第一文件为已删除文件后,通过中间缓存模块602向服务端603发送第一文件标识;其中,第一文件标识用于标识第一文件;

服务端603,用于根据第一文件标识在本地的多个文件缓存数据中确定第一文件缓存数据;其中,第一文件缓存数据中包括文件状态标识和第一文件标识;将第一文件缓存数据中的文件状态标识设置为删除标识;当接收到第一客户端发送的包含第一文件标识的文件操作请求时,根据第一文件缓存数据中的删除标识,驳回文件操作请求并向第一客户端返回第一通知消息,第一通知消息用于提示第一文件失效。

上述元数据服务器601、中间缓存模块602以及服务端603的更进一步的功能描述与上述对应实施例相同,在此不再赘述。

本实施例提出的分布式存储系统的请求处理装置,可以当文件被删除时,在相应的文件缓存数据中设置删除标识,并可以接收到客户端对文件的写请求时,根据文件缓存数据中的删除标识驳回客户端请求并向客户端返回通知消息,无需执行对文件的写操作,避免写入数据的丢失。

本实施例中的分布式存储系统的请求处理装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。

本发明实施例还提供一种计算机设备,具有上述图5或图6所示的分布式存储系统的请求处理设备或装置。

请参阅图7,图7是本发明可选实施例提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务端阵列、一组刀片式服务端、或者多处理器系统)。图7中以一个处理器10为例。

处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。

其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。

存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。

该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。

本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。

虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

相关技术
  • 一种甲醇和气体燃料供能的发动机及其控制方法
  • 用于控制到内燃机的冷却气流的装置、以及利用该装置的发动机及方法
  • 一种发动机冷却系统的控制方法、控制装置及发动机
  • 一种发动机防熄火控制方法和控制装置
  • 一种发动机的燃气计量装置及计量控制方法
  • 一种气体燃料内燃发动机控制装置及方法
  • 一种气体燃料内燃发动机控制装置及方法
技术分类

06120116555905