說我有實體存儲。自動取款機可以將它們視爲斑點。我希望實體存儲在一個集羣上。實體的鍵/ ID是一個(x,y)整數座標。所以它們基本上位於二維網格中。更新任何實體需要鎖定它的4個鄰居。既然我想要冗餘,我認爲最好的辦法是使用冗餘來確保鄰居總是可用的。這裏是分佈可能是什麼樣子:是否有一個集羣數據庫允許將數據沿兩個維度分組?
1 2 3 4 5 6
1 [F][F][E][E][G][G]
2 [F][F][E][E][G][G]
3 [D][D][A][A][B][B]
4 [D][D][A][A][B][B]
5 [H][H][C][C][I][I]
6 [H][H][C][C][I][I]
如果A,B,C,d,E,F,G,H,I是服務器,那麼A擁有(3,3)的實體,它需要知道屬於其他服務器的(2,3)和(3,2)。以4個塊爲單位排列,這總是會使兩側屬於其他服務器。使用三重冗餘,我想強制所有鄰居的本地副本。這實際上會使我具有線性可擴展性。
是否有一個數據庫允許我定義分片/複製密鑰,以便我可以指定這樣的分佈,或者是否存在將x和y組合成可用於實現此目的的單個值的方法?
我所追求的是低延遲和冗餘,而不是節省驅動器空間。我的實體有一個「參考位置」屬性;事務只能訪問鄰居,但對一個實體使用相同的密鑰,並且它的鄰居會導致每個人都擁有相同的密鑰。
謝謝你的回覆。不幸的是,你不明白爲什麼我想用這種方式分發我的數據;沒有解釋是我的錯。我將把我的解釋作爲一個問題編輯。 –