CN103067496A - 客户端缓存机制管理方法和服务器 - Google Patents
客户端缓存机制管理方法和服务器 Download PDFInfo
- Publication number
- CN103067496A CN103067496A CN2012105763109A CN201210576310A CN103067496A CN 103067496 A CN103067496 A CN 103067496A CN 2012105763109 A CN2012105763109 A CN 2012105763109A CN 201210576310 A CN201210576310 A CN 201210576310A CN 103067496 A CN103067496 A CN 103067496A
- Authority
- CN
- China
- Prior art keywords
- client
- file
- control unit
- situation
- additional storage
- 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)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供客户端缓存机制管理方法和服务器,包括:接收第一客户端的第一打开请求;查找全局打开表,确定第一客户端是否支持客户端缓存机制;确定第一客户端被第二客户端打开时,确定第二客户端是否支持客户端缓存机制;第二客户端与第一客户端均支持客户端缓存机制时,确定第一客户端没有对第一文件的操作权限;根据该全局打开表,向第二网络附加存储NAS服务器发送通知消息;更新第一文件;在接收到通知反馈的情况下,清除全局打开表中的第二NAS服务器的协议层数据,将第一NAS服务器的协议层数据加入全局打开表;确定第一客户端具有对第一文件的操作权限且使用缓存操作。本发明实施例能避免多个客户端同时操作同一文件造成文件损坏。
Description
技术领域
本发明实施例涉及信息技术领域,并且更具体地,涉及客户端缓存机制管理方法和服务器。
背景技术
在客户端支持客户端缓存机制的情况下,客户端可以缓存服务器的数据,而不必在每次访问数据的时候都向服务器发送报文。这种机制节约了网络资源,提高了客户端的访问效率,提升了服务器的性能。
但是,由于不同的支持客户端缓存机制的客户端支持的协议不同的情况下,如果多个支持不同协议的客户端同时工作在同一个服务器上时,支持不同协议的客户端会可能同时缓存并修改文件系统的同一个数据。此时客户端不知道有其他的客户端正在缓存并修改该数据。因此,在支持不同协议的客户端同时修改相同的文件,并将修改后的文件写入服务器时,该文件系统的数据就会变得混乱。
发明内容
本发明提供客户端缓存机制管理方法和服务器。根据本发明的方法,解决了多个客户端同时操作同一文件造成的文件的损坏的问题。
第一方面,本发明提供一种客户端缓存机制管理方法,包括:
接收第一客户端发送的第一打开请求,该第一打开请求用于请求打开第一文件,该第一客户端支持第一协议;
查找全局打开表,用于确定该第一文件是否被第二客户端打开,确定该第一客户端是否支持客户端缓存机制,其中该第二客户端支持第二协议;
在确定该第一文件被该第二客户端打开的情况下,
确定该第二客户端是否支持客户端缓存机制;
在该第二客户端与该第一客户端均支持客户端缓存机制的情况下,确定该第一客户端没有对该第一文件进行操作的权限;
根据该全局打开表,向第二网络附加存储服务器发送通知消息,该通知消息用于指示更改缓存的级别;
更新该第一文件;
在接收到该第二网络附加存储服务器发送的通知反馈的情况下,清除该全局打开表中该第二网络附加存储服务器确定的协议层数据,将第一网络附加存储服务器确定的协议层数据加入该全局打开表,该第一网络附加存储服务器支持该第一协议;
确定该第一客户端具有对该第一文件进行操作的权限,以便该第一客户端打开该第一文件并对该第一文件进行操作,并确定该第一客户端使用缓存对该第一文件进行操作。
结合第一方面,在第一种可能的实现方式中,在支持客户端缓存机制的第二客户端打开该第一文件且该第一客户端不支持客户端缓存机制的情况下,该方法还包括:
确定该第一客户端没有对该第一文件进行操作的权限;
根据该全局打开表,向第二网络附加存储服务器发送通知消息,该通知消息用于指示更改缓存的级别;
更新该第一文件;
在接收到该第二网络附加存储服务器发送的通知反馈,清除该全局打开表中该第二网络附加存储服务器确定的协议层数据;
确定该第一客户端具有对该第一文件进行操作的权限,以便该第一客户端打开该第一文件并对该第一文件进行操作。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,根据该全局打开表,向第二网络附加存储服务器发送通知消息,包括:
在该全局打开表中包括回调数据的情况下,根据该回调数据向该第二网络附加存储服务器发送该通知消息;
在该全局打开表中包括反向通知数据的情况下,查找反向通知函数表,确定对应于第二客户端支持的第二协议的反向通知函数,根据该反向通知数据和该反向通知函数,向该第二网络附加存储服务器发送该通知消息。
结合第一方面,在第三种可能的实现方式中,在不支持客户端缓存机制的第二客户端打开该第一文件且该第一客户端支持客户端缓存机制的情况下,该方法还包括:
确定该第一客户端具有对该第一文件进行操作的权限,以便该第一客户端打开该第一文件并对该第一文件进行操作。
结合第一方面,在第四种可能的实现方式中,在确定该第一文件未被该第二客户端打开,且该第一客户端支持客户端缓存机制的情况下,该方法还包括:
将该第一网络附加存储服务器确定的协议层数据加入该全局打开表,其中该第一网络附加存储服务器支持该第一协议;
确定该第一客户端具有对该第一文件进行操作的权限,以便该第一客户端打开该第一文件并对该第一文件进行操作,并确定该第一客户端使用缓存对该第一文件进行操作。
结合第一方面,在第五种可能的实现方式中,在确定该第一文件未被该第二客户端打开,且该第一客户端不支持客户端缓存机制的情况下,该方法还包括:
将该第一网络附加存储服务器确定的协议层数据加入该全局打开表并且将该协议层数据的缓存标识字段设置为否定,该第一网络附加存储服务器支持该第一协议;
确定该第一客户端具有对该第一文件进行操作的权限,以便该第一客户端打开该第一文件并对该第一文件进行操作。
第二方面,本发明提供一种服务器,包括:
接收单元,用于接收第一客户端发送的第一打开请求,该第一打开请求用于请求打开第一文件,该第一客户端支持第一协议;
控制单元,用于查找全局打开表,以便确定第一文件是否被第二客户端打开,其中该第二客户端支持第二协议;
控制单元,还用于确定第一客户端是否支持客户端缓存机制;
在控制单元确定该第一文件被该第二客户端打开的情况下,
控制单元,还用于确定该第二客户端是否支持客户端缓存机制;
在控制单元确定该第二客户端与该第一客户端均支持客户端缓存机制的情况下,
控制单元,还用于确定该第一客户端没有对该第一文件进行操作的权限;
控制单元,还用于根据该全局打开表,确定通知消息;
发送单元,用于向第二网络附加存储服务器发送通知消息,该通知消息用于指示更改缓存级别;
控制单元,还用于更新该第一文件;
接收单元,还用于接收该第二网络附加存储服务器发送的通知反馈;
控制单元,还用于清除该全局打开表中该第二网络附加存储服务器确定的协议层数据;
控制单元,还用于将第一网络附加存储服务器确定的协议层数据加入该全局打开表;
控制单元,还用于确定该第一客户端具有对该第一文件进行操作的权限,以便该第一客户端打开该第一文件并对该第一文件进行操作;
控制单元,还用于确定该第一客户端使用缓存对该第一文件进行操作。
结合第二方面,在第一种可能的实现方式中,在控制单元确定支持客户端缓存机制的第二客户端打开该第一文件,且控制单元确定该第一客户端不支持客户端缓存机制的情况下,
控制单元,还用于确定该第一客户端没有对该第一文件进行操作的权限;
控制单元,还用于根据该全局打开表,确定通知消息;
发送单元,用于向第二网络附加存储服务器发送通知消息,该通知消息用于指示更改缓存级别;
控制单元,还用于更新该第一文件;
接收单元,还用于接收该第二网络附加存储服务器发送的通知反馈;
控制单元,还用于清除该全局打开表中该第二网络附加存储服务器确定的协议层数据;
控制单元,还用于确定该第一客户端具有对该第一文件进行操作的权限,以便该第一客户端打开该第一文件并对该第一文件进行操作。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,
控制单元,具体用于在该全局打开表中包括回调数据的情况下,根据该回调数据确定该通知消息;或者
控制单元,具体用于在该全局打开表中包括反向通知数据的情况下,查找反向通知函数表,确定对应于第二客户端支持的第二协议的反向通知函数,根据该反向通知数据和该反向通知函数,确定该通知消息。
结合第二方面,在第三种可能的实现方式中,在控制单元确定不支持客户端缓存机制的第二客户端打开该第一文件且控制单元确定该第一客户端支持客户端缓存机制的情况下,
控制单元,还用于确定该第一客户端具有对该第一文件进行操作的权限,以便该第一客户端打开该第一文件并对该第一文件进行操作。
结合第二方面,在第四种可能的实现方式中,在控制单元确定该第一文件未被该第二客户端打开,且控制单元确定该第一客户端支持客户端缓存机制的情况下,
控制单元,还用于将该第一网络附加存储服务器确定的协议层数据加入该全局打开表;
控制单元,还用于确定该第一客户端具有对该第一文件进行操作的权限,以便该第一客户端打开该第一文件并对该第一文件进行操作;
控制单元,还用于确定该第一客户端使用缓存对该第一文件进行操作。
结合第二方面,在第五种可能的实现方式中,在控制单元确定该第一文件未被该第二客户端打开,且控制单元确定该第一客户端不支持客户端缓存机制的情况下,
控制单元,还用于将该第一网络附加存储服务器确定的协议层数据加入该全局打开表;
控制单元,还用于将该协议层数据的缓存标识字段置为否定;
控制单元,还用于确定该第一客户端具有对该第一文件进行操作的权限,以便该第一客户端打开该第一文件并对该第一文件进行操作。
根据本发明实施例,由于在支持不同协议的客户端访问同一文件时,服务器能够阻止不同的客户端同时打开并操作同一文件,实现了在支持不同协议的客户端对同一文件进行操作的情况下,该文件的一致性,避免了多个客户端同时操作同一文件造成的文件的损坏。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的客户端缓存机制管理方法的示意性流程图。
图2a是本发明提供的客户端缓存机制管理方法的示意性流程图。
图2b是本发明提供的客户端缓存机制管理方法的示意性流程图。
图2c是本发明提供的客户端缓存机制管理方法的示意性流程图。
图2d是本发明提供的客户端缓存机制管理方法的示意性流程图。
图2e是本发明提供的客户端缓存机制管理方法的示意性流程图。
图3是本发明实施例提供的服务器的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图1是本发明提供的客户端缓存机制管理方法的示意性流程图,图1的方法由数据服务器执行,包括:
101,接收第一客户端发送的第一打开请求,第一打开请求用于请求打开第一文件,第一客户端支持第一协议。
102,查找全局打开表,用于确定第一文件是否被第二客户端打开。
103,确定该第一客户端是否支持客户端缓存机制,其中第二客户端支持第二协议。可选的,步骤103可以与步骤102同时执行,也可以在步骤102之前执行。
104,在确定该第一文件被该第二客户端打开的情况下,确定第二客户端是否支持客户端缓存机制。可选的,如果步骤103在步骤102之后执行,则步骤104可以与步骤103同时执行,或者步骤103可以在步骤104之后执行。
105,在第二客户端与第一客户端均支持客户端缓存机制的情况下,确定第一客户端没有对第一文件进行操作的权限。
106,根据该全局打开表,向第二网络附加存储(Network AttachedStorage,NAS)服务器发送通知消息,该通知消息用于指示更改缓存的级别。
107,更新该第一文件。具体地,接收第二客户端发送的进行操作后的第一文件,将进行操作后的第一文件写入数据服务器,替换进行操作前的第一文件。
108,在接收到第二网络附加存储服务器发送的通知反馈的情况下,清除该全局打开表中第二网络附加存储服务器确定的协议层数据。
109,将第一网络附加存储服务器确定的协议层数据加入该全局打开表,,第一网络附加存储服务器支持第一协议。
110,确定第一客户端具有对该第一文件进行操作的权限,以便第一客户端打开第一文件并对该第一文件进行操作,并确定第一客户端使用缓存对该第一文件进行操作。
根据图1的方法,数据服务器实现了在支持不同协议的客户端对同一文件进行操作的情况下,该文件的一致性,避免了多个客户端同时操作同一文件造成的文件的损坏。
图2a,图2b,图2c,图2d,图2e是本发明提供的客户端缓存机制管理方法的示意性流程图,图2的方法由数据服务器执行,包括:
201,接收第一客户端发送的第一打开请求,第一打开请求用于请求打开第一文件,第一客户端支持第一协议。
具体地,第一客户端向支持第一协议的第一网络附加存储服务器发送第一打开请求,第一网络附加存储服务器将第一打开请求转发给数据服务器。
202,查找全局打开表,用于确定第一文件是否被第二客户端打开,其中第二客户端支持第二协议。具体地,在全局打开表中包括对应于第一文件的协议层数据,且该协议层数据中的协议类型为第二协议,则确定第一文件被支持第二协议的第二客户端打开,其中该协议层数据是第二网络附加存储服务器确定的,第二网络附加存储服务器支持第二协议。在全局打开表中不包括对应于第一文件的协议层数据的情况下,确定第一文件未被支持第二协议的第二客户端打开。
203,确定第一客户端是否支持客户端缓存机制。具体地,第一打开请求包括缓存指示字段,用于指示第一客户端是否支持客户端缓存机制。数据服务器可以根据第一打开请求,确定第一客户端是否支持客户端缓存机制。
可选的,如果支持第一协议的第一客户端支持客户端缓存机制,则第一协议可以是SMB(Server Message Block,服务信息块)1、SMB2、NFS(NetworkFile System,网络文件系统)4等。如果支持第一协议的第一客户端不支持客户端缓存机制,则第一协议可以是FTP(File Transfer Protocol,文件传输协议)、HTTP(Hyper Text Transport Protocol,超文本传输协议)等。
需要说明的是,步骤203可以与步骤202同时执行,也可以在步骤202之前执行。
可选的,可以执行步骤204至步骤206,其中,步骤204至步骤206的执行在确定第一文件未被第二客户端打开,且第一客户端支持客户端缓存机制的情况下进行的。
204,获取第一网络附加存储服务器确定的协议层数据。
205,将第一网络附加存储服务器确定的协议层数据加入全局打开表。
206,确定第一客户端具有对第一文件进行操作的权限,以便第一客户端打开第一文件并使用该缓存对第一文件进行操作,并确定第一客户端使用缓存对第一文件进行操作。
可选的,可以执行步骤207至步骤209,其中,步骤207至步骤209的执行在确定第一文件未被第二客户端打开,且第一客户端不支持客户端缓存机制的情况下进行的。
207,获取第一网络附加存储服务器确定的协议层数据。
208,将第一网络附加存储服务器确定的协议层数据加入全局打开表。
209,确定第一客户端具有对第一文件进行操作的权限,以便第一客户端打开第一文件并对第一文件进行操作。
可选的,在确定第一文件被第二客户端打开的情况下,可以执行步骤210。
210,确定第二客户端是否支持客户端缓存机制。具体地,在查找该全局打开表的情况下,如果该全局打开表中对应于第一文件的第二网络附加存储服务器确定的协议层数据中包括缓存标识字段,且该字段的值为否定,则第二客户端不支持客户端缓存机制。如果该全局打开表中对应于第一文件的第二网络附加存储服务器确定的协议层数据中不包括缓存标识字段,或者该全局打开表中对应于第一文件的第二网络附加存储服务器确定的协议层数据中包括缓存标识字段且该缓存标识字段为肯定,则第二客户端支持客户端缓存机制。
可选的,第二客户端支持的客户端缓存机制可以与第一客户端支持的客户端缓存机制不同,第二客户端支持的客户端缓存机制也可以与第一客户端支持的客户端缓存机制相同。
需要说明的是,如果步骤203是在步骤202之后执行,则步骤210可以在步骤203之前执行或者同步骤203同时执行。
可选的,可以执行步骤211至步骤218,其中步骤211至步骤218是在执行了步骤210,确定第二客户端支持客户端缓存机制且第一客户端支持客户端缓存机制的情况下进行的。
211,确定第一客户端没有对第一文件进行操作的权限。
212,根据该全局打开表,向第二网络附加存储服务器发送通知消息。具体地,在全局打开表中包括回调数据的情况下,根据回调数据,确定通知消息,向第二网络附加存储服务器发送该通知消息;在全局打开表中包括反向通知数据的情况下,查找反向通知函数表,确定对应于第二客户端支持的第二协议的反向通知函数,根据反向通知数据和反向通知函数,确定通知消息,向第二网络附加存储服务器发送通知消息。该通知消息用于指示更改缓存级别,其中第二网络附加存储服务器对应于第二客户端,支持第二协议。具体地,第二网络附加存储服务器在接收到该通知消息的情况下,向第二客户端发送更改缓存级别指示,用于指示第二客户端更改缓存级别。第二客户端根据该更改缓存级别指示将缓存级别进行调整,调整后缓存级别可以是没有缓存,和只读缓存。如果是没有缓存,则第二客户端需要每次访问第一文件都向数据服务器请求获取第一文件,而不是从第二客户端本地获取。如果是只读缓存,则第二客户端还可以从本地的缓存中获取第一文件,而不用向数据服务器请求获取第一文件,从而节约了网络通信过程。
213,更新第一文件。具体地,接收第二客户端发送的进行操作后的第一文件,将进行操作后的第一文件写入数据服务器,替换进行操作前的第一文件。
214,接收第二网络附加存储服务器发送的通知反馈,该通知反馈是第二网络附加存储服务器在第二客户端更改缓存级别的情况下发送的。
215,清除该全局打开表中第二网络附加存储服务器确定的协议层数据的内容。
216,获取第一网络附加存储服务器的协议层数据的内容。
217,将第一网络附加存储服务器的协议层数据加入该全局打开表。
218,确定第一客户端具有对第一文件进行操作的权限,以便第一客户端打开第一文件并使用该缓存对第一文件进行操作,并确定第一客户端使用缓存对第一文件进行操作。
可选的,可以执行步骤219至步骤224,其中步骤219至步骤224是在执行了步骤210,确定第二客户端支持客户端缓存机制且第一客户端不支持客户端缓存机制的情况下进行的。
219,确定第一客户端没有对第一文件进行操作的权限。
220,根据该全局打开表,向第二网络附加存储服务器发送通知消息。具体地,在全局打开表中包括回调数据的情况下,根据回调数据,确定通知消息,向第二网络附加存储服务器发送该通知消息;在全局打开表中包括反向通知数据的情况下,查找反向通知函数表,确定对应于第二客户端支持的第二协议的反向通知函数,根据反向通知数据和反向通知函数,确定通知消息,向第二网络附加存储服务器发送该通知消息。该通知消息用于指示更改缓存级别,其中第二网络附加存储服务器对应于第二客户端,支持第二协议。具体地,第二网络附加存储服务器在接收到该通知消息的情况下,向第二客户端发送更改缓存级别指示,用于指示第二客户端更改缓存级别。第二客户端根据该更改缓存级别指示将缓存级别进行调整,调整后缓存级别可以是没有缓存,和只读缓存。如果是没有缓存,则第二客户端需要每次访问第一文件都向数据服务器请求获取第一文件,而不是从第二客户端本地获取。如果是只读缓存,则第二客户端还可以从本地的缓存中获取第一文件,而不用向数据服务器请求获取第一文件,从而节约了网络通信过程。
221,更新第一文件。具体地,接收第二客户端发送的进行操作后的第一文件,将进行操作后的第一文件写入数据服务器,替换进行操作前的第一文件。
222,接收第二网络附加存储服务器发送的通知反馈,该通知反馈是第二网络附加存储服务器在第二客户端更改缓存级别的情况下发送的。
223,清除该全局打开表中第二网络附加存储服务器的协议层数据的内容。
224,确定第一客户端具有对第一文件进行操作的权限,以便第一客户端打开第一文件并对第一文件进行操作。
可选的,可以执行步骤225,其中步骤225是在执行了步骤210,确定第二客户端不支持客户端缓存机制且第一客户端支持客户端缓存机制的情况下进行的。
225,确定第一客户端具有对第一文件进行操作的权限,以便第一客户端打开第一文件并对第一文件进行操作。
根据图2的方法,数据服务器实现了在支持不同协议的客户端对同一文件进行操作的情况下,该文件的一致性,避免了多个客户端同时操作同一文件造成的文件的损坏。
可选的,数据服务器包括全局打开表包括数据服务器中文件的标识(ID)和协议层数据。可选的,全局打开表可以使用多种分布式哈希算法,使全局打开表均匀分布在各个元数据服务器上。该协议层数据包括该协议层数据的协议类型和以下数据中的一种或者多种:回调数据、反向通知数据和通知数据,其中该回调数据包括需要通知给客户端的数据,例如,可以是网络附加存储服务器的IP(Internet Protocol,网际协议)信息,接口(port)信息,访问掩码(access mask)信息,预留字段等,其中访问掩码保存的是最新客户端访问文件需要的读写权限,它需要文件系统传递给上层协议,以便上层协议决定客户端的缓存级别。可选的,在客户端不支持客户端缓存机制的情况下,该协议层数据还包括缓存标识字段,且该字段为否定(false)。同时,数据服务器还包括反向通知函数表。可选的,在客户但支持客户端缓存机制的情况下,该协议层数据可以不包括缓存标识字段,或者,该协议层数据可以包括缓存标识字段且该字段为肯定(true)。该反向通知函数表包括协议类型和反向通知函数。
可选的,作为一个实施例,如果第一文件未被打开,第一客户端请求打开第一文件,则数据服务器在接收到用于请求打开第一文件的第一打开请求的情况下,获取第一网络附加存储服务器确定的协议层数据,将该协议层数据加入全局打开表,其中第一客户端和第一网络附加存储服务器支持第一协议,且第一客户端支持客户端缓存机制。此时,该全局打开表中,第一文件的协议类型为对应于该协议层数据的第一协议,回调数据(反向通知数据、通知数据)为对应于该协议层数据的回调数据(反向通知数据、通知数据)。确定第一客户端具有对第一文件进行操作的权限,以便第一客户端打开第一文件并使用该缓存对第一文件进行操作,并确定第一客户端使用缓存操作第一文件。
如果此时支持第二协议的第二客户端请求打开第一文件,则该数据服务器查找全局打开表中对应于第一文件的协议层数据。在该协议层数据为回调数据的情况下,根据该回调数据,确定通知消息。在该协议层数据为反向通知数据的情况下,根据全局打开表中对应与第一文件的协议类型,从反向通知函数表中确定对应于该协议类型的反向通知函数。根据该反向通知函数和该反向通知数据,确定通知消息。该数据服务器向第一网络附加存储服务器发送通知消息,第一网络附加存储服务器在接收到该通知消息的情况下,向第一客户端发送更改缓存级别指示,用于指示第一客户端更改缓存级别。第一客户端根据该更改缓存级别指示将缓存级别进行调整,调整后缓存级别可以是没有缓存,和只读缓存。如果是没有缓存,则第一客户端需要每次访问第一文件都向数据服务器请求获取第一文件,而不是从第一客户端本地获取。如果是只读缓存,则第一客户端还可以从本地的缓存中获取第一文件,而不用向数据服务器请求获取第一文件。该数据服务器更新第一文件。具体地,该数据服务器接收第一客户端发送的经过操作的第一文件,使用经过操作的第一文件替换未经过操作的第一文件。在第一客户端更改缓存级别的情况下,第一网络附加存储服务器向数据服务器发送通知反馈。数据服务器在接收到该通知反馈的情况下,清除该全局打开表中第一文件的第一网络附加存储服务器确定的协议层数据。如果第二客户端支持客户端缓存机制,则数据服务器将第二网络附加存储服务器确定的协议层数据加入该全局打开表,确定第二客户端具有对第一文件进行操作的权限,以便第二客户端打开第一文件并使用该缓存对第一文件进行操作,并确定第二客户端使用缓存对第一文件进行操作。如果第二客户端不支持客户端缓存机制,则该数据服务器确定第二客户端具有对第一文件进行操作的权限,以便第二客户端打开第一文件并对第一文件进行操作
可选的,作为一个实施例,如果第一文件未被打开,不支持客户端缓存机制的第一客户端请求打开第一文件,则该数据服务器将第一网络附加存储服务器的协议层数据加入全局打开表时,对应于第一文件的协议层数据包括协议层数据的协议层类型、回调数据和缓存标识字段,且该缓存标识字段为否定(false),其中,第一客户端和第一网络附加存储服务器支持第一协议。确定第一客户端具有操作第一文件的权限,以便第一客户端打开第一文件并对第一文件进行操作。
如果此时支持客户端缓存和第二协议的第二客户端请求打开第一文件,则数据服务器查找该全局打开表中对应于第一文件的协议层数据,发现该协议层数据的缓存标识字段为否定,确定第一客户端不支持客户端缓存机制。该数据服务器确定第二客户端具有操作第一文件的权限,以便第二客户端打开第一文件并对第一文件进行操作。
图3是本发明实施例提供的服务器的结构框图,图3所示的服务器300可以执行图1和图2中数据服务器执行的步骤。服务器300包括接收单元301、控制单元302、发送单元303。
接收单元301,用于接收第一客户端发送的第一打开请求,第一打开请求用于请求打开第一文件,第一客户端支持第一协议。
控制单元302,用于查找全局打开表,以便确定第一文件是否被第二客户端打开,其中第二客户端支持第二协议。
控制单元302,还用于确定第一客户端是否支持客户端缓存机制。
在控制单元302确定第一文件被第二客户端打开的情况下,
控制单元302,还用于确定第二客户端是否支持客户端缓存机制。
在控制单元302确定第二客户端与第一客户端均支持客户端缓存机制的情况下,
控制单元302,还用于根据全局打开表,确定通知消息。
控制单元302,还用于确定第一客户端没有对第一文件进行操作的权限。
发送单元303,用于向第二网络附加存储服务器发送通知消息,该通知消息用于指示更改缓存级别,通知消息用于指示更改缓存级别。第二网络附加存储服务器在接收到该通知消息的情况下,向第二客户端发送更改缓存级别指示,用于指示第二客户端更改缓存级别。
控制单元302,还用于更新第一文件。具体的,控制单元302通过接收单元301接收到进行操作后的第一文件,将进行操作后的第一文件写入数据服务器,替换进行操作前的第一文件。
接收单元301,还用于接收第二网络附加存储服务器发送的通知反馈。
控制单元302,还用于清除全局打开表中第二网络附加存储服务器确定的协议层数据。
控制单元302,还用于将第一网络附加存储服务器确定的协议层数据加入全局打开表。
控制单元302,还用于确定第一客户端具有对第一文件进行操作的权限,以便第一客户端打开第一文件并对第一文件进行操作。
控制单元302,还用于确定第一客户端使用缓存对第一文件进行操作。
在控制单元302确定支持客户端缓存机制的第二客户端打开第一文件,且控制单元302确定第一客户端不支持客户端缓存机制的情况下,
控制单元302,还用于根据全局打开表,确定通知消息。
控制单元302,还用于确定第一客户端没有对第一文件进行操作的权限。
发送单元303,用于向第二网络附加存储服务器发送该通知消息,该通知消息用于指示更改缓存级别。第二网络附加存储服务器在接收到该通知消息的情况下,向第二客户端发送更改缓存级别指示,用于指示第二客户端更改缓存级别。
控制单元302,还用于更新第一文件。具体的,控制单元302通过接收单元301接收到进行操作后的第一文件,将进行操作后的第一文件写入数据服务器,替换进行操作前的第一文件。
接收单元301,还用于接收第二网络附加存储服务器发送的通知反馈。
控制单元302,还用于清除全局打开表中第二网络附加存储服务器确定的协议层数据。
控制单元302,还用于确定第一客户端具有对第一文件进行操作的权限,以便第一客户端打开第一文件并对第一文件进行操作。
在控制单元302确定不支持客户端缓存机制的第二客户端打开第一文件且控制单元302确定第一客户端支持客户端缓存机制的情况下,
控制单元302,还用于确定第一客户端具有对第一文件进行操作的权限,以便第一客户端打开第一文件并对第一文件进行操作。
在控制单元302确定第一文件未被第二客户端打开,且控制单元302确定第一客户端支持客户端缓存机制的情况下,
控制单元302,还用于将第一网络附加存储服务器确定的协议层数据加入全局打开表。
控制单元302,还用于确定第一客户端具有对第一文件进行操作的权限,以便第一客户端打开第一文件并对第一文件进行操作。
控制单元302,还用于确定第一客户端使用缓存对第一文件进行操作。
在控制单元302确定第一文件未被第二客户端打开,且控制单元302确定第一客户端不支持客户端缓存机制的情况下,
控制单元302,还用于将第一网络附加存储服务器确定的协议层数据加入全局打开表。
控制单元302,还用于将协议层数据的缓存标识字段置为否定。
控制单元302,还用于确定第一客户端具有对第一文件进行操作的权限,以便第一客户端打开第一文件并对第一文件进行操作。
图3的数据服务器300实现了在支持不同协议的客户端对同一文件进行操作的情况下,该文件的一致性,避免了多个客户端同时操作同一文件造成的文件的损坏。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内,因此本发明的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种客户端缓存机制管理方法,其特征在于,包括:
接收第一客户端发送的第一打开请求,所述第一打开请求用于请求打开第一文件,所述第一客户端支持第一协议;
查找全局打开表,用于确定所述第一文件是否被第二客户端打开,确定所述第一客户端是否支持客户端缓存机制,其中所述第二客户端支持第二协议;
在确定所述第一文件被所述第二客户端打开的情况下,
确定所述第二客户端是否支持客户端缓存机制;
在所述第二客户端与所述第一客户端均支持客户端缓存机制的情况下,确定所述第一客户端没有对所述第一文件进行操作的权限;
根据所述全局打开表,向第二网络附加存储服务器发送通知消息,所述通知消息用于指示更改缓存的级别;
更新所述第一文件;
在接收到所述第二网络附加存储服务器发送的通知反馈的情况下,清除所述全局打开表中所述第二网络附加存储服务器确定的协议层数据,将第一网络附加存储服务器确定的协议层数据加入所述全局打开表,所述第一网络附加存储服务器支持所述第一协议;
确定所述第一客户端具有对所述第一文件进行操作的权限,以便所述第一客户端打开所述第一文件并对所述第一文件进行操作,并确定所述第一客户端使用缓存对所述第一文件进行操作。
2.如权利要求1所述的方法,其特征在于,在支持客户端缓存机制的第二客户端打开所述第一文件且所述第一客户端不支持客户端缓存机制的情况下,所述方法还包括:
确定所述第一客户端没有对所述第一文件进行操作的权限;
根据所述全局打开表,向第二网络附加存储服务器发送通知消息,所述通知消息用于指示更改缓存的级别;
更新所述第一文件;
在接收到所述第二网络附加存储服务器发送的通知反馈,清除所述全局打开表中所述第二网络附加存储服务器确定的协议层数据;
确定所述第一客户端具有对所述第一文件进行操作的权限,以便所述第一客户端打开所述第一文件并对所述第一文件进行操作。
3.如权利要求1或2所述的方法,其特征在于,所述根据所述全局打开表,向第二网络附加存储服务器发送通知消息,包括:
在所述全局打开表中包括回调数据的情况下,根据所述回调数据向所述第二网络附加存储服务器发送所述通知消息;
在所述全局打开表中包括反向通知数据的情况下,查找反向通知函数表,确定对应于第二客户端支持的第二协议的反向通知函数,根据所述反向通知数据和所述反向通知函数,向所述第二网络附加存储服务器发送所述通知消息。
4.如权利要求1所述的方法,其特征在于,在不支持客户端缓存机制的第二客户端打开所述第一文件且所述第一客户端支持客户端缓存机制的情况下,所述方法还包括:
确定所述第一客户端具有对所述第一文件进行操作的权限,以便所述第一客户端打开所述第一文件并对所述第一文件进行操作。
5.如权利要求1所述的方法,其特征在于,在确定所述第一文件未被所述第二客户端打开,且所述第一客户端支持客户端缓存机制的情况下,所述方法还包括:
将所述第一网络附加存储服务器确定的协议层数据加入所述全局打开表,其中所述第一网络附加存储服务器支持所述第一协议;
确定所述第一客户端具有对所述第一文件进行操作的权限,以便所述第一客户端打开所述第一文件并对所述第一文件进行操作,并确定所述第一客户端使用缓存对所述第一文件进行操作。
6.如权利要求1所述的方法,其特征在于,在确定所述第一文件未被所述第二客户端打开,且所述第一客户端不支持客户端缓存机制的情况下,所述方法还包括:
将所述第一网络附加存储服务器确定的协议层数据加入所述全局打开表并且将所述协议层数据的缓存标识字段设置为否定,所述第一网络附加存储服务器支持所述第一协议;
确定所述第一客户端具有对所述第一文件进行操作的权限,以便所述第一客户端打开所述第一文件并对所述第一文件进行操作。
7.一种服务器,其特征在于,包括:
接收单元,用于接收第一客户端发送的第一打开请求,所述第一打开请求用于请求打开第一文件,所述第一客户端支持第一协议;
控制单元,用于查找全局打开表,以便确定第一文件是否被第二客户端打开,其中所述第二客户端支持第二协议;
所述控制单元,还用于确定第一客户端是否支持客户端缓存机制;
在所述控制单元确定所述第一文件被所述第二客户端打开的情况下,
所述控制单元,还用于确定所述第二客户端是否支持客户端缓存机制;
在所述控制单元确定所述第二客户端与所述第一客户端均支持客户端缓存机制的情况下,
所述控制单元,还用于确定所述第一客户端没有对所述第一文件进行操作的权限;
所述控制单元,还用于根据所述全局打开表,确定通知消息;
发送单元,用于向第二网络附加存储服务器发送所述通知消息,所述通知消息用于指示更改缓存级别;
所述控制单元,还用于更新所述第一文件;
所述接收单元,还用于接收所述第二网络附加存储服务器发送的通知反馈;
所述控制单元,还用于清除所述全局打开表中所述第二网络附加存储服务器确定的协议层数据;
所述控制单元,还用于将第一网络附加存储服务器确定的协议层数据加入所述全局打开表;
所述控制单元,还用于确定所述第一客户端具有对所述第一文件进行操作的权限,以便所述第一客户端打开所述第一文件并对所述第一文件进行操作;
所述控制单元,还用于确定所述第一客户端使用缓存对所述第一文件进行操作。
8.如权利要求7所述的服务器,其特征在于,在所述控制单元确定支持客户端缓存机制的第二客户端打开所述第一文件,且所述控制单元确定所述第一客户端不支持客户端缓存机制的情况下,
所述控制单元,还用于确定所述第一客户端没有对所述第一文件进行操作的权限;
所述控制单元,还用于根据所述全局打开表,确定通知消息;
发送单元,用于向第二网络附加存储服务器发送所述通知消息,所述通知消息用于指示更改缓存级别;
所述控制单元,还用于更新所述第一文件;
所述接收单元,还用于接收所述第二网络附加存储服务器发送的通知反馈;
所述控制单元,还用于清除所述全局打开表中所述第二网络附加存储服务器确定的协议层数据;
所述控制单元,还用于确定所述第一客户端具有对所述第一文件进行操作的权限,以便所述第一客户端打开所述第一文件并对所述第一文件进行操作。
9.如权利要求7或8所述的服务器,其特征在于,
所述控制单元,具体用于在所述全局打开表中包括回调数据的情况下,根据所述回调数据确定所述通知消息;或者
所述控制单元,具体用于在所述全局打开表中包括反向通知数据的情况下,查找反向通知函数表,确定对应于第二客户端支持的第二协议的反向通知函数,根据所述反向通知数据和所述反向通知函数,确定所述通知消息。
10.如权利要求7所述的服务器,其特征在于,在所述控制单元确定不支持客户端缓存机制的第二客户端打开所述第一文件且所述控制单元确定所述第一客户端支持客户端缓存机制的情况下,
所述控制单元,还用于确定所述第一客户端具有对所述第一文件进行操作的权限,以便所述第一客户端打开所述第一文件并对所述第一文件进行操作。
11.如权利要求7所述的服务器,其特征在于,在所述控制单元确定所述第一文件未被所述第二客户端打开,且所述控制单元确定所述第一客户端支持客户端缓存机制的情况下,
所述控制单元,还用于将所述第一网络附加存储服务器确定的协议层数据加入所述全局打开表;
所述控制单元,还用于确定所述第一客户端具有对所述第一文件进行操作的权限,以便所述第一客户端打开所述第一文件并对所述第一文件进行操作;
所述控制单元,还用于确定所述第一客户端使用缓存对所述第一文件进行操作。
12.如权利要求7所述的服务器,其特征在于,在所述控制单元确定所述第一文件未被所述第二客户端打开,且所述控制单元确定所述第一客户端不支持客户端缓存机制的情况下,
所述控制单元,还用于将所述第一网络附加存储服务器确定的协议层数据加入所述全局打开表;
所述控制单元,还用于将所述协议层数据的缓存标识字段置为否定;
所述控制单元,还用于确定所述第一客户端具有对所述第一文件进行操作的权限,以便所述第一客户端打开所述第一文件并对所述第一文件进行操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210576310.9A CN103067496B (zh) | 2012-12-26 | 2012-12-26 | 客户端缓存机制管理方法和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210576310.9A CN103067496B (zh) | 2012-12-26 | 2012-12-26 | 客户端缓存机制管理方法和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103067496A true CN103067496A (zh) | 2013-04-24 |
CN103067496B CN103067496B (zh) | 2015-09-30 |
Family
ID=48109950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210576310.9A Active CN103067496B (zh) | 2012-12-26 | 2012-12-26 | 客户端缓存机制管理方法和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103067496B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016065897A1 (zh) * | 2014-10-31 | 2016-05-06 | 华为技术有限公司 | 一种文件锁实现方法及装置 |
CN107193989A (zh) * | 2017-05-31 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种nas集群缓存处理方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050210137A1 (en) * | 2004-03-18 | 2005-09-22 | Hitachi, Ltd. | Method and apparatus for storage network management |
CN101604239A (zh) * | 2009-07-16 | 2009-12-16 | 浪潮电子信息产业股份有限公司 | 一种基于请求响应的存储管理软件架构方法 |
-
2012
- 2012-12-26 CN CN201210576310.9A patent/CN103067496B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050210137A1 (en) * | 2004-03-18 | 2005-09-22 | Hitachi, Ltd. | Method and apparatus for storage network management |
CN101604239A (zh) * | 2009-07-16 | 2009-12-16 | 浪潮电子信息产业股份有限公司 | 一种基于请求响应的存储管理软件架构方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016065897A1 (zh) * | 2014-10-31 | 2016-05-06 | 华为技术有限公司 | 一种文件锁实现方法及装置 |
CN107193989A (zh) * | 2017-05-31 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种nas集群缓存处理方法和系统 |
CN107193989B (zh) * | 2017-05-31 | 2021-05-28 | 郑州云海信息技术有限公司 | 一种nas集群缓存处理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103067496B (zh) | 2015-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102294326B1 (ko) | 연결 해제의 기간을 위한 애플리케이션 데이터의 프리페치 | |
US11226944B2 (en) | Cache management | |
US8447801B1 (en) | Content sharing with limited cloud storage | |
US9864736B2 (en) | Information processing apparatus, control method, and recording medium | |
US9465600B2 (en) | Dynamic retrieval of installation packages when installing software | |
CN104731516A (zh) | 一种存取文件的方法、装置及分布式存储系统 | |
CN102307210A (zh) | 一种数据下载系统及其数据管理和下载方法 | |
US20140359066A1 (en) | System, method and device for offline downloading resource and computer storage medium | |
US8984226B2 (en) | Load balancing based upon data usage | |
CN109213824B (zh) | 数据抓取系统、方法和装置 | |
CN107147748B (zh) | 文件上传方法和装置 | |
CN102567339A (zh) | 一种获取起始页的方法、装置和系统 | |
AU2008355023A1 (en) | Generating sitemaps | |
WO2013143367A1 (en) | Method and system for resource download | |
CN112433921A (zh) | 用于动态埋点的方法及设备 | |
CN102375881A (zh) | 内容签名通知 | |
CN105282094A (zh) | 一种数据采集方法和系统 | |
CN103067496B (zh) | 客户端缓存机制管理方法和服务器 | |
US10402373B1 (en) | Filesystem redirection | |
CN104346101A (zh) | 存储空间动态分配系统及方法 | |
CN103609074A (zh) | 应用特定web请求路由 | |
US20160050292A1 (en) | Local web resource access | |
CN111147595A (zh) | 一种文档下载方法、系统、服务器和客户端 | |
JP2017535847A (ja) | コンテンツ・キャッシングおよび伝送の方法およびシステム | |
CN104679862A (zh) | 一种用于网页的代码处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |