智能圖形
將圖形擴展到集群中并保持性能。此獨特功能使您能夠探索圖形使用中的全新領域,并提供與單個實例設置幾乎相同的圖形遍歷性能。
當圖形的數據集超過ArangoDB單個實例上可以承載的限制時,需要進行縮放。然而,通過集群分割圖形會帶來新的問題。當使用標準圖時,遍歷可能涉及數據庫服務器之間的許多網絡跳。由于邊緣將遍歷帶到不同的機器上,性能會惡化。
智能圖和不相交智能圖通過優化碎片之間的數據分布來解決此問題,減少了需要網絡跳到其他服務器的邊緣數。
使用圖形縮放
ArangoDB的社區版可以在單個實例上處理大型數據集,允許您垂直擴展而不會出現問題。它還可以處理水平擴展到包含所有三種數據模型的集群。但是,在水平縮放時,通過集群分割圖形時,可能會遇到性能問題。
繪制一個處理大型數據集的圖,例如在物聯網、金融、通信、醫療保健或基因組學應用程序中可能會發現的內容。數據的自然分布涉及一系列高度互聯的社區,這些社區之間有許多邊緣。
圖1:3臺機器上沒有SmartGraphs的圖形切分
在這種規模上遍歷圖可以帶您穿過數十億甚至萬億個頂點。這樣的數據量太大,無法安裝在一臺機器上,每當邊緣將您從一臺機器帶到另一臺機器時,網絡連接上就會出現性能瓶頸。如果第二臺機器上的邊緣將您帶回第一臺機器或第三臺機器,情況會變得更糟。遍歷所需的網絡跳數越多,網絡延遲就越大,與內存計算相比,網絡延遲可能會變得非常昂貴。最終,性能下降到不再適合給定用例的程度。
使用SmartGraphs進行縮放
遍歷碎片圖時的性能問題與網絡延遲有關。遍歷所需的網絡躍點越多,從水平縮放中獲得的好處就越少。使用ArangoDBEnterprise版本,您將受益于SmartGraphs,通過使用應用層的智能性解決遍歷的網絡延遲問題。
圖形本身一無所知。但是,您的應用程序對圖形了解很多。在許多數據集中,存在高度互聯的社區,但這些社區之間的連接很少。例如,覆蓋客戶、區域或任何其他邏輯的集合(用于在應用層組織圖形)反過來可以用于在集群中分割圖形。
SmartGraphs利用應用層的智能性來優化它如何通過集群分割數據。例如,客戶ID、區域或任何其他適合您主要查詢的邏輯。通過這種智能,您可以將圖形中高度連接的社區分割到特定實例。
圖2:ArangoDBSmartGraph的分片圖
通過優化數據分布,SmartGraphs減少了遍歷所需的網絡跳數。內部測試表明,當遍歷碎片圖時,性能提高了40-120倍。
不相交智能圖
對于某些用例,您可以使用不相交的SmartGraphs進行進一步優化。不相交智能圖是一種針對用例的優化,這些用例必須處理大型分層圖或針對多個客戶圖的整體分析。在這兩種情況下,圖形數據集中的分支都是明確分開的。
不相交的SmartGraphs支持這些分支的自動切分,并禁止邊緣連接它們。這使得查詢優化器可以將整個查詢執行向下推到每個數據庫服務器,并大大提高圖形查詢的性能,如遍歷、模式匹配、最短路徑和k-最短路徑。
ArangoDB企業版本用戶現在可以處理完整的新用例或進一步優化當前基于圖形的應用程序。
審核編輯 :李倩
-
圖形
+關注
關注
0文章
71瀏覽量
19315 -
應用程序
+關注
關注
37文章
3285瀏覽量
57781 -
數據集
+關注
關注
4文章
1208瀏覽量
24749
原文標題:Arango DB Enterprise—智能圖形
文章出處:【微信號:哲想軟件,微信公眾號:哲想軟件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論