面向实时数据分析的流式图数据处理系统及方法_2

文档序号:9730256阅读:来源:国知局
[0050] S1、将已分配到每个计算分区的热点数据按照cost从大到小排序,确定出总cost 最大的和总cost最小的计算分区;
[0051] S2、确定出k,满足排在前k的热点数据的cost总和大于总cost最小的计算分区的 总cost;
[0052] S3、若k小于总cost最小的计算分区的热点数据个数,将cost排在第k+1的热点数 据迁移到总cost最小的计算分区上,继续执行SI;
[0化3] S4、否则,循环终止。
[0化4] 进一步地,还包括;
[0055] 接收到应用的注册请求后,存储所述应用的计算执行频率和上一次的执行时刻:
[0056] 检测到有多个应用发出计算请求时,调度多个应用依次执行,在调度每一应用执 行时,所述根据所有计算分区中的数据得到当前图结构数据,包括:
[0057] 通知每个计算分区将自身的更新操作缓存区中从上一次执行时刻到当前时刻的 全部数据块合并到图结构存储区中,将所有计算分区的图结构存储区中的数据进行合并得 到所述当前图结构数据。
[0058] 本发明提供的面向实时数据分析的流式图数据处理系统及方法,通过原始数据分 析器将图更新数据发送到热点检测器,同时根据数据迁移记录表和基于索引的切分方法将 图更新数据切分为N个数据块,将N个数据块发送到对应的计算分区的更新操作缓存区中, 热点检测器检测该图更新数据是否为热点数据,热点负载均衡器周期性地对热点检测器在 预设时间段内检测到的所有热点数据进行热点负载均衡,根据热点负载均衡进行计算分区 之间的数据迁移,并将进行数据迁移的热点数据通知给原始数据分析器存储在数据迁移记 录表中,最后协同调度器在检测到有应用发出计算请求后,根据所有计算分区中的数据得 到当前图结构数据,调用应用的算法并将当前图结构数据作为输入执行应用的算法。由于 对图更新数据进行了热点检测与热点数据迁移,避免了不同计算分区的计算倾斜,因此保 证了数据处理的高效性。
【附图说明】
[0059] 为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术 描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一 些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可W根据运 些附图获得其他的附图。
[0060] 图1为现有的一种流式图数据处理系统结构图;
[0061] 图2为本发明面向实时数据分析的流式图数据处理系统实施例一的结构示意图;
[0062] 图3为本实施例中基于化sh的二维图切分方法的切分过程示意图;
[0063] 图4为本实施例中第一次执行负载均衡操作的示意图;
[0064] 图5示出了执行上述算法的结果示意图;
[0065] 图6为协同调度器调度两个应用时的一个计算分区中的数据块合并示意图;
[0066] 图7为本发明面向实时数据分析的流式图数据处理方法实施例一的流程图。
【具体实施方式】
[0067] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本 发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例, 而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳 动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0068] 图2为本发明面向实时数据分析的流式图数据处理系统实施例一的结构示意图, 如图2所示,本实施例的系统可W包括:原始数据分析器10、热点检测器11、热点负载均衡器 12、协同调度器13和N个计算分区,每一个计算分区包括用于存储静态图数据的图结构存储 区和更新操作缓存区。更新操作缓存区用于存储流式图的更新数据,每一个时间片中得到 的更新数据按顺序分数据块保存。
[0069] 其中,原始数据分析器10用于:将一个时间片内接收到的流式更新数据转化为图 更新数据(比如添加一个点,改变一条边的属性等),并将图更新数据发送到热点检测器,同 时根据数据迁移记录表和基于索引的切分方法将图更新数据切分为N个数据块,将N个数据 块发送到对应的计算分区的更新操作缓存区中,每个数据块与计算分区一一对应,数据迁 移记录表存储在原始数据分析器10中,用于存储进行了数据迁移的热点数据。
[0070] 其中,为了使图的存储结构能够随机存取W支持图的细粒度与高效率更新,本实 施例中采用基于化sh的二维图切分方法,且方法使用了点切分方式。
[0071 ]本实施例中的切分方法基于W下的计算模型:给定一个N X N的图的稀疏邻接矩阵 E(X轴表示边的起点,Y轴表示边的终点)W及Ρ = Κ X L个计算分区,最终目标是将运些边均 匀的分配到运Ρ个计算分区中同时最小化每个点被切分存储到不同分区的个数。因为运Ρ个 计算分区被划分为了一个矩阵的形式,所W任意点被切分存储到不同分区的个数得到了限 审IJ,由此造成的通信开销也就得到了约束。
[0072] 本实施例中的切分方法具体可W分为两步:首先,用边的起点的标识对Κ求化sh 值,运样就根据起点将所有的边初步分为了 K个部分,之后对运K个部分进一步切分,用每一 条边的终点的标识对L求化sh值,将每一部分又进一步切分为了 L个部分,至此,所有的边被 均匀的分配到了运P个计算分区中,而且对于每一个点,在最坏情况下它需要存储的副本个 数是K+L-1。
[0073] 图3为本实施例中基于化sh的二维图切分方法的切分过程示意图,如图3所示,本 实施例中W将一个8X8的稀疏邻接矩阵中表示的边切分到2X2个计算分区中的过程,不同 的形状表示了不同的计算分区,图3(a)示出了原始的邻接矩阵,图3(b)示出了经过第一步 切分之后的结果,图3(c)示出了经过第二步切分之后的结果。
[0074] 热点检测器11用于检测该图更新数据是否为热点数据。具体地,按照如下操作检 测:
[0075] 统计图更新数据在t到t+1时刻的更新次数UT(t+l),通过如下公式计算图更新数 据在t+1时刻的热度HR(t+l):
[0076] HR(t+l)=AHR(t)+UT(t+l)〇
[0077] 接着通过公式:
计算图更新数据的标准分score。
[0078] 其中,λ为热度的衰减系数,λ<1,μα)与〇(t)分别为t时刻皿(t)的均值与标准差。 若score的值大于预设阔值,则确定图更新数据是热点数据,若否,则确定图更新数据不是 热点数据。
[0079] 热点负载均衡器12用于周期性地对热点检测器11在预设时间段内检测到的所有 热点数据进行热点负载均衡,根据热点负载均衡进行计算分区之间的数据迁移,并将进行 数据迁移的热点数据通知给原始数据分析器10。热点数据的负载均衡的根本目标是让每个 分区的热点的总计算开销尽量保持接近,考虑到热点数据的持续性W及减少性能开销,热 点数据的检测与负载均衡会在一个相对较长的时间周期内执行一次(比如30分钟),具体 地,热点负载均衡器12首先通过公式cost =皿· AEdges%十算在预设时间段内检测到的所 有热点数据的计算开销cost,其中,AEdges为热点数据的邻接的边的数目,α为传播系数,经 过大量实验本实施例中将其设定为1.5,预设时间为预设的周期,例如设为30分钟。接着确 定是否是第一次执行负载均衡操作,若是,则将全部热点数据按照cost从大到小排序,遍历 全部热点数据,对于每个热点数据,将其分配给当前已分配的总计算开销最小的计算分区。 本发明中称上述算法为贪屯、算法,图4为本实施例中第一次执行负载均衡操作的示意图,如 图4所示,4个计算分区,11个热点数据的cost从大到小排序,执行负载均衡操作后,每个热 点数据分配到4个计算分区如图4所示。
[0080] 若否,采用基于贪屯、和交换的负载均衡算法,循环执行如下操作:
[0081] S1、将已分配到每个计算分区的热点数据按照cost从大到小排序,确定出总cost 最大的和总cost最小的计算分区;
[0082] S2、确定出k,满足排在前k的热点数据的cost总和大于总cost最小的计算分区的 总cost;
[0083] S3、若k小于总cost最小的计算分区的热点数据个数,将cost排在第k+1的热点数 据迁移到总cost最小的计算分区上,继续执行S1;
[0084] S4、否则,循环终止。
[0085] 图5示出了执行上述算法的结果示意图,如图5所示,第一次循环过程将计算分区0 中计算开销为2的热点迁移到了计算分区1中,第二次循环过程将计算分区2中计算开销为3 的热点迁移到了计算分区3中,第Ξ次循环过程将计算分区0中计算开销为1的热点迁移到 了计算分区2中,至此算法结束。
[0086] 原始数据分析器10还用于将进行数据迁移的热点数据记录在数据迁移记录表中, 运样可保证图更新数据切分的正确性。
[
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1