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

技术编号:9671331 阅读:127 留言:0更新日期:2014-02-14 18:28
本发明专利技术实施例公开了一种数据的写入方法、系统和装置,通过应用本发明专利技术实施例的技术方案,客户端在向数据存储服务器的文件中写入数据时,通过携带自身分配到的该文件对应的序列号,以通过抢占式的序列号的方式,来保障只有一个客户端向文件中写入数据,从而保障了数据安全;且与现有的租约管理机制相比,减轻了服务器的负载,提高了系统的性能,并且可以得到更快的响应速度,恢复延时很短。

【技术实现步骤摘要】
数据的写入方法、系统和装置
本专利技术涉及通信
,特别涉及一种数据的写入方法、系统和装置。
技术介绍
在HDFS(HadoopDistributedFileSystem,开源的分布式文件系统)中,可能出现多个客户端同时向一个文件中写入数据的情况,为此:现有技术中通过使用租约的方式避免多个客户端同时向一个文件中写入数据。具体的,当需要向文件中写入数据时,客户端请求一个租约,并且在该租约的时间期限内只允许该客户端向该文件中写入数据,而不允许其他客户端向该文件中写入数据;在租约过期时,该客户端可以进行续约,以更新租约;当该客户端不需要向该文件中写入数据时则退回租约,此时另一个客户端能够抢占该文件的租约,从而可以允许其他客户端向该文件中写入数据。在实现本专利技术实施例的过程中,专利技术人发现现有技术至少存在以下问题:现有的租约管理机制中,会频繁的更新租约,对元信息服务器造成巨大压力,元信息服务器的负载过重,且系统性能比较低;此外,当客户端出现故障之后,需要等待租约过期才能继续向文件中写入数据,恢复延时很大。
技术实现思路
本专利技术实施例提供一种数据的写入方法、系统和装置,解决现有技术的租约管理机制中,服务器负载过重、系统性能比较低以及恢复延时大等问题。为达到上述目的,本专利技术实施例一方面提供了一种数据的写入方法,所述方法具体包括:在客户端需要向文件中写入数据时,所述客户端向位置提供服务器发送用于请求所述文件位置的第一请求消息;所述位置提供服务器在接收到所述第一请求消息之后,确定所述文件对应的最近被分配的第一序列号,并分配所述文件对应的第二序列号,所述第二序列号大于所述第一序列号或者所述第二序列号小于所述第一序列号;以及,将所述文件的位置信息和所述第二序列号发送给所述客户端;所述客户端向数据存储服务器发送用于请求向所述文件中写入数据的第二请求消息,且所述第二请求消息中携带所述第二序列号;所述数据存储服务器在接收到所述第二请求消息之后,利用所述第二序列号确定允许所述客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据。所述数据存储服务器利用所述第二序列号确定允许所述客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据,具体包括:所述数据存储服务器获得最近一个向所述文件中写入数据的客户端所分配到的所述文件对应的第三序列号,并比较所述第二序列号与所述第三序列号之间的大小关系;在所述第二序列号大于所述第一序列号时,如果所述第二序列号大于等于所述第三序列号,则所述数据存储服务器允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二序列号小于所述第三序列号,则所述数据存储服务器拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据;在所述第二序列号小于所述第一序列号时,如果所述第二序列号小于等于所述第三序列号,则所述数据存储服务器允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二序列号大于所述第三序列号,则所述数据存储服务器拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据。该方法进一步包括:所述位置提供服务器为每个文件记录最近被分配的序列号;在接收到所述第一请求消息之后,所述位置提供服务器通过自身记录的信息确定所述文件对应的最近被分配的第一序列号,并将所述最近被分配的第一序列号递增或递减,得到所述文件当前被分配的第二序列号;在将所述第二序列号发送给所述客户端之后,所述位置提供服务器记录所述第二序列号为所述文件对应的最近被分配的序列号。该方法进一步包括:当多个数据存储服务器同时存储所述文件时,所述客户端利用所述文件的位置信息向其中一个数据存储服务器的所述文件中写入数据,由该数据存储服务器向其他数据存储服务器的所述文件中写入数据;当其他数据存储服务器在文件中写入数据成功之后,所述其他数据存储服务器向该数据存储服务器发送写入成功的响应,并由该数据存储服务器将所述客户端所分配到的所述文件对应的序列号发送给所述位置提供服务器;所述位置提供服务器比较接收到的序列号以及自身记录的所述文件对应的最近被分配的序列号;如果二者相同,则确认所述客户端数据写入成功;如果二者不同,则确认所述客户端数据写入失败。另一方面,本专利技术实施例还提供了一种数据的写入系统,所述系统具体包括:客户端,用于在需要向文件中写入数据时,向位置提供服务器发送用于请求所述文件位置的第一请求消息;以及,在接收到所述文件的位置信息和第二序列号之后,向数据存储服务器发送用于请求向所述文件中写入数据的第二请求消息,且所述第二请求消息中携带所述第二序列号;位置提供服务器,用于在接收到所述第一请求消息之后,确定所述文件对应的最近被分配的第一序列号,并分配所述文件对应的第二序列号,所述第二序列号大于所述第一序列号或者所述第二序列号小于所述第一序列号;以及,将所述文件的位置信息和所述第二序列号发送给所述客户端;数据存储服务器,用于在接收到所述第二请求消息之后,利用所述第二序列号确定允许所述客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据。所述数据存储服务器,具体用于获得最近一个向所述文件中写入数据的客户端所分配到的所述文件对应的第三序列号,并比较所述第二序列号与所述第三序列号之间的大小关系;在所述第二序列号大于所述第一序列号时,如果所述第二序列号大于等于所述第三序列号,则允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二序列号小于所述第三序列号,则拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据;在所述第二序列号小于所述第一序列号时,如果所述第二序列号小于等于所述第三序列号,则允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二序列号大于所述第三序列号,则拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据。另一方面,本专利技术实施例还提供了一种客户端,所述客户端具体包括:第一发送模块,用于在需要向文件中写入数据时,向位置提供服务器发送用于请求所述文件位置的第一请求消息;接收模块,用于在所述位置提供服务器利用所述文件对应的最近被分配的第一序列号分配所述文件对应的第二序列号之后,接收所述位置提供服务器返回的所述文件的位置信息和所述第二序列号;第二发送模块,用于向数据存储服务器发送用于请求向所述文件中写入数据的第二请求消息,且所述第二请求消息中携带所述第二序列号;由所述数据存储服务器利用所述第二序列号确定允许所述客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据。另一方面,本专利技术实施例还提供了一种位置提供服务器,所述位置提供服务器具体包括:接收模块,用于在客户端需要向文件中写入数据时,接收来自所述客户端的用于请求所述文件位置的第一请求消息;处理模块,用于在接收到所述第一请求消息之后,确定所述文件对应的最近被分配的第一序列号,并分配所述文件对应的第二序列号,所述第二序列号大于所述第一序列号或者所述第二序列号小于所述第一序列号;发送模块,用于将所述文件的位置信息和所述第二序列号发送本文档来自技高网...
数据的写入方法、系统和装置

【技术保护点】
一种数据的写入方法,其特征在于,所述方法具体包括:在客户端需要向文件中写入数据时,所述客户端向位置提供服务器发送用于请求所述文件位置的第一请求消息;所述位置提供服务器在接收到所述第一请求消息之后,确定所述文件对应的最近被分配的第一序列号,并分配所述文件对应的第二序列号,所述第二序列号大于所述第一序列号或者所述第二序列号小于所述第一序列号;以及,将所述文件的位置信息和所述第二序列号发送给所述客户端;所述客户端向数据存储服务器发送用于请求向所述文件中写入数据的第二请求消息,且所述第二请求消息中携带所述第二序列号;所述数据存储服务器在接收到所述第二请求消息之后,利用所述第二序列号确定允许所述客户端利用所述文件的位置信息向所述文件中写入数据或者拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据。

【技术特征摘要】
1.一种数据的写入方法,其特征在于,所述方法具体包括:在客户端需要向文件中写入数据时,所述客户端向位置提供服务器发送用于请求所述文件位置的第一请求消息;所述位置提供服务器在接收到所述第一请求消息之后,确定所述文件对应的最近被分配的第一序列号,并分配所述文件对应的第二序列号,所述第二序列号大于所述第一序列号或者所述第二序列号小于所述第一序列号;以及,将所述文件的位置信息和所述第二序列号发送给所述客户端;所述客户端向数据存储服务器发送用于请求向所述文件中写入数据的第二请求消息,且所述第二请求消息中携带所述第二序列号;所述数据存储服务器在接收到所述第二请求消息之后,获得最近一个向所述文件中写入数据的客户端所分配到的所述文件对应的第三序列号,并比较所述第二序列号与所述第三序列号之间的大小关系;在所述第二序列号大于所述第一序列号时,如果所述第二序列号大于等于所述第三序列号,则所述数据存储服务器允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二序列号小于所述第三序列号,则所述数据存储服务器拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据;在所述第二序列号小于所述第一序列号时,如果所述第二序列号小于等于所述第三序列号,则所述数据存储服务器允许所述客户端利用所述文件的位置信息向所述文件中写入数据;如果所述第二序列号大于所述第三序列号,则所述数据存储服务器拒绝所述客户端利用所述文件的位置信息向所述文件中写入数据。2.如权利要求1所述的方法,其特征在于,该方法进一步包括:所述位置提供服务器为每个文件记录最近被分配的序列号;在接收到所述第一请求消息之后,所述位置提供服务器通过自身记录的信息确定所述文件对应的最近被分配的第一序列号,并将所述最近被分配的第一序列号递增或递减,得到所述文件当前被分配的第二序列号;在将所述第二序列号发送给所述客户端之后,所述位置提供服务器记录所述第二序列号为所述文件对应的最近被分配的序列号。3.如权利要求2所述的方法,其特征在于,该方法进一步包括:当多个数据存储服务器同时存储所述文件时,所述客户端利用所述文件的位置信息向其中一个数据存储服务器的所述文件中写入数据,并由该数据存储服务器向其他数据存储服务器的所述文件中写入数据;当其他数据存储服务器在文件中写入数据成功之后,所述其他数据存储服务器向该数据存储服务器发送写入成功的响应,并由该数据存储服务器将所述客户端所分配到的所述文件对应的序列号发送给所述位置提供服务器;所述位置提供服务器比较接收到的序列号以及自身记录的所述文件对应的最近被分配的序列号;如果二者相同,则确认所述客户端数据写入成功;如果二者不同,则确认所述客户端数据写入失败。4.一种数据的写入系统,其特征在于,所述系统具体包括:客户端,用于在需要向文件中写入数据时,向位置提供服务器发送用于请求所述文件位置的第一请求消息;以及,在接收到所述文件的位置信息和第二序列号之后,向数据存储服务器发送用于请求向所述文件中写入数据的第二请求消息,且所述第二请求消息中携带所述第二序列号;位置提供服务器,用于在接收到所述第一请求消息之后,确定所述文件对应的最近被分配的第一序列号,并分配所述文件对应的第二序列号,所述第二序列号大于所述第一序列号或者所述第二序列号小于所述第一序列号;以及,将所述文件的位置信息和所述第二序列号发送给所述客户端;数据存储服务器,用于在接收到所述第二请求消息之后,获得最近一个向所述文件中写入数据的客户端所分配到的所述文件对应的第三序列号,并比较所述第二序列号与所述第三序列号之间的大小关系;在所述第二序列号大于所述第一序列号时,如果所述第二序列号大于等于所述第三序列号,则允许所述客户端利用所述文件的位置信息...

【专利技术属性】
技术研发人员:李锐伍海君朱会灿邓大付邹永强董乘宇阙太富王磊杨绍鹏张书鑫赵大勇刘畅陈晓东张银锋
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1