一种基于图流实时负载伸缩服务的层次化图模式估计系统技术方案

技术编号:39648847 阅读:10 留言:0更新日期:2023-12-09 11:17
本发明专利技术公开了一种基于图流实时负载伸缩服务的层次化图模式估计系统,包括主控器

【技术实现步骤摘要】
一种基于图流实时负载伸缩服务的层次化图模式估计系统


[0001]本专利技术属于图模式挖掘的模式计数领域,具体涉及一种基于图流实时负载伸缩服务的层次化图模式估计系统


技术介绍

[0002]模式计数算法是一种针对某种具体图模式,在一个具有一定规模的图数据集中定位查找的计数方法,基本上可以分为精确计数和近似计数两大类

但随着对图模式计数需求的不断变化,以及图数据规模的逐渐增大,精确计数困难,应用面已经逐渐减小,而近似估计成为主流

以三角形模式计数为例,主要的近似模式计数算法分为以下几类:
[0003]静态图计数:静态图是一个不会随着时间逐渐变化的确定的图数据

通过已知完整图数据可以获得一些显示图数据规律的先验数据,比如顶点的度数,度分布等

静态图的估计方法有邻域抽样和楔形抽样

邻域抽样从整个图数据集中随机挑选一条边,在其邻接的边流中随机挑选另外一条边,每条边在被挑选时都拥有固定的被挑选概率,根据是否存在第三条边能形成闭合,判定抽样是否成功,成功则以相应概率估计计算

与邻域采样思想类似的楔形采样则是在图中,直接采样楔形
(
楔形是指未闭合的三角形,即拥有公共顶点的相邻两条边
)
,如果存在第三条边能形成闭合,计数加一,最后根据计数值除以采样的楔形数量占数据集楔形总数的比值估算结果

两种抽样方法都存在的最大问题就是抽样形成的误差波动较大,需要大量反复估计求取平均值来平衡误差,同时静态图计数方法也无法应用于动态图中

[0004]动态图计数:动态图数据因为会不断变化,无法提前获取先验知识,因此对抽样算法更加苛刻

早期动态抽样方法以一个固定的概率对动态图的每条边进行概率抽样,过程中对每条边流查找其在抽样子图中形成的模式数,再除以模式存在的概率估计整体数量,图数据越大,则抽样的子图越大,对内存需求也将增大

当前的动态抽样算法大都是以水池抽样
(Reservoir sampling)
为基础演变改进

水池抽样设置一个水池,初始为空,每当有数据流入时存储下来,当水池蓄满时,则以概率采样新数据,并替换水池中的随机旧数据

水池抽样随着图数据增大,抽样比例逐渐减小,造成误差波动逐渐增大

[0005]分布式计数:将图数据划分为多个子图数据,在分布式节点上并行完成图模式的快速估计

传统的估计方法将图边流简单的平均分配在节点上或者根据顶点平均分配,前者由于各个节点的子图数据不完整,不独立,不同节点间需要相互通信确认某些边流的存在,产生了额外的通信损耗

后者则由于不同顶点度数差异可能极大,造成节点负载不均衡

随着图数据划分方法改进,目前的分布式计数在通信损耗和负载均衡上都有了很大的改善,但是当整个系统数据输入量较小时,节点的闲置也会造成计算资源的浪费,计算成本较大

[0006]GPU
并行计数:一种可以合理利用
GPU
多线程实现并行匹配的计数方法,将
GPU
线程分组,同组并发查找同一个模式匹配任务

由于
GPU
合并内存访问机制
(GPU
全内存带宽只能通过合并内存访问来实现,即所有线程访问连续的内存地址

相比之下,通过调度每个线程
来读取相隔很远的地址造成的跨步内存访问,将导致更低的吞吐量
)
,契合
GPU
内存访问机制的模式匹配算法尤为重要,目前常用的三角形模式匹配算法有合并路径算法

二分搜素算法和基于哈希的匹配方法

[0007]通过上述几类模式计数算法不难看出,不同模式计数方法对于不同的应用场景,它们各有优劣

但是没有一种模式计数方法是可以在保证计数的准确性和效率的同时充分利用计算资源,不合适的模式计数方法可能会导致性能显著下降

业务人员需要提前根据计算资源,图数据性质和规模进行分析权衡后再进行选择


技术实现思路

[0008]本专利技术的目的在于克服现有技术的不足,提供一种充分利用了单机的计算资源,在减少计算成本的同时,能够获得良好计算性能的基于图流实时负载伸缩服务的层次化图模式估计系统

[0009]本专利技术的目的是通过以下技术方案来实现的:一种基于图流实时负载伸缩服务的层次化图模式估计系统,包括主控器

估计器

查找器三个层次模块;
[0010]主控器负责将从数据源接收的边流分发给下层的估计器,并收集聚合估计器返回的估计结果;同时监听整个系统的实时负载,根据需要创建或者回收临时估计器;
[0011]估计器负责对将主控器分配的边流做估计计数和抽样存储,将计数结果返回给主控器;一个估计器对应一个工作线程,由主控器创建和维护,包括主估计器和临时估计器两种;
[0012]查找器负责查找边流形成的模式,查找器会根据模式匹配算法做模式匹配,查找实际当前子图的模式数的增量;每个查找器拥有
GPU
的一组线程,在匹配工作量小于设定阈值时,查找器会直接通过
CPU
获取匹配结果,工作量不小于设定阈值时调用
GPU
进行快速并行匹配

[0013]所述主控器和估计器都拥有缓冲队列,主控器缓冲队列用于存放还没有分发到估计器的边流,估计器缓冲队列用于存放还没有进行抽样估计工作的等待边流;系统的实时负载是根据主控器缓冲队列的长度确定的,当一段时间内主控器缓冲队列的平均长度不低于预设的上限数值时,判定为系统负载过大,创建临时估计器;当一段时间内主控器缓冲队列的平均长度都不高于预设的下限数值时,判定系统负载低,回收临时估计器

[0014]所述估计器中使用水池的概念存储数据,水池是一个
set
哈希表,一个边被映射为一个自定义对象存储在水池中,同时存储在水池中的所有边组成了一个邻接表集合存储系统,邻接表集合存储系统和估计器内存中的数据是不相交的,二者共同组成了估计器拥有的所有数据;
[0015]当估计器对一条边执行抽样估计算法时,先估计该条边的加入会增量多少模式数;之后执行抽样阶段,以一定概率确定是否要抽样该边,若该边被抽样则放入水池;水池存满以后新的被抽样边会不断替换旧边,在完成每条边的抽样工作后,估计器都会查询当前水池的抽样比例,当抽样比例低于预设阈值时,若估计器为主估计器则为该估计器分配一个新的水池,后续的抽样估计算法在新水池中进行;若为临时估计器则主控器不再对临时估计器分配任务;每当创建新的水池时,将旧水池中的边流数据存入存储器中,在估计器的内存中只保留最新的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于图流实时负载伸缩服务的层次化图模式估计系统,其特征在于,包括主控器

估计器

查找器三个层次模块;主控器负责将从数据源接收的边流分发给下层的估计器,并收集聚合估计器返回的估计结果;同时监听整个系统的实时负载,根据需要创建或者回收临时估计器;估计器负责对将主控器分配的边流做估计计数和抽样存储,将计数结果返回给主控器;一个估计器对应一个工作线程,由主控器创建和维护,包括主估计器和临时估计器两种;查找器负责查找边流形成的模式,查找器会根据模式匹配算法做模式匹配,查找实际当前子图的模式数的增量;每个查找器拥有
GPU
的一组线程,在匹配工作量小于设定阈值时,查找器会直接通过
CPU
获取匹配结果,工作量不小于设定阈值时调用
GPU
进行快速并行匹配
。2.
如权利要求1所述的基于图流实时负载伸缩服务的层次化图模式估计系统,其特征在于,所述主控器和估计器都拥有缓冲队列,主控器缓冲队列用于存放还没有分发到估计器的边流,估计器缓冲队列用于存放还没有进行抽样估计工作的等待边流;系统的实时负载是根据主控器缓冲队列的长度确定的,当一段时间内主控器缓冲队列的平均长度不低于预设的上限数值时,判定为系统负载过大,创建临时估计器;当一段时间内主控器缓冲队列的平均长度都不高于预设的下限数值时,判定系统负载低,回收临时估计器
。3.
如权利要求1所述的基于图流实...

【专利技术属性】
技术研发人员:李运翔薛瑞尼江昊林王益龙
申请(专利权)人:电子科技大学
类型:发明
国别省市:

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

1