Jestem tak, jak wielu innych myśli o poprawnym podejściu do moich kolekcji w Mongo. Główne pytanie brzmi: w jaki sposób działa automatyczne dzielenie?Sharding by ObjectID, czy to właściwa droga?
Oficjalny dokument mówi: "MongoDB skaluje się w poziomie poprzez architekturę automatycznego dzielenia (partycjonowania)" i "Aby podzielić kolekcję, określamy wzór klucza odłamkowego". z uwagą "Ważne jest, aby wybrać odpowiedni klucz odłamu do kolekcji" :).
http://www.mongodb.org/display/DOCS/Sharding+Introduction#ShardingIntroduction-ShardKeys
http://www.mongodb.org/display/DOCS/Choosing+a+Shard+Key
Nasuwa się pytanie - "czy to prawy klawisz" (sharding przez objectID)?
db.runCommand({ shardcollection : "test", key : { _id : 1 }})
Co dzieje się wewnętrznie w Mongo? Jak Mongo podzieli dane na porcje w tym przypadku? Zakładając, że początkowo mam 10 milionów rekordów z 2 serwerami odłamkowymi - co dzieje się po stronie Mongo, kiedy chciałbym dodać jeszcze 2 serwer odłamków, gdy kolekcja osiągnie 20 milionów rekordów? Nie mogłem znaleźć takiego poziomu szczegółów w źródłach związanych z Mongo.
Biorąc pod uwagę charakter losowy wygenerowany automatycznie _id i jego struktura,
... http://www.mongodb.org/display/DOCS/Object+IDs ...
chciałbym shard przez najmniej znaczący bajt (zlecenia RTL) z kawałkami podzielona przez wartość 2-3 bajty - w ten sposób można łatwo odstąpić od 2^N serwerów odłamkowych - 2, 4, 8, .., 256 serwerów odłamkowych z mniej lub bardziej równomiernym obciążeniem każdego fragmentu i minimalną wymaganą konfiguracją. O ile rozumiem, Mongo obsługuje tylko sharding/chunking według ściśle określonych zakresów i że mój pomysł nie zadziała. Czy to prawda?
Tak, jestem w fazie aktywnych badaczy ch dla nowego projektu - przejrzy wszystkie moje pytania i zaakceptuje najbardziej odpowiednie podczas badań. –
@XtraCoder jak poszły twoje badania? Ta odpowiedź wydaje się godna przyjęcia. –