2016-11-09 52 views
0

我有一種情況,系統的每個用戶都可以擁有自己的百萬個頂點和更多邊的圖。我想將它作爲每個用戶的獨立圖來實現。我可以在一個Titan數據庫中創建多少個圖?

  1. 所以,如果有十億加用戶,有多少圖形可以在我集羣泰坦DB與DynamoDB後端創建 ?

  2. 我應該創建多個單獨的TitanDB實例並在存在限制時分散負載嗎?

我之所以需要這個是在圖形上最活動中的用戶擁有什麼。跨用戶活動可能較低且零星。

我看了這Titan Graph DB Limitations文件的侷限性,但它只談論頂點和邊緣的限制。另外,當我們在google上搜索時,所有的文檔鏈接都在DataStax主頁上,沒有任何信息,在那裏我可以找到文檔。

另外,你可以讓我知道如何根據需要創建單獨的圖形實例嗎?

+1

請注意,「缺少的」文檔問題現在已解決 - 它被[錯誤地刪除](https://groups.google.com/d/msg/aureliusgraphs/UhagCOsECqA/bY7iwdIwAQAJ)。 –

+0

感謝@stephenmallette的文檔鏈接。它又有最後一頁列出的限制,但沒有關於圖的數量。我想這一切都歸結爲TitanFactory.open()我們給配置細節。可能是我必須在那裏看看是否有一些設置可以限制它。 – Ram

回答

4

在同一個持久層中可以有多個圖。例如與卡桑德拉如果你有以下CONFIGS:

conf1: 
    storage.cassandra.keyspace=name1 
conf2: 
    storage.cassandra.keyspace=name2 
conf3: 
    storage.cassandra.keyspace=name3 

然後,你可以使用創建的持久層內的多個圖形:

graph1 = TitanFactory.open(conf1) 
graph2 = TitanFactory.open(conf2) 
graph3 = TitanFactory.open(conf3) 

如果你是問你怎麼在同創建多個圖表TitanFactory.open(),你不能直接做。

你可以做的是在同一個圖中創建幾個不連貫的圖。例如:

graph1 = TitanFactory.open(conf) 
//Create One Disconnected Graph 
v1 = graph.addVertex(); 
v2 = graph.addVertex(); 
v1.addEdge("edge", v2); 
//Create Another Disconnected Graph 
v3 = graph.addVertex(); 
v4 = graph.addVertex(); 
v3.addEdge("edge", v4); 

上述內容在同一圖形內有效地給出了兩個子圖。

我個人的建議是,如果你不需要圖形之間的任何連接,那麼你應該使用多個圖形。即graph1graph2graph3,如上所述。從長遠來看,這將使縮放更容易。當然要非常確定連接是不需要的。

+0

謝謝菲利普!這正是我所期待的。 – Ram