JanusGraph設計的目的是處理大圖,單機無論是在存儲和計算能力上都無法滿足大圖處理。大規模圖實時計算和分析是JanusGraph最基本的優勢。本節将讨論更多JanusGraph特有的優勢以及它底層支援的存儲方案。
轉自:
JanusGraph中文翻譯文檔1.1. JanusGraph 基本優勢
- 支援非常大的圖。JanusGraph通過添加機器橫向擴充叢集。
- 支援很大的并發事務處理和圖操作處理。通過添加機器橫向擴充JanusGraph的事務處理能力,可以在毫秒級别相應大圖的複雜查詢。
- 支援使用Hadoop架構進行全局圖分析和批量圖處理。
- 支援在很大的圖上對頂點和邊進行地理位置、數值範圍、全文搜尋。
- 原生支援Apache TinkerPop 描述的目前流行的屬性圖資料模型。
- 原生支援圖周遊語言Gremlin。
- 通過使用非程式設計的方式連接配接很容易與Gremlin Server內建
- 提供了很多圖級别配置選項用于調節性能。
- 以頂點為中心的索引提供頂點級查詢,以緩解臭名昭着的超級節點問題。
- 提供優化的磁盤表示,進而允許有效地使用存儲和通路速度。
- 基于 Apache 2 許可協定開放源碼。
1.2. JanusGraph 使用 Apache Cassandra的優勢
- 連續可用,沒有單點故障。
- 由于沒有主/從架構,是以對圖的讀/寫沒有瓶頸。
- 彈性可擴充性允許加入和移除機器。
- 緩存層確定記憶體中多次連續通路的資料可用。
- 通過添加叢集的機器來增加緩存的大小。
- 可以與 Apache Hadoop 內建。
1.3. JanusGraph 使用 HBase的優勢

- 與Apache Hadoop生态系統緊密內建。
- 原生支援強一緻性。
- 通過添加更多機器進行線性擴充。
- 嚴格的一緻性讀寫操作。
- 友善的基類用于支援Hadoop MapReduce作業操作HBase表。
- 支援使用JMX導出監控名額。
1.4. JanusGraph 和 CAP 理論
盡管你付出了最大的努力,你的系統仍會遇到很多的錯誤,以至于必須在減少輸出(如:停止響應請求)和降低收獲(如:響應不完整的答案)之間做出選擇。 此決定應基于業務要求。
--
Coda Hale使用資料庫時,應充分考慮CAP定理(C
=一緻性,A =可用性,P =可分區性)。 JanusGraph釋出包中支援3個後端:Apache Cassandra,Apache
HBase和Oracle Berkeley DB Java 企業版。 請注意,BerkeleyDB
JE是一個非分布式資料庫,通常僅與JanusGraph一起用于測試和探索。
HBase以輸出為代價優先考慮一緻性,即完成請求的機率。 Cassandra以收獲為代價優先考慮可用性,即響應的完整性(資料可用性/完整資料)。