PEGASUS:大规模图处理系统的创新与实践
1. 引言
如今,图数据的规模极其庞大。以在线服务为例,网络图谱的链接数量至少达 1 万亿,Facebook 有超 10 亿用户和 1400 亿条好友关系,Twitter 在 2009 年有超 4000 万用户和 15 亿条社交关系。如此海量的数据带来了新机遇,但也带来了计算挑战,像社区检测、寻找连通分量、计算 PageRank 及其变体、最短路径和半径计算等常见图计算任务,在处理大规模图数据时变得极具挑战性。
PEGASUS 是一个开源的 Peta 图挖掘库,它能执行典型的图挖掘任务,如计算图的直径、每个节点的半径、寻找连通分量以及计算节点的重要性得分。其核心思想是将矩阵 - 向量乘法作为软件工程师的主要操作,引入了一组不同的运算符来解决各种图挖掘任务,并在 MapReduce 中优化了矩阵 - 向量乘法的实现。自 PEGASUS 推出后,其他大规模图处理系统也相继问世,如 Google 的 Pregel、LinkedIn 的 Giraph 和 GraphLab 等。
2. 相关工作
2.1 现实世界网络的结构
2.1.1 网络图谱的蝴蝶结结构
1999 年,Andrei Broder 等人基于 AltaVista 搜索引擎的页面和链接索引,提出了网络图谱的蝴蝶结结构模型。该结构中存在一个巨大的强连通分量(SCC),其余 SCC 相对于这个巨大 SCC 的位置如下:
- IN:能到达巨大 SCC 但不能从其到达的顶点。
- OUT:能从巨大 SCC 到达但不能到达它的顶点。
- Tendrils:可从 IN 到达但不能到达巨大 SC