2013-08-01 63 views
1

我正在研究一個網絡應用程序,它將有數十億個圖形,每個圖形的大小不超過500個節點。我試圖用Neo4j來存儲我所有的圖形數據。我一直在研究如何縮放Neo4j來達到我的目的。經過大量研究,我尋求SO的幫助,解決我不清楚的問題。請原諒,如果我的問題已經在互聯網上,我無法弄清楚。我可以從我的服務器創建兩個neo4j數據庫嗎?

  1. 我的所有圖形都很小且沒有連接。所以水平分割對我來說不是問題。但我沒有在互聯網上的任何地方找到我如何創建多個Neo4j數據庫(非實例)來支持我的Web應用程序。有沒有辦法做到這一點?如果這是不可能的,它會在不久的將來被包括在內嗎? 編輯:正如在下面的評論中提到的,我已經使用標籤來識別我的數據庫中的小圖,但是與水平分割相關的每篇文章都提到了將圖優化並將它們存儲在單獨的數據庫中。截至目前,我在配置過程中對neo4j-server.properties中的數據庫路徑'/data/graph.db'進行了硬編碼。有沒有辦法讓我可以爲兩個不同的dbs硬編碼這樣的兩條路徑,並且在飛行中決定連接哪個路徑?

  2. 對於單個圖形數據庫,我讀了Cache Sharding和HA clustering組合以實現高性能。所有文章都提到每個數據庫實例都可以處理很多請求。任何人都可以給我每個數據庫實例(HA集羣的從屬服務器)現在可以處理的請求的近似數量,以及它在不久的將來會增加嗎?

該圖是我的網絡產品的唯一,我希望能夠實現最高的性能。請幫助我更好地瞭解Neo4j,看看它是否適合我的目的。對其他數據庫的任何建議都可以滿足我的目的,這是非常受歡迎的感謝您的耐心等待! :)

回答

1

我可以回答1. neo4j db中的獨立圖或圖島的想法可以使用lables啓動Neo4j 2.0來實現。

+1

Neo4j 2.0實現了許多新功能,幫助我實現了這些要求。 Neo4j標籤允許您唯一標識特定類型的節點。雖然遺留索引(對數據庫模式的索引)仍然存在,但能夠在特定標籤(2.0中引入)上的特定屬性上進行索引的Neo4j功能增加了RTO密碼查詢結果,這顯着證明了標籤化是我的正確方法問題在第一季度。按照第二季度的報道,它很大程度上取決於你的架構,正如Peter Neubauer在下面的答案中指出的那樣!感謝您的幫助! :) –

0

對於2),它高度依賴於查詢類型和您可以緩存讀取或不讀取的天氣。通常,您將設置HA羣集,並將相同數據附近的查詢引導至相同的羣集節點,從而達到熱緩存。你有關於你的域名,數據量等更多細節嗎?

+0

我的數據庫將有數十億的用戶節點,每個用戶節點都有自己的500個小節點。我正在考慮將用戶節點及其各自的圖分解爲兩個數據庫,作爲縮放解決方案。由於用戶本地數據存在於單個數據庫中,因此我可以利用熱緩存。我想知道這些數據庫實例每次將支持多少個數據庫連接,以及訪問兩個Neo4j數據庫並將查詢啓動到特定數據庫的可能方法。任何指針都會很有幫助。謝謝 –

相關問題