[发明专利]一种可伸缩和高效的地址空间转换算法有效
申请号: | 201710378266.3 | 申请日: | 2017-05-24 |
公开(公告)号: | CN107277112B | 公开(公告)日: | 2020-10-30 |
发明(设计)人: | 卢暾;杨达一;邵斌;夏欢欢;顾宁 | 申请(专利权)人: | 复旦大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;陆尤 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 伸缩 高效 地址 空间 转换 算法 | ||
1.一种可伸缩和高效的地址空间转换方法,其特征在于,所有客户端各自保存一份工作副本,服务器负责处理用户发过来的操作并且转发给其他用户,客户端接收到这些操作并且在本地副本执行,重复这个过程直到工作完成,通过改进的地址空间转换算法来保持副本的一致性;采用客户端/服务器结构,操作的产生和执行都在客户端完成,服务器只负责分发和处理,降低服务器负担,通信协议基于标量时间戳,性能不受用户人数的影响;
服务器中的操作按照接收顺序依次分配递增序号并且存储在历史缓存队列当中,操作可以根据工作方式的不同:同步或异步,被服务器主动推送给参与的用户,或者等待用户根据时间戳主动获取;
数据模型中包括一个起始节点和终止节点;除了终止节点外,其他的所有节点包含一个下一个节点信息,从而形成一个线性链表;由于每个节点包含唯一标识符信息,改进的地址空间转换算法通过标识符和时间戳来确认目标位置;
具体步骤为:
(1)重新构建地址空间
首先,对于地址空间进行全新的组织构建,使地址空间的每一个单元都可以通过唯一标识信息进行访问,基于标识符(identifier)的每个节点定义如下:
nodeidentifier,data,nextId,TSins,TSdel,TSupd
nextId为后继节点标识符,通过该标识符可以查找后继节点,TSins是创建该节点的操作的时间戳,TSdel是删除该节点的操作中全序最小的时间戳,TSupd是修改该节点的操作中全序最大的时间戳,data是本节点具体保存的信息,根据应用而定;系统采用浏览器/服务器架构,该架构由一个中央服务器和任意数目参与规划的用户组成,每个用户本地都保存一份编辑副本,中央服务器负责转发和处理用户产生的操作,具体是指对每个操作分配一个连续递增的序号,然后将该操作广播给所有参与的用户,包括产生该操作的用户,告知分配的序号;
(2)建立消息通信协议
算法的正确执行依赖于消息通信协议,通信协议可以判断操作之间的关系;消息通信协议支持两种工作方式同步和异步:同步是指如果客户端需要获取服务器最新状态,客户端显式的发起一次请求,异步是指当服务器状态更新,主动的将新的状态推送给需要通知的用户;假设服务器存在一个虚拟操作历史队列VSHB,所有用户发过来的操作都保存在VSHB当中;操作在VSHB当中的序号,就是服务器给该操作所对应的时间戳分配的序号SRN;而用户端维护的两个操作历史队列,分别是本地操作历史队列LHB和远程操作队列RHB;LHB中存放用户自身产生的操作,RHB中存放接收到的远程操作,给所有操作分配一个唯一的时间戳;
(3)地址空间转换
地址空间转换算法支持三种基本操作:插入,删除以及更新,执行步骤如下:
步骤1:从服务器获取所有历史操作,在本地执行完成副本;
步骤2:如果接收到远程操作或者本地产生操作,调用相应的插入、删除和更新操作来完成执行;
步骤3:执行后的副本反映到相应的应用当中;
具体为:
一、插入操作
二、删除操作
三、更新操作
所述时间戳定义如下:
TS=user,opcnt,lastUpdateSRN,SRN
其中user标识时间戳所对应的操作的产生者,opcnt标识操作产生时LHB的大小,LastUpdateSRN指LHB和RHB中已知的最大SRN,SRN是操作在VSHB中的序号;
时间戳的判别规律如下:
(1)TS1→TS2,当且仅当1)TS1.user=TS2.user并且TS1.opcntTS2.opcnt;2)TS1.SRN!=NULL并且TS1.SRNTS2.lastUpdateSRN;
(2)TS1‖TS2,当且仅当既不满足TS1→TS2,也不满足TS2→TS1;
通过以上方式,可以直接判断两个时间戳的关系,适用于同步或者异步工作模式。
2.根据权利要求1所述的可伸缩和高效的地址空间转换方法,其特征在于,具体工作流程:将协作会话的所有历史操作发送给新加入的用户,从而形成一个副本;该副本是其他用户协作之后的成果,当该会话还没有用户操作产生时,则副本为空;接下来,当本地产生操作时,产生的操作在本地副本上立刻执行而不会被阻塞,因为此时本地所有已经执行过的操作都因果先于该操作,执行完毕后生成一个包含user,opcnt,lastUpdateSRN的时间戳TS,其中SRN为空,user为时间戳所对应的操作的产生者,opcnt为操作产生时LHB的大小,lastUpdateSRN为操作产生时RHB和LHB中所有操作中出现的最大SRN;然后将操作信息和时间戳TS一起作为消息MES=OP,TS添加到LHB尾部,然后发送到服务器端;SRN等待服务器进行分配后的确认消息,因此需要先将MES添加到尾部,再发送,防止确认的时候LHB中无该消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710378266.3/1.html,转载请声明来源钻瓜专利网。