我們想分片加權有向圖,分區的加權有向圖(超過鍵/值數據庫)
用戶可以添加的節點和邊動態,首先,DB /圖形是空的。我們將節點和邊保存在一個鍵/值數據庫中(可能爲Redis):對於每個節點,我們將nodeId作爲鍵,並且引用節點的鍵的排序集合,sortSet中每個nodeId的得分是邊緣的重量。
(見問題就在這裏:Redis: Implement Weighted Directed Graph)
我們沒有一個平衡約束,在圖形上最常見的動作是Dijkstra算法,我們當時想(在網絡最大限度地減少I/O我們情況)
可能的解決方法:每個數據庫服務器包含其他的服務器採用IPS列表:
關鍵:服務器,值:250.1 ....
關鍵:服務器,值:.... 250.2
鍵:server(服務器),值:250.3 ....
每個節點ID將serverX.originalNodeId
什麼將是決定哪些節點出現在算法?我們應該支持重新定位節點嗎?
我猜測,幼稚的做法是,節點A添加到serverX其中argmax(在服務器X具有與節點A的邊緣節點#),只要serverX沒有完全佔據..
「碎片」?我一定會變老。這是什麼意思? –
http://en.wikipedia.org/wiki/Shard_(database_architecture) – DuduAlul