[发明专利]支持并发的客户端与服务器端的文档操作同步方法有效
申请号: | 201310582305.3 | 申请日: | 2013-11-18 |
公开(公告)号: | CN103607451B | 公开(公告)日: | 2017-02-15 |
发明(设计)人: | 黄君洲 | 申请(专利权)人: | 上海爱数信息技术股份有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 上海科盛知识产权代理有限公司31225 | 代理人: | 赵志远 |
地址: | 201112 上海市闵行*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 支持 并发 客户端 服务器端 文档 操作 同步 方法 | ||
技术领域
本发明涉及一种分布式文件管理系统的同步技术,尤其是涉及一种支持并发的客户端与服务器端的文档操作同步方法。
背景技术
在一个传统的分布式文件管理系统中,为确保文档操作的一致性,在客户端的实现中,从某个特定的客户端到云存储平台的文档操作同步通常采用单一队列的模型来管理。所有待同步的文档操作都首先进入一个队列进行排队,按照先到先处理的机制,逐个同步队列中的文档操作,如图1所示。
这种单一队列的文档操作同步模型实现简单,能够确保操作的一致性,但存在以下不足:
不能实现并发同步,传输效率低;
如果中间有命令执行失败,通常的做法是无限期重试直到成功为止,导致队列堵塞;
如果队列中有操作耗时较长,例如大文件的传输,后续命令只能等待,导致队列堵塞;
以上问题,可能导致从客户端到云存储平台文档操作的同步效率较低,有些操作不能及时完成,造成客户端和服务器端的同步延迟,进而影响用户体验。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种支持并发的客户端与服务器端的文档操作同步方法;提高传输效率,能够实现文件上传的有限量的并发;将大文件和小文件区分处理,以避免大文件上传时间太长从而影响小文件的同步;解决队列堵塞的问题,使得队列中不会出现由于个别命令执行失败而导致其它毫无关联的命令长时间等待。
本发明的目的可以通过以下技术方案来实现:
一种支持并发的客户端与服务器端的文档操作同步方法,其特征在于,包括以下步骤:
1)将文档操作命令队列按照类型分为三种:普通命令队列NCQ、大数据上传队列BDQ和小数据上传队列SDQ,其中NCQ中包含所有待处理的文档操作命令,BDQ中包含所有的大数据量的文件的上传操作,SDQ中包含所有的小数据量的文件的上传操作;
2)通过上传管理器Upload Manager来管理整个文档操作的上传,Upload Manager管理一个上传代理池Upload Agent Pool,上传代理池中包括NCQ Agent、SDQ Agent和BDQ Agent,通过调用这些代理来完成一个控制命令或者数据上传命令;其中文档上传队列的管理包括以下步骤:
(1)上传管理器Upload Manager进行初始化,包括初始化普通命令队列NCQ队列、大数据上传队列BDQ队列、小数据上传队列SDQ队列、NCQAgent、SDQAgent和BDQ Agent;
(2)Upload Manager执行逻辑,包括检查是否有应用层的请求、轮询NCQ队列、轮询SDQ队列和轮询BDQ队列。
所述的NCQ队列、BDQ队列和SDQ队列分别如下:
NCQ队列包含所有待同步的文档操作命令;
BDQ队列包含所有的大数据量文件的上传操作;
SDQ队列包含所有的小数据量文件的上传操作;
其中大数据量及小数据量的定义根据用户环境设置,即文件大小大于阈值的设置为大数据量文件,小于或者等于阈值的设置为小数据量文件;
客户端产生的所有的文档操作命令,首先添加到NCQ队列的末尾,若该命令为文件上传操作,则同时根据文件的大小,在相应的BDQ队列或者SDQ队列中添加一条文件上传命令,并建立和NCQ队列中相应命令的关联。
所述的NCQ队列采用顺序执行方式,BDQ队列和SDQ队列采用并发执行方式。
所述的NCQ Agent在NCQ队列中有命令需要执行时,执行队列中的命令;SDQAgent和BDQAgent分别用于执行SDQ队列和BDQ队列的数据上传,当SDQ队列中有命令等待执行时,分配处于空闲状态的SDQ Agent完成该同步指令,如果没有空闲的SDQ Agent,则需要等待正在工作的SDQ Agent变成空闲状态;当BDQ队列中有命令等待执行时,分配处于空闲状态的BDQ Agent完成该同步指令,如果没有空闲的BDQ Agent,则需要等待正在工作的BDQAgent变成空闲状态。
所述的Upload Manager检查是否有应用层的请求具体为:
若有操作需要添加到同步队列,则首先将该命令添加到NCQ队列的末尾;
若有操作需要取消,则将NCQ队列中该操作对应的命令删除;
若为查询操作,则从队列中获取对应的命令的状态,回复给上层应用。
所述的Upload Manager轮询NCQ队列具体为:
1)获取当前NCQ队列的队首命令;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海爱数信息技术股份有限公司,未经上海爱数信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310582305.3/2.html,转载请声明来源钻瓜专利网。