如何在图数据库上实现图计算框架

图数据库解决的是图数据的查询问题,图计算框架解决的是图计算的问题,首先我们要搞清楚二者如何区分,再讨论如何结合。


图查询:主要面向的是路径查询。比如从一点出发的两跳邻居;再如从点A出发3跳内和B点的路径;


图计算:对全图节点进行迭代运算。比如PageRank,需要每一个节点从一开始就要参与计算;再如计算图中存在的联通子图;再如计算图中度数大于一百万的节点。


图计算实际上是迭代计算,因此图计算框架实际上是迭代计算框架,其核心工作是对所有节点进行多次迭代。


因此,目前的图计算框架基本与底层存储脱离是有其合理性的,因为迭代计算必须要和磁盘脱离,否则IO极高导致集群性能急剧下降,而把数据全部load到内存中相当于重新构建了新的集群。相应的优化点有:1)计算之前需要把整个图load到计算框架对应的节点中,这样带来的问题就是更新的数据不能被感知到,如何实现增量更新;2)BSP框架的超步同步,需要等待所有节点完成才能进行下一步,延迟较高导致吞吐率降低。如何去掉。


其他问题:

1、GC问题。如何优化,仅仅在使用层面?;

2、数据切分模型。GraphX有多种数据分配模型,用户可以自己选择,有没有更好的方式;

3、如何添加辅助索引加快遍历过程。


从上面可以看出,图计算框架并不合适图遍历,那么基于图遍历的计算有哪些呢?比如计算两点间最短路径,如果使用Gremlin的接口是可以实现的,但是效率上有些问题。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值