[发明专利]基于分布式协商算法的协同内核构建方法有效
申请号: | 201310292264.4 | 申请日: | 2013-07-11 |
公开(公告)号: | CN103347086A | 公开(公告)日: | 2013-10-09 |
发明(设计)人: | 黄宇;陆掾;吕建 | 申请(专利权)人: | 南京大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 张苏沛 |
地址: | 210023 江苏省南京市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 分布式 协商 算法 协同 内核 构建 方法 | ||
1.一种基于分布式协商算法的协同内核构建方法,其特征在于包括如下步骤:
步骤1、数据中心包含三类节点:主服务节点,从服务节点,以及客户节点;主服务节点接收到客户节点发出的请求后,根据请求的类型,进入步骤2或者步骤3;
步骤2、主服务节点处理客户节点发出的写请求;
步骤3、主服务节点处理客户节点发出的读请求;
步骤4、数据中心中的设备不可靠,当主服务节点无法正常运作时,协同内核将自动地在所有从服务节点中选出一个新的主服务节点,继续为客户节点提供服务。
2.根据权利要求1所述的基于分布式协商算法的协同内核构建方法,其特征在于步骤1的具体过程为:
步骤1-1、客户节点通过某种方式获知主服务节点的地址,并将操作请求通过网络协议封装在数据包中,然后发送给主服务节点;由于协同内核由不可靠的设备组成,所以原有的主服务节点可能无法正常工作;为了应对上述异常情况,需要动态地在所有从服务节点中选出新的主服务节点,以继续为客户节点提供服务;某些客户节点可能无法及时知晓新的主服务节点地址,其可能将请求发送给从服务节点;如果主服务节点接收到客户请求,进入步骤1-2;如果从服务节点接收到客户请求,进入步骤1-3;
步骤1-2、主服务节点从数据包中解析出客户节点的操作请求;操作请求分为两种:写请求和读请求;如果是写请求,则进入步骤2,如果是读请求,则进入步骤3;
步骤1-3、从服务节点从数据包中解析出客户节点的操作请求后,不对该请求做任何处理,并向客户节点返回错误信息,告知该客户节点其主节点地址信息有误;出错信息通过网络协议封装在数据包中。
3.根据权利要求1所述的基于分布式协商算法的协同内核构建方法,其特征在于步骤2的具体过程为:
步骤2-1、根据读请求包含的信息,读取相应的数据;需要通过某种并发控制技术保证读取结果的正确性;
步骤2-2、向客户节点返回读取结果,读取结果通过网络协议封装在数据包中。
4.根据权利要求1所述的基于分布式协商算法的协同内核构建方法,其特征在于步骤3的具体过程为:
步骤3-1、将写请求作为一条日志记录写入副本日志的尾端;
步骤3-2、系统设置一个时间参数T,该参数用于限定上述写入操作的完成时间。如果写入操作在T时间内成功执行,以小幅增加的方式对时间参数T进行更新,并进入步骤3-3;如果未能在T时间内成功执行,主服务节点自动地降级为从服务节点,同时向客户节点返回出错信息,出错信息通过网络协议封装在数据包中;
步骤3-3、根据写请求包含的信息,写入相应的数据;需要通过并发控制技术保证写入结果的正确性;
步骤3-4、向客户节点返回写入成功信息,该信息通过网络协议封装在数据包中。
5.根据权利要求4所述的基于分布式协商算法的协同内核构建方法,其特征在于,副本日志是如下的一种数据结构:
副本日志类似于传统的本地日志,日志内部存储了连续的记录,其中每条记录由唯一的记录位置标记;同时,日志内部包含了一个指示当前读写位置的指针;当对副本日志成功执行读写操作后,该指针指向下一个读写位置;与本地日志的不同之处在于,副本日志是一个全局日志;所有的服务节点都包含一个副本日志,并且这些副本日志存储了相同的记录。
6.根据权利要求4所述的基于分布式协商算法的协同内核构建方法,其特征在于,副本日志的写入操作按如下方式执行:
副本日志维护一个滑动窗口,窗口大小W为一固定值;滑动窗口将副本日志分为三个部分:在滑动窗口左边的部分为已成功写入的日志记录,滑动窗口覆盖的部分为正在写入的日志记录,在滑动窗口右边的部分为待写入的日志记录;随着滑动窗口中的日志记录不断地成功写入,滑动窗口向右移动,原本处于待写入状态的日志记录开始进入写入操作过程;副本日志以正在写入的日志记录为算法参数P,尝试执行一次在所有服务节点之间的分布式协商算法,以使正在写入的日志记录更新到所有服务节点上;分布式协商算法是一种分布式算法,所有服务节点都会参与其中;当分布式协商算法产生协商结果后,写入操作成功执行。
7.根据权利要求4所述的基于分布式协商算法的协同内核构建技术,其特征在于步骤4的具体过程为:
步骤4-1、根据步骤3-1,副本日志记录了客户节点发出的所有写请求;从服务节点通过读取副本日志来更新数据;根据步骤3-2,当主服务节点不断地接收到客户节点发出的写请求时,它会连续地向副本日志中写入记录;从服务节点通过能否成功地从副本日志中读取记录来判断主服务节点是否仍然正常工作;系统设置一个时间参数T',该参数用于限定从服务节点对副本日志执行读操作的完成时间;如果读操作在T'内成功执行,从服务节点根据读取的记录更新本地数据,同时以小幅增加的方式更新时间参数T';如果未能在T'内成功执行,进入步骤4-2;
步骤4-2、向副本日志中写入一条特殊的记录,该条记录表明该从服务节点尝试成为新的主服务节点;写入操作的执行方式按照步骤3-2;如果写入操作成功执行,该从服务节点执行如下三个操作:提升自己为新的主服务节点,初始化时间参数T,并将副本日志的读写指针重置到在当前位置之后的第W个位置;如果写入操作未能成功执行,重新进入步骤4-1。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310292264.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种具有触点接口的智能手机
- 下一篇:一种城市轨道交通信号系统的自动升级方法