[发明专利]一种支持树状数据结构的一致性算法系统及其实现方法有效
申请号: | 201910772660.4 | 申请日: | 2019-08-21 |
公开(公告)号: | CN110597809B | 公开(公告)日: | 2023-05-23 |
发明(设计)人: | 王青;黄潮立 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/23;G06F16/2455;G06F16/27 |
代理公司: | 广州容大知识产权代理事务所(普通合伙) 44326 | 代理人: | 刘新年 |
地址: | 510275 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 支持 树状 数据结构 一致性 算法 系统 及其 实现 方法 | ||
1.一种支持树状数据结构的一致性算法系统的实现方法,包括如下步骤:
步骤S1,将集群中的虚拟计算节点根据树状结构划分为具有上下级管理关系的Group;
步骤S2,所有拥有上下级关系的组均运行基于 Multi-Paxos算法的一致性算法,各Group内Leader拥有组的相关管理权限,各Group内Leader在执行相关管理权限的时候依赖于虚拟计算节点的相关参数以及数据子树的相关参数;
步骤S3,当接收到客户端发起的数据请求时,首先从其缓存器中获取数据子树对应的Group的Leader,然后再对Leader所在的虚拟计算节点发送请求;
于步骤S2中,各Group的Leader根据目前管理的数据子树和虚拟计算节点的负载情况,决定是否产生新的SubGroup 或者利用现有的 SubGroup,将其所管理的数据子树中的其中一部分子树的管理权转交给 SubGroup,并放弃对该部分数据子树的管理权;各Group的Leader还根据负载情况进行SubGroup的回收,删除该SubGroup以及该SubGroup的所有SubGroups,同时回收该 SubGroup 管辖内的所有数据子树;
所述客户端缓存之前请求过的数据子树所在的 Group,以及该 Group 的 Leader节点,若缓存不存在或者缓存错误,则发送请求至可用的虚拟计算节点来进行辅助寻找;
所述辅助寻找的过程如下:首先检测当前虚拟计算节点所在的所有 Group 中是否存在拥有对该数据子树的管理权,若有则返回相应的 Group Id 和 Leader节点,否则,将请求转发至其拥有的最大管辖权的Group的父Group中进行寻找,直到寻找成功;若到 RootGroup 或者无父Group的情况下都没有找到该数据子树所在的 Group,则说明目前该数据子树不存在或者处于不可用状态;
每个 Group 均保存其管理的 SubGroups 的 Group Id 以及其关联的数据子树,并缓存这些 SubGroups 的Leader节点,以便于快速找到数据子树的处理节点;其中,Group Id的产生方式通过在该组 Leader 产生 SubGroup 的时候进行分配,并使得该组内超半数节点知晓,保持 Group Id 的数据一致性,父Group有它所有的SubGroups的所有IDs,相应的组内成员集合、管辖数据子树的映射关系:GroupId,(组成员,管辖的数据子树),所述Group Id全局唯一,用于进行Group 的寻找;
在同一个Group 中,虚拟计算节点间互相进行通信,以进行该组内的领导选举、转发议题请求,同时每个Group内只有一个Leader;每个Group 至少由三个虚拟计算节点组成,每个 Group 拥有对其内部分配的 SubGroups的管理权,即 Level-i 组拥有对其内部分配的所有 Level-(i+1) 组的管理权,这部分管理权由该 Group 的Leader进行管理,具体管理权包括:添加 SubGroup、回收 SubGroup、管理数据子树;
所述虚拟计算节点的相关参数来自于虚拟计算节点的节点负载收集器,其收集的数据包括CPU使用率、内存使用率、网络带宽利用率、网络延迟时间、磁盘IO速度、磁盘使用率和目前处理的 Group 数目;
所述数据子树的相关参数来自于虚拟计算节点的主进程,其收集的数据包括单位时间内数据读取量、单位时间内数据处理量和所有管辖内的数据子树的数据总量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910772660.4/1.html,转载请声明来源钻瓜专利网。