Soy como muchos otros que están pensando acerca del enfoque correcto para fragmentar mis colecciones en Mongo. La pregunta principal es: ¿cómo funciona el auto sharding?Sharding por ObjectID, ¿es el camino correcto?
El documento oficial dice: "MongoDB escala horizontalmente a través de una arquitectura de auto-sharding (partición)" y "Para particionar una colección, especificamos un patrón de clave de fragmento". con la nota "Es importante elegir la clave de fragmento correcta para una colección" :).
http://www.mongodb.org/display/DOCS/Sharding+Introduction#ShardingIntroduction-ShardKeys
http://www.mongodb.org/display/DOCS/Choosing+a+Shard+Key
Ahora la pregunta es - "es esta tecla derecha" (por sharding de objeto)?
db.runCommand({ shardcollection : "test", key : { _id : 1 }})
¿Qué ocurre internamente en Mongo? ¿Cómo Mongo dividirá los datos en fragmentos en este caso? Asumiendo que inicialmente tengo 10 millones de registros con 2 servidores shard, ¿qué sucede en el lado de Mongo cuando me gustaría agregar 2 servidores shard más cuando la colección alcanza los 20 millones de registros? No pude encontrar ese nivel de detalles en ninguna parte de las fuentes relacionadas con Mongo.
Teniendo en cuenta la naturaleza aleatoria de _id autogenerado y su estructura,
... http://www.mongodb.org/display/DOCS/Object+IDs ...
me gustaría fragmentar por el byte menos significativo (orden de RTL) con trozos dividido por el valor de 2-3 bytes: esto proporcionaría una manera fácil de fragmentar por 2^N de servidores shard - 2, 4, 8, .., 256 servidores shard con una carga más o menos pareja en cada fragmento y con la configuración mínima requerida. Por lo que tengo entendido, Mongo solo admite sharding/chunking por rangos explícitamente definidos y mi idea no funcionará. Es verdad?
Sí, estoy en la fase de de investig activo ch para el nuevo proyecto: revisará todas mis preguntas y aceptará las más aplicables cuando se realice la investigación. –
@XtraCoder ¿cómo fue tu investigación? Esta respuesta parece digna de ser aceptada. –