Jiraph 简介
一、定位与背景
类型:基于 图计算引擎 的分布式数据库(非传统图数据库)。
设计目标:为大规模图分析(如 PageRank、社交网络)优化,而非 OLTP。
二、核心特性
1.数据模型:
顶点(Vertex)和边(Edge)组成的图结构。
顶点/边可携带任意属性(键值对)。
2.计算模型:
Bulk Synchronous Parallel (BSP):分阶段并行计算(类似 Apache Giraph)。
支持自定义图算法(用 Clojure 或 Java 编写)。
3.分布式:
基于 Hadoop/HDFS 的分布式存储。
横向扩展(Scale-out)处理超大规模图。
4.局限性:
不适合实时查询(高延迟)。
无事务支持。
三、Clojure 集成
算法示例:
(defn pagerank [graph](jiraph/run-algorithm graph(fn [vertex messages](let [new-rank (calculate-rank messages)](update-vertex vertex {:rank new-rank})))))
优势:直接使用 Clojure 编写图算法,避免 Java 冗长代码。
现状 :
- 学术性质:多见于研究论文,工业界应用较少。
- 现代替代:Apache Giraph、Neo4j(OLTP 场景)。