AMAZINGINDEX.COM 日报快照
54.9
VOL. 2026.08
2026.08.01
← 返回 2026.08.01 日报
日报快照 · Daily Snapshot
NO. 009

DataFusion 10GB 内存跑十亿边图算法

#ARTICLE HackerNews 2026.08.01
推荐指数 69.0 NO. 009 · 2026.08.01
发布2026/07/31Score56Comments12

作者基于 Apache DataFusion 实现了一套磁盘优先的图计算引擎,通过批量扫描替代随机访问,在 5GB 内存限制下完成十亿边图的 PageRank 计算。这为内存受限场景的大规模图分析提供了可直接复用的工程路径。

图计算领域长期被 GraphX、PowerGraph 等内存密集型框架主导,十亿边规模通常需要百GB 级集群。这个方案的核心洞察是:把图算法重新表达为 DataFusion 的 relational operator,利用其成熟的 spill 和 SMJ 能力,把复杂度下沉到执行引擎而非自己管理内存。

FairSpillPool 的 deadlock 和预排序数据无法被 SMJ 复用这两个问题,恰恰说明 DataFusion 在极端负载下的调度策略还有优化空间,社区如果能补上这块,可能成为单机图分析的默认选型。

如果你在做图数据库或风控图谱的 PoC,且客户环境内存严格受限,这个实现比上 Spark 集群便宜一个数量级,建议直接 fork 验证。

正面 13 条评论

核心争论:磁盘优先批量扫描 vs 内存映射/稀疏数组,哪种更适合内存受限的大规模图计算

slopblast

Really cool visualization, amazing how it resembles a neural network.

convolvatron

I'm pretty sure that's some stock output from CAIDA, looks like a traceroute graph from the inset

chrisweekly

> "I can compute PageRank on a directed graph with one billion edges (graph500-26 from the Graphalytics dataset) using 5 GB of memory. Alternatively, I can identify all the weakly connected components in a graph with two billion edges (twitter_mpi from the same dataset collection) using 10 GB of mem

替代方案: NetworkXIgraphGraphChiNeo4jMemgraphKuzuPolarsSparkIcebugLadybugDB
查看原文 →