一种存储优化的分布式图处理方法技术

技术编号:16128543 阅读:30 留言:0更新日期:2017-09-01 20:42
本发明专利技术公开了一种基于存储优化的分布式图处理方法,属于图计算领域。本发明专利技术包括:数据预处理阶段进行数据划分;分发图分区数据;开始数据迭代处理;更新消息传递;工作节点扩展决策;数据处理结束。本发明专利技术提出使用一致性哈希算法对图数据进行分区和存储,并设计实现了基于外存模式的分布式图处理系统,利用动态存储优化的策略,根据负载调整图的分区存储,实现图数据处理负载平衡,加快图数据处理速度,解决现有技术存在的负载不平衡,在图数据处理过程中造成热点而引起的总体性能下降问题,从而提高图处理的性能。

A distributed image processing method for storage optimization

The invention discloses a distributed graph processing method based on storage optimization, which belongs to the field of graph computation. The invention comprises the steps of data preprocessing, data partition, distribution chart partition data, data iteration processing, update message transmission, work node expansion decision and data processing end. The invention provides a consistent hash algorithm for partitioning and storage of map data, designed and implemented based on the distributed memory model graph processing system, using dynamic memory optimization, adjusted according to the load graph partition storage, map data processing load balancing, to speed up the map data processing speed, to solve the problems of existing technology is not supported the balance in the map data processing process in the hot spot and overall performance caused by the decline, so as to improve the performance of image processing.

【技术实现步骤摘要】
一种存储优化的分布式图处理方法
本专利技术属于图计算领域,更具体地,涉及一种存储优化的分布式图处理方法。
技术介绍
图作为经典的数据结构,通过点和边来表达复杂的数据关系,已广泛应用于社会各领域,包括互联网领域的社交数据分析与挖掘、化学领域的蛋白质交互、医学领域疾病暴发路径的预测、学术领域中文献的引用关系等,于是衍生出很多重要的算法,包括PageRank、最短路径,连通分支,极大独立集等。正因为图数据具有重要的意义,又需要大量的计算,于是出现了各种各样的图处理系统。首先是分布式内存模式图处理系统,包括Pregel、GraphLab等,这些系统先把图的所有信息都放入到内存中再开始处理,这种方式执行速度快,但代价大、成本高,在规模继续增大的图应用背景下,挑战越来越显著。且单一处理机可装配内存量较为有限,处理系统横向扩展只能横向补充处理机数量,这将不可避免地增加图分区,更进一步增加切边数量,增加处理机间通信压力,加剧网络IO延迟,由此将抵消横向扩展所提供的并行优势,拖累图处理性能。在横向扩展遭遇矛盾时,涌现出一批采取纵向扩展设计的单机外存模式图处理技术系统,包括GraphChi、X-Stream等,其利用外存相对于内存廉价且容量更易于扩展的优点,将图的大部分数据驻留于外存,仅在计算有依赖时装载少量数据进入内存,图的信息主要通过磁盘访问的收益,减少对多机之间通信的依赖,并且可以实现在内存等资源高度受限的普通机器上进行性能可以接受的图处理,但是这种系统的性能严重受到磁盘IO的影响。在大数据的时代,图数据的规模越来越大,对扩展性、并行性要求越来越高。图处理系统在结构上无论是采取单机纵向扩展还是集群横向扩展均面临各自的限制。就单机而言,其资源扩展,无论是计算能力还是内存资源、IO带宽均有不足,反观分布式架构,图的合理划分早已成为经典挑战,尽管好的数据划分能平衡计算负载、减少通信开销,从而加速处理,但这种划分本身是一个NP-hard问题,即使能实现近似算法,往往也要耗费大量的时间及资源进行预处理,得不偿失,有鉴于此,现有技术仍然仅进行简单的图数据划分,如Pregel的基于hash的划分,Gemini的按段连续划分。这种简单的图数据划分在分布式图处理过程中,难以避免负载不平衡的问题,造成动态变化的处理热点,成为拖累整个图迭代处理的短板,影响图处理总体性能。
技术实现思路
针对现有技术的以上缺陷,本专利技术提供一种存储优化的分布式图处理方法,对图数据进行分区存储和IO平衡,实现图数据处理负载平衡,加快图数据处理速度,解决现有技术存在的负载不平衡,在图数据处理过程中造成热点而引起的总体性能下降问题。为实现上述目的,本专利技术提供一种存储优化的分布式图处理方法,包括如下步骤:(1)初始化;将图处理系统处理机节点划分为一个主控节点和多个工作节点,各工作节点用于完成图处理的基本过程,实现图处理的计算模型;主控节点用于控制各个工作节点;主控节点根据用户初始的配置,可以是包含各个节点信息的文件,由这个文件来生成初始的消息路由表,所有工作节点保存所述消息路由表副本并与之同步更新;所述消息路由表用于记录各工作节点间的路由信息;主控节点控制整个图处理系统的执行,工作节点完成图处理的基本过程;所述路由信息,用于工作节点之间更新消息的传递和主控节点到各工作节点之间通信;主控节点根据所述消息路由表划分图数据,即以图结构表示信息的大规模数据,按图的结点id进行划分;划分块数与消息路由表中工作节点数相同;分块根据图结点总数平均划分;所述图的所有结点形成一个环状空间,图结点id的最小值和图结点id的最大值相邻;经过划分,各图结点分区呈现两种情况,一种分区是有连续的id,另一种分区是有两段连续id;对图按图结点“连续”的分段,这里的“连续”就是一个图分区在上述的环状空间是连续的;这是一种基于块的分区方法,本系统初始并不对图数据进行刻意的划分,不保证分区的平衡性,而是仅仅按将图结点平均的分到每个图分区上去,而且一个图分区拥有该分区点的所有出边;(2)图数据的分发;主控节点将步骤(1)划分得到的各图结点分区和该分区内的元数据根据一致性哈希算法发送到消息路由表中相应的工作节点,所述元数据包括全图的边数、全图的结点数、图的类型、各分区的边数、各分区的id、各分区的起始的图结点id、各分区结束的图结点id、图分区中点图结点id;后面再次分区会使用该信息;(3)迭代次数判别;各工作节点在主控节点控制下开始图数据迭代处理;迭代前,主控节点判别迭代次数是否达到迭代次数预设值,是则转步骤(6);否则,转步骤(4);这里主控节点起着一个屏障的作用,屏障即图处理过程中一个工作节点要等到所有的工作节点都完成一轮迭代之后才能进行下一轮迭代;(4)更新消息传递,各工作节点执行MGA计算,包括:首先,对图分区的每条边都执行一次Map操作,如PageRank算法对每一个图结点的权重按照出边的数量均分,每一个图结点在执行Map操作的同时产生一个更新消息,发送给对应的目的地址;更新消息为具体应用产生,更新消息结构包括需要传给邻结点的数据与一个目的地址,即邻接结点的地址;其次,各图结点执行一个Gather操作收集传递给该图结点所有的更新消息;第三,各图结点执行一个Apply操作,用收集的更新消息来改变这个结点的数据;所述更新消息的发送仅仅发生在工作节点之间,更新消息根据消息路由表发送给对应的工作节点;所述MGA计算即上述Map、Gather和Apply操作的简称,在图处理一轮迭代中,每一个图结点都要经历这三个阶段;在这一步中,各工作节点根据MGA计算模型(MGA是Map-Gather-Apply过程的简称,在图处理一轮迭代中,每一个图结点都要经历这三个阶段),对图分区的每条边都执行一次Map操作(根据具体应用产生更新消息),在工作节点中产生一个更新消息(更新消息结构包含一个传递给临结点的数据和一个目的地址),发送给对应的目的地址;然后,各图结点执行一个Gather操作(收集传递给该结点的所有的更新消息),将赋给该结点的更新消息收集,然后执行一个Apply操作(根据更新消息更新结点状态);因此在每一轮迭代中,工作节点需要将产生的更新消息发送给对应的工作节点,这种更新消息的发送仅仅发生在工作节点之间,更新消息根据分布式消息路由表发送给对应的工作节点;所有工作节点及主控节点都要保存一份分布式系统消息路由表,其中每一个工作节点保存的分布式系统消息路由表的是主控节点所保存的分布式系统路由表的副本,当主控节点的分布式系统消息路由表更新时,主控节点会将该消息路由表同步并更新所有的工作节点消息路由表;(5)扩展处理;主控节点根据所收集的工作节点运行状态,判别各工作节点负载是否均衡:是则,不进行分割和扩展,转步骤(3)进行下一轮迭代;否则对负载最大工作节点的图分区数据进行分裂,即对处理的图数据进行分割,然后横向扩展,用以消除热点,即处理数据耗时最长的那个节点,采用一致性哈希算法为工作节点分配图分区数据,达到负载调控的目的;然后更新消息路由表,转步骤(3)进行下一轮迭代;所述分割指将图结点分成两部分;所述横向扩展指加入一个工作节点,对分出的图数据进行处理;一致性哈希算法是为工作节点分区数据的操作,每一次添加工作节本文档来自技高网
...
一种存储优化的分布式图处理方法

【技术保护点】
一种存储优化的分布式图处理方法,其特征在于,包括如下步骤:(1)初始化;将图处理系统处理机节点划分为一个主控节点和多个工作节点,各工作节点用于完成图处理的基本过程,实现图处理的计算模型;主控节点用于控制各个工作节点;主控节点根据用户初始的配置,生成初始的消息路由表,所有工作节点保存所述消息路由表副本并与之同步更新;所述消息路由表用于记录各工作节点间的路由信息;主控节点控制整个图处理系统的执行,工作节点完成图处理的基本过程;所述路由信息,用于工作节点之间更新消息的传递和主控节点到各工作节点之间通信;主控节点根据所述消息路由表划分图数据,按图的结点id进行划分;划分块数与消息路由表中工作节点数相同;分块根据图结点总数平均划分;所述图的所有结点形成一个环状空间,图结点id的最小值和图结点id的最大值相邻;经过划分,各图结点分区呈现两种情况,一种分区是有连续的id,另一种分区是有两段连续id;(2)图数据的分发;主控节点将步骤(1)划分得到的各图结点分区和该分区内的元数据根据一致性哈希算法发送到消息路由表中相应的工作节点,所述元数据包括全图的边数、全图的结点数、图的类型、各分区的边数、各分区的id、各分区的起始的图结点id、各分区结束的图结点id、图分区中点图结点id;(3)迭代次数判别;各工作节点在主控节点控制下开始图数据迭代处理;迭代前,主控节点判别迭代次数是否达到迭代次数预设值,是则转步骤(6);否则,转步骤(4);(4)更新消息传递,各工作节点执行MGA计算,包括:首先,对图分区的每条边都执行一次Map操作,每一个图结点在执行MAP操作的同时产生一个更新消息,发送给对应的目的地址;其次,各图结点执行一个Gather操作收集传递给该图结点所有的更新消息;第三,各图结点执行一个Apply操作,用收集的更新消息来改变这个图结点的数据;所述更新消息的发送仅仅发生在工作节点之间,更新消息根据消息路由表发送给对应的工作节点;所述MGA计算即上述Map、Gather和Apply操作的简称,在图处理一轮迭代中,每一个图结点都要经历这三个阶段;(5)扩展处理;主控节点根据所收集的工作节点运行状态,判别各工作节点负载是否均衡:是则,不进行分割和扩展,转步骤(3)进行下一轮迭代;否则对负载最大工作节点的图分区数据进行分裂,即对处理的图数据进行分割,然后横向扩展,用以消除热点,即处理数据耗时最长的那个节点,采用一致性哈希算法为工作节点分配图分区数据,达到负载调控的目的;然后更新消息路由表,转步骤(3)进行下一轮迭代;(6)图数据处理结束,同时输出计算结果。...

【技术特征摘要】
1.一种存储优化的分布式图处理方法,其特征在于,包括如下步骤:(1)初始化;将图处理系统处理机节点划分为一个主控节点和多个工作节点,各工作节点用于完成图处理的基本过程,实现图处理的计算模型;主控节点用于控制各个工作节点;主控节点根据用户初始的配置,生成初始的消息路由表,所有工作节点保存所述消息路由表副本并与之同步更新;所述消息路由表用于记录各工作节点间的路由信息;主控节点控制整个图处理系统的执行,工作节点完成图处理的基本过程;所述路由信息,用于工作节点之间更新消息的传递和主控节点到各工作节点之间通信;主控节点根据所述消息路由表划分图数据,按图的结点id进行划分;划分块数与消息路由表中工作节点数相同;分块根据图结点总数平均划分;所述图的所有结点形成一个环状空间,图结点id的最小值和图结点id的最大值相邻;经过划分,各图结点分区呈现两种情况,一种分区是有连续的id,另一种分区是有两段连续id;(2)图数据的分发;主控节点将步骤(1)划分得到的各图结点分区和该分区内的元数据根据一致性哈希算法发送到消息路由表中相应的工作节点,所述元数据包括全图的边数、全图的结点数、图的类型、各分区的边数、各分区的id、各分区的起始的图结点id、各分区结束的图结点id、图分区中点图结点id;(3)迭代次数判别;各工作节点在主控节点控制下开始图数据迭代处理;迭代前,主控节点判别迭代次数是否达到迭代次数预设值,是则转步骤(6);否则,转步骤(4);(4)更新消息传递,各工作节点执行MGA计算,包括:首先,对图分区的每条边都执行一次Map操作,每一个图结点在执行MAP操作的同时产生一个更新消息,发送给对应的目的地址;其次,各图结点执行一个Gather操作收集传递给该图结点所有的更新消息;第三,各图结点执行一个Apply操作,用收集的更...

【专利技术属性】
技术研发人员:施展冯丹单玉祥李君浩毛艳张芸怡方交凤
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1