[发明专利]一种可保持janusGraph数据一致性的分布式高效并行加载方法有效
申请号: | 202011622773.5 | 申请日: | 2020-12-31 |
公开(公告)号: | CN112685419B | 公开(公告)日: | 2021-09-10 |
发明(设计)人: | 谢铭;蒲路;孟宪文 | 申请(专利权)人: | 北京赛思信安技术股份有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/23;G06F16/2458;G06F16/27;G06F9/54 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 易卜 |
地址: | 100125 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 保持 janusgraph 数据一致性 分布式 高效 并行 加载 方法 | ||
1.一种可保持janusGraph数据一致性的分布式高效并行加载方法,其特征在于,具体步骤如下:
步骤一、构建包括集群管理模块、消息队列模块、数据处理模块、点处理模块和分布式索引模块的高效加载分布式结构;
集群管理模块负责给各节点分配要处理的队列任务区间,消息队列模块负责数据的跨节点传输,数据处理模块与分布式索引模块配合工作,负责从消息队列获取图数据并进行加载,点处理模块和分布式索引模块配合工作,负责从消息队列获取点数据并进行处理;
步骤二、初始化消息队列模块,创建两个空的消息队列:第一分布式队列和第二分布式队列;
步骤三、终端用户调用API接口,从CSV文件或其他消息队列中实时接收数据,并解析后存入第一分布式队列中;
解析是指将接收的数据解析为json结构;
每条数据由点边点结构组成,具体包括:起始点的属性,终止点的属性,边的属性,起始点的标签,终止点的标签,边的标签,起始点的唯一标志和终止点的唯一标志;
步骤四、数据处理模块从第一分布式队列中逐条取出数据,调用分布式索引模块将数据加载或更新到图数据库中;
分布式索引模块中存储的是每个点的唯一标志和该点ID之间的映射关系;
具体为:
首先,针对当前数据a,根据起始点a1和终止点b1的唯一标志,利用分布式索引模块找到两个点的映射ID;
然后,判断两个ID是否都存在于图数据库中,如果是,将当前数据a的所有信息更新到图数据库中;否则,数据a重新回到第一分布式队列中继续排队,并将未获取到ID的点对应的唯一标志放入第二分布式队列的指定分区中;
步骤五、点处理模块从第二分布式队列中逐条获取各点的唯一标志,针对当前点对应的唯一标志S,判断能否从分布式索引模块获取S对应的ID,如果能,则继续获取下一个标志进行判断;否则,将S加载到图数据库中,并产生对应的ID;同时将S与ID的对应关系放入分布式索引模块中,然后选择下一个标志进行判断;
步骤六、集群管理模块找寻主节点,并对各子节点分发任务,各子节点并行处理各自的分布式队列分区中的数据,实现实时数据一致性的高效并行加载;
加入集群最早的节点为主节点;每个子节点都包括第一分布式队列和第二分布式队列中的分区,不同子节点对应不同的分区区间。
2.如权利要求1所述的一种可保持janusGraph数据一致性的分布式高效并行加载方法,其特征在于,步骤一中所述集群管理模块,消息队列模块和分布式索引模块都同时连接数据处理模块和点处理模块。
3.如权利要求1所述的一种可保持janusGraph数据一致性的分布式高效并行加载方法,其特征在于,步骤二中所述的第一分布式队列用于存放原始图数据;第二分布式队列用于存放处理时的点数据;每个消息队列里有若干分区。
4.如权利要求1所述的一种可保持janusGraph数据一致性的分布式高效并行加载方法,其特征在于,所述步骤四中,数据a中未获取到ID的点放入哪个分区,是由点对应的唯一标志的哈希值对第二分布式队列的分区数取模决定。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京赛思信安技术股份有限公司,未经北京赛思信安技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011622773.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种消防水带延时接头
- 下一篇:一种超大硫化机