1. 程式人生 > >分散式圖資料庫JanusGraph-簡介

分散式圖資料庫JanusGraph-簡介

JanusGraph設計的目的是處理大圖,單機無論是在儲存和計算能力上都無法滿足大圖處理。大規模圖實時計算和分析是JanusGraph最基本的優勢。本節將討論更多JanusGraph特有的優勢以及它底層支援的儲存方案。

1.1. JanusGraph 基本優勢

  • 支援非常大的圖。JanusGraph通過新增機器橫向擴充套件叢集。
  • 支援很大的併發事務處理和圖操作處理。通過新增機器橫向擴充套件JanusGraph的事務處理能力,可以在毫秒級別相應大圖的複雜查詢。
  • 支援使用Hadoop框架進行全域性圖分析和批量圖處理。
  • 支援在很大的圖上對頂點和邊進行地理位置、數值範圍、全文搜尋。
  • 原生支援Apache TinkerPop 描述的當前流行的屬性圖資料模型。
  • 原生支援圖遍歷語言Gremlin。
  • 通過使用非程式設計的方式連線很容易與Gremlin Server整合
  • 提供了很多圖級別配置選項用於調節效能。
  • 以頂點為中心的索引提供頂點級查詢,以緩解臭名昭著的超級節點問題。
  • 提供優化的磁碟表示,從而允許有效地使用儲存和訪問速度。
  • 基於 Apache 2 許可協議開放原始碼。

1.2. JanusGraph 使用 Apache Cassandra的優勢

cassandra-small

  • 連續可用,沒有單點故障。
  • 由於沒有主/從架構,因此對圖的讀/寫沒有瓶頸。
  • 彈性可擴充套件性允許加入和移除機器。
  • 快取層確保記憶體中多次連續訪問的資料可用。
  • 通過新增叢集的機器來增加快取的大小。
  • 可以與 Apache Hadoop整合。
  • 基於 Apache 2 許可協議開放原始碼。

1.3. JanusGraph 使用 HBase的優勢

hbase_logo

  • 與Apache Hadoop生態系統緊密整合。
  • 原生支援強一致性。
  • 通過新增更多機器進行線性擴充套件。
  • 嚴格的一致性讀寫操作。
  • 方便的基類用於支援Hadoop MapReduce作業操作HBase表。
  • 支援使用JMX匯出監控指標。
  • 基於 Apache 2 許可協議開放原始碼。

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以收穫為代價優先考慮可用性,即響應的完整性(資料可用性/完整資料)。

 

歡迎加:知識圖譜交流QQ群:829449428