Chúng tôi muốn Shard một đồ thị có hướng trọng,Phân vùng một đồ thị có hướng trọng (trên cơ sở dữ liệu/giá trị key)
Người dùng có thể thêm các nút và các cạnh động, lúc đầu DB/Graph trống.
Chúng tôi giữ các nút và cạnh trong cơ sở dữ liệu khóa/giá trị (có thể là Redis): Đối với mỗi nút, chúng tôi sẽ có nodeId làm khóa và một tập hợp các khóa của các nút được tham chiếu điểm của mỗi nútId trong SortSet là trọng lượng của cạnh.
(Xem câu hỏi liên quan mà ở đây: Redis: Implement Weighted Directed Graph)
Chúng tôi không có một hạn chế cân bằng, các hành động phổ biến nhất trên đồ thị là Dijkstra, và chúng tôi đã muốn hạn chế tối đa I/O (mạng trong của chúng tôi trường hợp)
có thể giải pháp: mỗi máy chủ DB chứa một danh sách các máy chủ khác với địa chỉ IP:
chính: server1, giá trị: .... 250,1
chính: server2, giá trị: .... 250.2
chính: server3, giá trị: .... 250,3
và mỗi nodeID sẽ được serverX.originalNodeId
Điều gì sẽ là các thuật toán mà quyết định những nút đi đâu? chúng ta có nên hỗ trợ định vị lại một nút không?
Tôi đoán rằng cách tiếp cận ngây thơ sẽ là, thêm nút A để serverX nơi argmax (# các nút trong X server có cạnh với nút A), miễn là serverX không chiếm hoàn toàn ..
"Shard"? Tôi phải già đi. Điều đó có nghĩa là gì? –
http://en.wikipedia.org/wiki/Shard_(database_architecture) – DuduAlul