数据的写入方法、系统和装置制造方法

文档序号:7981339阅读:202来源:国知局
数据的写入方法、系统和装置制造方法
【专利摘要】本发明实施例公开了一种数据的写入方法、系统和装置,通过应用本发明实施例的技术方案,客户端在向数据存储服务器的文件中写入数据时,通过携带自身分配到的该文件对应的序列号,以通过抢占式的序列号的方式,来保障只有一个客户端向文件中写入数据,从而保障了数据安全;且与现有的租约管理机制相比,减轻了服务器的负载,提高了系统的性能,并且可以得到更快的响应速度,恢复延时很短。
【专利说明】数据的写入方法、系统和装置
【技术领域】
[0001]本发明涉及通信【技术领域】,特别涉及一种数据的写入方法、系统和装置。
【背景技术】
[0002]在HDFS (Hadoop Distributed File System,开源的分布式文件系统)中,可能出 现多个客户端同时向一个文件中写入数据的情况,为此:现有技术中通过使用租约的方式 避免多个客户端同时向一个文件中写入数据。
[0003]具体的,当需要向文件中写入数据时,客户端请求一个租约,并且在该租约的时间 期限内只允许该客户端向该文件中写入数据,而不允许其他客户端向该文件中写入数据; 在租约过期时,该客户端可以进行续约,以更新租约;当该客户端不需要向该文件中写入数 据时则退回租约,此时另一个客户端能够抢占该文件的租约,从而可以允许其他客户端向 该文件中写入数据。
[0004]在实现本发明实施例的过程中,发明人发现现有技术至少存在以下问题:
现有的租约管理机制中,会频繁的更新租约,对元信息服务器造成巨大压力,元信息服 务器的负载过重,且系统性能比较低;此外,当客户端出现故障之后,需要等待租约过期才 能继续向文件中写入数据,恢复延时很大。

【发明内容】

[0005]本发明实施例提供一种数据的写入方法、系统和装置,解决现有技术的租约管理 机制中,服务器负载过重、系统性能比较低以及恢复延时大等问题。
[0006]为达到上述目的,本发明实施例一方面提供了一种数据的写入方法,所述方法具 体包括:
在客户端需要向文件中写入数据时,所述客户端向位置提供服务器发送用于请求所述 文件位置的第一请求消息;
所述位置提供服务器在接收到所述第一请求消息之后,确定所述文件对应的最近被分 配的第一序列号,并分配所述文件对应的第二序列号,所述第二序列号大于所述第一序列 号或者所述第二序列号小于所述第一序列号;以及,将所述文件的位置信息和所述第二序 列号发送给所述客户端;
所述客户端向数据存储服务器发送用于请求向所述文件中写入数据的第二请求消息, 且所述第二请求消息中携带所述第二序列号;
所述数据存储服务器在接收到所述第二请求消息之后,利用所述第二序列号确定允许 所述客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所 述文件的位置信息向所述文件中写入数据。
[0007]所述数据存储服务器利用所述第二序列号确定允许所述客户端利用所述文件的 位置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息向所述文 件中写入数据,具体包括:所述数据存储服务器获得最近一个向所述文件中写入数据的客户端所分配到的所述 文件对应的第三序列号,并比较所述第二序列号与所述第三序列号之间的大小关系;
在所述第二序列号大于所述第一序列号时,如果所述第二序列号大于等于所述第三序 列号,则所述数据存储服务器允许所述客户端利用所述文件的位置信息向所述文件中写入 数据;如果所述第二序列号小于所述第三序列号,则所述数据存储服务器拒绝所述客户端 利用所述文件的位置信息向所述文件中写入数据;
在所述第二序列号小于所述第一序列号时,如果所述第二序列号小于等于所述第三序 列号,则所述数据存储服务器允许所述客户端利用所述文件的位置信息向所述文件中写入 数据;如果所述第二序列号大于所述第三序列号,则所述数据存储服务器拒绝所述客户端 利用所述文件的位置信息向所述文件中写入数据。
[0008]该方法进一步包括:所述位置提供服务器为每个文件记录最近被分配的序列号; 在接收到所述第一请求消息之后,所述位置提供服务器通过自身记录的信息确定所述
文件对应的最近被分配的第一序列号,并将所述最近被分配的第一序列号递增或递减,得 到所述文件当前被分配的第二序列号;
在将所述第二序列号发送给所述客户端之后,所述位置提供服务器记录所述第二序列 号为所述文件对应的最近被分配的序列号。
[0009]该方法进一步包括:当多个数据存储服务器同时存储所述文件时,所述客户端利 用所述文件的位置信息向其中一个数据存储服务器的所述文件中写入数据,由该数据存储 服务器向其他数据存储服务器的所述文件中写入数据;
当其他数据存储服务器在文件中写入数据成功之后,所述其他数据存储服务器向该数 据存储服务器发送写入成功的响应,并由该数据存储服务器将所述客户端所分配到的所述 文件对应的序列号发送给所述位置提供服务器;
所述位置提供服务器比较接收到的序列号以及自身记录的所述文件对应的最近被分 配的序列号;如果二者相同,则确认所述客户端数据写入成功;如果二者不同,则确认所述 客户端数据写入失败。
[0010]另一方面,本发明实施例还提供了一种数据的写入系统,所述系统具体包括: 客户端,用于在需要向文件中写入数据时,向位置提供服务器发送用于请求所述文件
位置的第一请求消息;以及,
在接收到所述文件的位置信息和第二序列号之后,向数据存储服务器发送用于请求向 所述文件中写入数据的第二请求消息,且所述第二请求消息中携带所述第二序列号;
位置提供服务器,用于在接收到所述第一请求消息之后,确定所述文件对应的最近被 分配的第一序列号,并分配所述文件对应的第二序列号,所述第二序列号大于所述第一序 列号或者所述第二序列号小于所述第一序列号;以及,将所述文件的位置信息和所述第二 序列号发送给所述客户端;
数据存储服务器,用于在接收到所述第二请求消息之后,利用所述第二序列号确定允 许所述客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用 所述文件的位置信息向所述文件中写入数据。
[0011]所述数据存储服务器,具体用于获得最近一个向所述文件中写入数据的客户端所 分配到的所述文件对应的第三序列号,并比较所述第二序列号与所述第三序列号之间的大小关系;
在所述第二序列号大于所述第一序列号时,如果所述第二序列号大于等于所述第三序 列号,则允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二 序列号小于所述第三序列号,则拒绝所述客户端利用所述文件的位置信息向所述文件中写 入数据;
在所述第二序列号小于所述第一序列号时,如果所述第二序列号小于等于所述第三序 列号,则允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二 序列号大于所述第三序列号,则拒绝所述客户端利用所述文件的位置信息向所述文件中写 入数据。
[0012]另一方面,本发明实施例还提供了一种客户端,所述客户端具体包括:
第一发送模块,用于在需要向文件中写入数据时,向位置提供服务器发送用于请求所 述文件位置的第一请求消息;
接收模块,用于在所述位置提供服务器利用所述文件对应的最近被分配的第一序列号 分配所述文件对应的第二序列号之后,接收所述位置提供服务器返回的所述文件的位置信 息和所述第二序列号;
第二发送模块,用于向数据存储服务器发送用于请求向所述文件中写入数据的第二请 求消息,且所述第二请求消息中携带所述第二序列号;
由所述数据存储服务器利用所述第二序列号确定允许所述客户端利用所述文件的位 置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息向所述文件 中写入数据。
[0013]另一方面,本发明实施例还提供了一种位置提供服务器,所述位置提供服务器具 体包括:
接收模块,用于在客户端需要向文件中写入数据时,接收来自所述客户端的用于请求 所述文件位置的第一请求消息;
处理模块,用于在接收到所述第一请求消息之后,确定所述文件对应的最近被分配的 第一序列号,并分配所述文件对应的第二序列号,所述第二序列号大于所述第一序列号或 者所述第二序列号小于所述第一序列号;
发送模块,用于将所述文件的位置信息和所述第二序列号发送给所述客户端,由所述 客户端向数据存储服务器发送用于请求向所述文件中写入数据的携带所述第二序列号的 第二请求消息,并由所述数据存储服务器利用所述第二序列号确定允许所述客户端利用所 述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息 向所述文件中写入数据。
[0014]所述处理模块,进一步用于为每个文件记录最近被分配的序列号;
在接收到所述第一请求消息之后,通过自身记录的信息确定所述文件对应的最近被分 配的第一序列号,并将所述最近被分配的第一序列号递增或递减,得到所述文件当前被分 配的第二序列号;
在将所述第二序列号发送给所述客户端之后,记录所述第二序列号为所述文件对应的 最近被分配的序列号。
[0015]另一方面,本发明实施例还提供了 一种数据存储服务器,所述数据存储服务器具体包括:
接收模块,用于在客户端需要向文件中写入数据时,接收来自所述客户端的用于请求 向所述文件中写入数据的第二请求消息,且所述第二请求消息中携带第二序列号;其中,所 述第二序列号为位置提供服务器在接收到所述客户端的用于请求所述文件位置的第一请 求消息之后,利用所述文件对应的最近被分配的第一序列号所分配的所述文件对应的第二 序列号,所述第二序列号大于所述第一序列号或者所述第二序列号小于所述第一序列号; 处理模块,用于在接收到所述第二请求消息之后,利用所述第二序列号确定允许所述 客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所述文 件的位置信息向所述文件中写入数据。
[0016]所述处理模块,具体用于获得最近一个向所述文件中写入数据的客户端所分配到 的所述文件对应的第三序列号,并比较所述第二序列号与所述第三序列号之间的大小关 系;
在所述第二序列号大于所述第一序列号时,如果所述第二序列号大于等于所述第三序 列号,则允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二 序列号小于所述第三序列号,则拒绝所述客户端利用所述文件的位置信息向所述文件中写 入数据;
在所述第二序列号小于所述第一序列号时,如果所述第二序列号小于等于所述第三序 列号,则允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二 序列号大于所述第三序列号,则拒绝所述客户端利用所述文件的位置信息向所述文件中写 入数据。
[0017]与现有技术相比,本发明实施例具有以下优点:
通过应用本发明实施例的技术方案,客户端在向数据存储服务器的文件中写入数据 时,通过携带自身分配到的该文件对应的序列号,以通过抢占式的序列号的方式,来保障只 有一个客户端向文件中写入数据,从而保障了数据安全;且与现有的租约管理机制相比,减 轻了服务器的负载,提高了系统的性能,并且可以得到更快的响应速度,恢复延时很短。
【专利附图】

【附图说明】
[0018]图1为本发明实施例提出的一种数据的写入方法的流程示意图;
图2为本发明实施例的具体应用场景下所提出的一种数据的写入方法的流程示意图; 图3为本发明实施例提出的一种客户端的结构示意图;
图4为本发明实施例提出的一种位置提供服务器的结构示意图;
图5为本发明实施例提出的一种数据存储服务器的结构示意图。
【具体实施方式】
[0019]在现有的租约管理机制中,由于会频繁的更新租约,且当客户端出现故障之后需 要等待租约过期才能继续向文件中写入数据,因此,会存在元信息服务器的负载过重、系统 的性能比较低、恢复的延时很大等问题。
[0020]为了克服这样的缺陷,本发明实施例提出了一种数据的写入方法、系统和装置,以 通过抢占式的序列号的方式来保障只有一个客户端向文件中写入数据,从而保障了数据安全;且与现有的租约管理机制相比,减轻了服务器的负载,提高了系统的性能,并且可以得 到更快的响应速度,恢复延时很短。
[0021]如图1所示,为本发明实施例提出的一种数据的写入方法的流程示意图,该方法 具体包括以下步骤:
步骤S101、在客户端需要向文件中写入数据时,该客户端向位置提供服务器发送用于 请求该文件位置的第一请求消息。
[0022]步骤S102、位置提供服务器在接收到第一请求消息之后,确定该文件对应的最近 被分配的第一序列号,并分配该文件对应的第二序列号;其中,该第二序列号大于第一序列 号或者该第二序列号小于第一序列号;具体的,根据不同的分配策略,在得到第一序列号之 后,可以分配比第一序列号更大的值为第二序列号;或者,可以分配比第一序列号更小的值 为第二序列号。
[0023]本发明实施例中,在位置提供服务器中需要为每个文件记录其最近被分配的序列 号;在接收到第一请求消息之后,该位置提供服务器通过自身记录的信息可以确定该文件 对应的最近被分配的序列号(为方便描述,以第一序列号为例),并将该最近被分配的第一 序列号进行递增或者递减,以得到该文件当前被分配的序列号(为方便描述,以第二序列号 为例);进一步,该位置提供服务器还需要记录该第二序列号为该文件对应的最近被分配的 序列号。
[0024]例如,位置提供服务器记录文件I最近被分配的序列号为100,在收到客户端I的 针对文件I的第一请求消息后,确定文件I对应的最近被分配的序列号为100,并分配序列 号101,以及记录101为文件I对应的最近被分配的序列号;之后如果收到客户端2的针对 文件I的第一请求消息,确定文件I对应的最近被分配的序列号为101,并分配序列号102, 以及记录102为文件I对应的最近被分配的序列号;或者,在收到客户端I的针对文件I的 第一请求消息后,确定文件I对应的最近被分配的序列号为100,并分配序列号99,以及记 录99为文件I对应的最近被分配的序列号;之后如果收到客户端2的针对文件I的第一请 求消息,确定文件I对应的最近被分配的序列号为99,并分配序列号98,以及记录98为文 件I对应的最近被分配的序列号。
[0025]步骤S103、位置提供服务器将该文件的位置信息和第二序列号(即当前分配的该 文件对应的第二序列号)发送给客户端。
[0026]步骤S104、客户端向数据存储服务器发送用于请求向该文件中写入数据的第二请 求消息,且该第二请求消息中携带第二序列号。
[0027]步骤S105、数据存储服务器在接收到第二请求消息之后,利用第二请求消息中携 带的第二序列号确定允许客户端利用该文件的位置信息向该文件中写入数据或者拒绝客 户端利用该文件的位置信息向该文件中写入数据。
[0028]具体的,本步骤中,数据存储服务器获得最近一个向该文件中写入数据的客户端 所分配到的该文件对应的第三序列号,并比较第二序列号与第三序列号之间的大小关系; 在第二序列号大于第一序列号时,如果第二序列号大于等于第三序列号,则数据存储服务 器允许客户端利用该文件的位置信息向该文件中写入数据;如果第二序列号小于第三序列 号,则数据存储服务器拒绝客户端利用该文件的位置信息向该文件中写入数据;在第二序 列号小于第一序列号时,如果第二序列号小于等于第三序列号,则数据存储服务器允许客户端利用该文件的位置信息向该文件中写入数据;如果第二序列号大于第三序列号,则数 据存储服务器拒绝客户端利用该文件的位置信息向该文件中写入数据。
[0029]本发明实施例中,当有多个数据存储服务器同时存储该文件时,则该客户端还可 以利用文件的位置信息只向其中一个数据存储服务器的文件中写入数据,并由该数据存储 服务器向其他数据存储服务器的文件中写入数据;在此情况下,当其他数据存储服务器在 文件中写入数据成功之后,其他数据存储服务器还需要向该数据存储服务器发送写入成功 的响应信息,并由该数据存储服务器将客户端所分配到的该文件对应的序列号发送给上述 位置提供服务器;之后,该位置提供服务器比较接收到的序列号以及自身记录的该文件对 应的最近被分配的序列号;如果二者相同,则可以确认客户端数据写入成功;如果二者不 同,则可以确认客户端数据写入失败。
[0030]与现有技术相比,本发明实施例具有以下优点:
通过应用本发明实施例的技术方案,客户端在向数据存储服务器的文件中写入数据 时,通过携带自身分配到的该文件对应的序列号,以通过抢占式的序列号的方式,来保障只 有一个客户端向文件中写入数据,从而保障了数据安全;且与现有的租约管理机制相比,减 轻了服务器的负载,提高了系统的性能,并且可以得到更快的响应速度,恢复延时很短。
[0031]下面结合具体的应用场景,对本发明实施例所提出的技术方案进行说明。
[0032]本应用场景下,该数据的写入方法应用在多个客户端可能同时向数据存储服务器 的同一个文件中写入数据的场景,该场景包括但不限于开源的分布式文件系统HDFS,以该 HDFS场景为例进行后续说明,上述位置提供服务器可以为元信息服务器(MetaServer),上 述数据存储服务器可以为节点服务器(NodeServer);且该MetaServer用于提供文件的位 置信息,该NodeServer用于存储相关文件,并允许客户端向各文件中写入数据。
[0033]本发明实施例中,需要在MetaServer中对每个文件记录一个序列号,在客户端需 要向文件中写入数据时,将MetaServer中记录的该文件所对应的序列号递增(或递减),并 将递增(或递减)后的序列号返回给客户端;之后,客户端在向该文件中写数据时需要带上 这个序列号,且NodeServer在客户端需要向该文件中写入数据时,需要校验来自客户端的 序列号,以允许该客户端向该文件中写入数据或者拒绝该客户端向该文件中写入数据。
[0034]例如,如果同时有两个客户端向一个文件中写入数据,客户端A得到了一个序列 号A,客户端B得到了一个序列号B ;在向客户端返回递增的序列号时,如果序列号B大于序 列号A,则客户端B能够向该文件中写入数据,客户端A不能向该文件中写入数据;在向客 户端返回递减的序列号时,如果序列号B大于序列号A,则客户端A能够向该文件中写入数 据,客户端B不能向该文件中写入数据;从而保证只有一个客户端能够向该文件中写入数 据。
[0035]在该应用场景下,如图2所示,该数据的写入方法的流程包括以下步骤:
步骤S201,客户端在需要向文件中写入数据时,向MetaServer发送用于请求该文件位 置的请求消息。
[0036]在HDFS场景下,客户端可以通过向Master(主设备)发送向文件中写入数据的请求 (该请求中可以携带该文件的逻辑路径信息),以得到该Master返回的文件标识(file id); 之后,客户端向MetaServer发送用于请求该文件位置的请求消息,且在该请求消息中携带 该文件标识。[0037]步骤S202,MetaServer利用该文件标识确定该文件的位置信息,并利用该文件对 应的最近被分配的序列号分配该文件对应的当前序列号。
[0038]在一种实施方式中,可以分配比最近被分配的序列号更大的序列号为该文件对应 的当前序列号;在另一种实施方式中,可以分配比最近被分配的序列号更小的序列号为该 文件对应的当前序列号。为了方便说明,后续以分配比最近被分配的序列号更大的序列号 为该文件对应的当前序列号为例。
[0039]步骤S203, MetaServer将该文件的位置信息和当前序列号发送给客户端。
[0040]步骤S204,客户端向NodeServer发送用于请求向该文件中写入数据的请求消息, 且该请求消息中携带该当前序列号。
[0041]步骤S205, NodeServer在收到该请求消息后,利用该当前序列号确定允许客户端 利用该文件的位置信息向该文件中写入数据或者拒绝客户端利用该文件的位置信息向该 文件中写入数据,具体的数据写入过程在此不再赘述。
[0042]具体的,NodeServer获得最近一个向该文件中写入数据的客户端所分配到的该文 件对应的序列号,并比较当前序列号与该获得的序列号之间的大小关系;如果前者大于等 于后者,则允许客户端利用该文件的位置信息向该文件中写入数据;如果前者小于后者,则 拒绝客户端利用该文件的位置信息向该文件中写入数据。
[0043]本发明实施例中,当有多个NodeServer同时存储该文件时,则该客户端可以采 用流水线机制,只向其中的一个NodeServer的文件中写入数据,并由该NodeServer向其 他NodeServer的文件中写入数据;当其他NodeServer在文件中写入数据成功之后,向该 NodeServer发送写入成功的响应信息,并由该NodeServer将客户端所分配到的该文件对 应的序列号、写入数据的大小以及校验和等信息发送给MetaServer ;由MetaServer比较接 收到的序列号以及自身记录的该文件对应的最近被分配的序列号;如果二者相同,则可以 确认客户端数据写入成功;如果二者不同,则可以确认客户端数据写入失败。
[0044]进一步的,如果确认客户端数据写入成功,则该MetaServer还可以向其中一个 NodeServer返回客户端数据写入成功的信息,并由该NodeServer向客户端返回其数据写 入成功的信息,从而完成数据写入过程。
[0045]与现有技术相比,本发明实施例具有以下优点:
通过应用本发明实施例的技术方案,客户端在向NodeServer的文件中写入数据时,通 过携带自身分配到的该文件对应的序列号,以通过抢占式的序列号的方式,来保障只有一 个客户端向文件中写入数据,从而保障了数据安全;且与现有的租约管理机制相比,减轻了 MetaServer的负载,提高了系统的性能,并且可以得到更快的响应速度,恢复延时很短。
[0046]基于与上述方法同样的发明构思,本发明实施例还提供了一种数据的写入系统, 所述系统具体包括:
客户端,用于在需要向文件中写入数据时,向位置提供服务器发送用于请求所述文件 位置的第一请求消息;以及,在接收到所述文件的位置信息和第二序列号之后,向数据存储 服务器发送用于请求向所述文件中写入数据的第二请求消息,且所述第二请求消息中携带 所述第二序列号;
位置提供服务器,用于在接收到所述第一请求消息之后,确定所述文件对应的最近被 分配的第一序列号,并分配所述文件对应的第二序列号,所述第二序列号大于所述第一序列号或者所述第二序列号小于所述第一序列号;以及,将所述文件的位置信息和所述第二 序列号发送给所述客户端;
数据存储服务器,用于在接收到所述第二请求消息之后,利用所述第二序列号确定允 许所述客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用 所述文件的位置信息向所述文件中写入数据。
[0047]进一步的,所述数据存储服务器,具体用于获得最近一个向所述文件中写入数据 的客户端所分配到的所述文件对应的第三序列号,并比较所述第二序列号与所述第三序列 号之间的大小关系;
在所述第二序列号大于所述第一序列号时,如果所述第二序列号大于等于所述第三序 列号,则允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二 序列号小于所述第三序列号,则拒绝所述客户端利用所述文件的位置信息向所述文件中写 入数据;
在所述第二序列号小于所述第一序列号时,如果所述第二序列号小于等于所述第三序 列号,则允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二 序列号大于所述第三序列号,则拒绝所述客户端利用所述文件的位置信息向所述文件中写 入数据。
[0048]与现有技术相比,本发明实施例具有以下优点:
通过应用本发明实施例的技术方案,客户端在向数据存储服务器的文件中写入数据 时,通过携带自身分配到的该文件对应的序列号,以通过抢占式的序列号的方式,来保障只 有一个客户端向文件中写入数据,从而保障了数据安全;且与现有的租约管理机制相比,减 轻了服务器的负载,提高了系统的性能,并且可以得到更快的响应速度,恢复延时很短。
[0049]基于与上述方法同样的发明构思,本发明实施例还提供了一种客户端,具体的结 构示意图如图3所示,所述客户端具体包括:
第一发送模块31,用于在需要向文件中写入数据时,向位置提供服务器发送用于请求 所述文件位置的第一请求消息;
接收模块32,用于在所述位置提供服务器利用所述文件对应的最近被分配的第一序列 号分配所述文件对应的第二序列号之后,接收所述位置提供服务器返回的所述文件的位置 信息和所述第二序列号;
第二发送模块33,用于向数据存储服务器发送用于请求向所述文件中写入数据的第二 请求消息,且所述第二请求消息中携带所述第二序列号;
由所述数据存储服务器利用所述第二序列号确定允许所述客户端利用所述文件的位 置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息向所述文件 中写入数据。
[0050]与现有技术相比,本发明实施例具有以下优点:
通过应用本发明实施例的技术方案,客户端在向数据存储服务器的文件中写入数据 时,通过携带自身分配到的该文件对应的序列号,以通过抢占式的序列号的方式,来保障只 有一个客户端向文件中写入数据,从而保障了数据安全;且与现有的租约管理机制相比,减 轻了服务器的负载,提高了系统的性能,并且可以得到更快的响应速度,恢复延时很短。
[0051]基于与上述方法同样的发明构思,本发明实施例还提供了一种位置提供服务器,具体的结构示意图如图4所示,所述位置提供服务器具体包括:
接收模块41,用于在客户端需要向文件中写入数据时,接收来自所述客户端的用于请 求所述文件位置的第一请求消息;
处理模块42,用于在接收到所述第一请求消息之后,确定所述文件对应的最近被分配 的第一序列号,并分配所述文件对应的第二序列号,所述第二序列号大于所述第一序列号 或者所述第二序列号小于所述第一序列号;
发送模块43,用于将所述文件的位置信息和所述第二序列号发送给所述客户端,由所 述客户端向数据存储服务器发送用于请求向所述文件中写入数据的携带所述第二序列号 的第二请求消息,由所述数据存储服务器利用所述第二序列号确定允许所述客户端利用所 述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息 向所述文件中写入数据。
[0052]所述处理模块42,进一步用于为每个文件记录最近被分配的序列号;
在接收到所述第一请求消息之后,通过自身记录的信息确定所述文件对应的最近被分 配的第一序列号,并将所述最近被分配的第一序列号递增或递减,得到所述文件当前被分 配的第二序列号;
在将所述第二序列号发送给所述客户端之后,记录所述第二序列号为所述文件对应的 最近被分配的序列号。
[0053]与现有技术相比,本发明实施例具有以下优点:
通过应用本发明实施例的技术方案,客户端在向数据存储服务器的文件中写入数据 时,通过携带自身分配到的该文件对应的序列号,以通过抢占式的序列号的方式,来保障只 有一个客户端向文件中写入数据,从而保障了数据安全;且与现有的租约管理机制相比,减 轻了服务器的负载,提高了系统的性能,并且可以得到更快的响应速度,恢复延时很短。
[0054]基于与上述方法同样的发明构思,本发明实施例还提供了一种数据存储服务器, 具体的结构示意图如图5所示,所述数据存储服务器具体包括:
接收模块51,用于在客户端需要向文件中写入数据时,接收来自所述客户端的用于请 求向所述文件中写入数据的第二请求消息,且所述第二请求消息中携带第二序列号;其中, 所述第二序列号为位置提供服务器在接收到所述客户端的用于请求所述文件位置的第一 请求消息之后,利用所述文件对应的最近被分配的第一序列号所分配的所述文件对应的第 二序列号,所述第二序列号大于所述第一序列号或者所述第二序列号小于所述第一序列 号;
处理模块52,用于在接收到所述第二请求消息之后,利用所述第二序列号确定允许所 述客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所述 文件的位置信息向所述文件中写入数据。
[0055]所述处理模块52,具体用于获得最近一个向所述文件中写入数据的客户端所分配 到的所述文件对应的第三序列号,并比较所述第二序列号与所述第三序列号之间的大小关 系;
在所述第二序列号大于所述第一序列号时,如果所述第二序列号大于等于所述第三序 列号,则允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二 序列号小于所述第三序列号,则拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据;
在所述第二序列号小于所述第一序列号时,如果所述第二序列号小于等于所述第三序 列号,则允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二 序列号大于所述第三序列号,则拒绝所述客户端利用所述文件的位置信息向所述文件中写 入数据。
[0056]与现有技术相比,本发明实施例具有以下优点:
通过应用本发明实施例的技术方案,客户端在向数据存储服务器的文件中写入数据 时,通过携带自身分配到的该文件对应的序列号,以通过抢占式的序列号的方式,来保障只 有一个客户端向文件中写入数据,从而保障了数据安全;且与现有的租约管理机制相比,减 轻了服务器的负载,提高了系统的性能,并且可以得到更快的响应速度,恢复延时很短。
[0057]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例 可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理 解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一 个非易失性存储介质(可以是⑶-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计 算机设备(可以是个人计算机,服务器,或网络设备等)执行本发明实施例各个实施场景所 述的方法。
[0058]本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或 流程并不一定是实施本发明实施例所必须的。
[0059]本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进 行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装 置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0060]上述本发明实施例序号仅仅为了描述,不代表实施场景的优劣。
[0061]以上公开的仅为本发明实施例的几个具体实施场景,但是,本发明实施例并非局 限于此,任何本领域的技术人员能思之的变化都应落入本发明实施例的业务限制范围。
【权利要求】
1.一种数据的写入方法,其特征在于,所述方法具体包括:在客户端需要向文件中写入数据时,所述客户端向位置提供服务器发送用于请求所述文件位置的第一请求消息;所述位置提供服务器在接收到所述第一请求消息之后,确定所述文件对应的最近被分配的第一序列号,并分配所述文件对应的第二序列号,所述第二序列号大于所述第一序列号或者所述第二序列号小于所述第一序列号;以及,将所述文件的位置信息和所述第二序列号发送给所述客户端;所述客户端向数据存储服务器发送用于请求向所述文件中写入数据的第二请求消息, 且所述第二请求消息中携带所述第二序列号;所述数据存储服务器在接收到所述第二请求消息之后,利用所述第二序列号确定允许所述客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据。
2.如权利要求1所述的方法,其特征在于,所述数据存储服务器利用所述第二序列号确定允许所述客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据,具体包括:所述数据存储服务器获得最近一个向所述文件中写入数据的客户端所分配到的所述文件对应的第三序列号,并比较所述第二序列号与所述第三序列号之间的大小关系;在所述第二序列号大于所述第一序列号时,如果所述第二序列号大于等于所述第三序列号,则所述数据存储服务器允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二序列号小于所述第三序列号,则所述数据存储服务器拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据;在所述第二序列号小于所述第一序列号时,如果所述第二序列号小于等于所述第三序列号,则所述数据存储服务器允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二序列号大于所述第三序列号,则所述数据存储服务器拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据。
3.如权利要求1或2所述的方法,其特征在于,该方法进一步包括:所述位置提供服务器为每个文件记录最近被分配的序列号;在接收到所述第一请求消息之后,所述位置提供服务器通过自身记录的信息确定所述文件对应的最近被分配的第一序列号,并将所述最近被分配的第一序列号递增或递减,得到所述文件当前被分配的第二序列号;在将所述第二序列号发送给所述客户端之后,所述位置提供服务器记录所述第二序列号为所述文件对应的最近被分配的序列号。
4.如权利要求3所述的方法,其特征在于,该方法进一步包括:当多个数据存储服务器同时存储所述文件时,所述客户端利用所述文件的位置信息向其中一个数据存储服务器的所述文件中写入数据,并由该数据存储服务器向其他数据存储服务器的所述文件中写入数据;当其他数据存储服务器在文件中写入数据成功之后,所述其他数据存储服务器向该数据存储服务器发送写入成功的响应,并由该数据存储服务器将所述客户端所分配到的所述文件对应的序列号发送给所述位置提供服务器;所述位置提供服务器比较接收到的序列号以及自身记录的所述文件对应的最近被分配的序列号;如果二者相同,则确认所述客户端数据写入成功;如果二者不同,则确认所述客户端数据写入失败。
5.一种数据的写入系统,其特征在于,所述系统具体包括:客户端,用于在需要向文件中写入数据时,向位置提供服务器发送用于请求所述文件位置的第一请求消息;以及,在接收到所述文件的位置信息和第二序列号之后,向数据存储服务器发送用于请求向所述文件中写入数据的第二请求消息,且所述第二请求消息中携带所述第二序列号;位置提供服务器,用于在接收到所述第一请求消息之后,确定所述文件对应的最近被分配的第一序列号,并分配所述文件对应的第二序列号,所述第二序列号大于所述第一序列号或者所述第二序列号小于所述第一序列号;以及,将所述文件的位置信息和所述第二序列号发送给所述客户端;数据存储服务器,用于在接收到所述第二请求消息之后,利用所述第二序列号确定允许所述客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据。
6.如权利要求5所述的系统,其特征在于,所述数据存储服务器,具体用于获得最近一个向所述文件中写入数据的客户端所分配到的所述文件对应的第三序列号,并比较所述第二序列号与所述第三序列号之间的大小关系;在所述第二序列号大于所述第一序列号时,如果所述第二序列号大于等于所述第三序列号,则允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述 第二序列号小于所述第三序列号,则拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据;在所述第二序列号小于所述第一序列号时,如果所述第二序列号小于等于所述第三序列号,则允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二序列号大于所述第三序列号,则拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据。
7.一种客户端,其特征在于,所述客户端具体包括:第一发送模块,用于在需要向文件中写入数据时,向位置提供服务器发送用于请求所述文件位置的第一请求消息;接收模块,用于在所述位置提供服务器利用所述文件对应的最近被分配的第一序列号分配所述文件对应的第二序列号之后,接收所述位置提供服务器返回的所述文件的位置信息和所述第二序列号;第二发送模块,用于向数据存储服务器发送用于请求向所述文件中写入数据的第二请求消息,且所述第二请求消息中携带所述第二序列号;由所述数据存储服务器利用所述第二序列号确定允许所述客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据。
8.—种位置提供服务器,其特征在于,所述位置提供服务器具体包括:接收模块,用于在客户端需要向文件中写入数据时,接收来自所述客户端的用于请求所述文件位置的第一请求消息;处理模块,用于在接收到所述第一请求消息之后,确定所述文件对应的最近被分配的第一序列号,并分配所述文件对应的第二序列号,所述第二序列号大于所述第一序列号或者所述第二序列号小于所述第一序列号;发送模块,用于将所述文件的位置信息和所述第二序列号发送给所述客户端,由所述客户端向数据存储服务器发送用于请求向所述文件中写入数据的携带所述第二序列号的第二请求消息,并由所述数据存储服务器利用所述第二序列号确定允许所述客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据。
9.如权利要求8所述的位置提供服务器,其特征在于,所述处理模块,进一步用于为每个文件记录最近被分配的序列号;在接收到所述第一请求消息之后,通过自身记录的信息确定所述文件对应的最近被分配的第一序列号,并将所述最近被分配的第一序列号递增或递减,得到所述文件当前被分配的第二序列号;在将所述第二序列号发送给所述客户端之后,记录所述第二序列号为所述文件对应的最近被分配的序列号。
10.一种数据存储服务器,其特征在于,所述数据存储服务器具体包括:接收模块,用于在客户端 需要向文件中写入数据时,接收来自所述客户端的用于请求向所述文件中写入数据的第二请求消息,且所述第二请求消息中携带第二序列号;其中,所述第二序列号为位置提供服务器在接收到所述客户端的用于请求所述文件位置的第一请求消息之后,利用所述文件对应的最近被分配的第一序列号所分配的所述文件对应的第二序列号,所述第二序列号大于所述第一序列号或者所述第二序列号小于所述第一序列号;处理模块,用于在接收到所述第二请求消息之后,利用所述第二序列号确定允许所述客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据。
11.如权利要求10所述的数据存储服务器,其特征在于,所述处理模块,具体用于获得最近一个向所述文件中写入数据的客户端所分配到的所述文件对应的第三序列号,并比较所述第二序列号与所述第三序列号之间的大小关系;在所述第二序列号大于所述第一序列号时,如果所述第二序列号大于等于所述第三序列号,则允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二序列号小于所述第三序列号,则拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据;在所述第二序列号小于所述第一序列号时,如果所述第二序列号小于等于所述第三序列号,则允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二序列号大于所述第三序列号,则拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据。
【文档编号】H04L29/06GK103581122SQ201210259170
【公开日】2014年2月12日 申请日期:2012年7月25日 优先权日:2012年7月25日
【发明者】李锐, 伍海君, 朱会灿, 邓大付, 邹永强, 董乘宇, 阙太富, 王磊, 杨绍鹏, 张书鑫, 赵大勇, 刘畅, 陈晓东, 张银锋 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1