Je travaille sur une implémentation de test MongoDB dans laquelle j'essaie d'insérer en bloc 1 000 000 enregistrements dans une collection et de la répartir de façon égale entre deux fragments. Mes essais initiaux ont vu un fragment contenant 995760 enregistrements et l'autre fragment contenant seulement 4251 enregistrements. J'ai essayé de pré-séparer mais cela n'a rien changé. Je suis nouveau au concept de sharding et apprécierais n'importe quelle aide sur le sujet.Le partitionnement de MongoDB ne distribue pas de manière optimale
MISE À JOUR:
Ma clé tesson dans le champ "numéro" qui est un entier que j'ai de 1 - 999999
Statut:
{
"sharded" : true,
"ns" : "test.test_collection",
"count" : 999999,
"numExtents" : 21,
"size" : 43982976,
"storageSize" : 210247680,
"totalIndexSize" : 60396112,
"indexSizes" : {
"_id_" : 32466896,
"number_1" : 27929216
},
"avgObjSize" : 43.983019983019986,
"nindexes" : 2,
"nchunks" : 239,
"shards" : {
"firstset" : {
"ns" : "test.test_collection",
"count" : 995754,
"size" : 43813176,
"avgObjSize" : 44,
"storageSize" : 123936768,
"numExtents" : 11,
"nindexes" : 2,
"lastExtentSize" : 37625856,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 60118128,
"indexSizes" : {
"_id_" : 32319728,
"number_1" : 27798400
},
"ok" : 1
},
"secondset" : {
"ns" : "test.test_collection",
"count" : 4245,
"size" : 169800,
"avgObjSize" : 40,
"storageSize" : 86310912,
"numExtents" : 10,
"nindexes" : 2,
"lastExtentSize" : 27869184,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 277984,
"indexSizes" : {
"_id_" : 147168,
"number_1" : 130816
},
"ok" : 1
}
},
"ok" : 1
}
MISE À JOUR 2:
Merci à @Sammaye pour la suggestion. Le problème avait à voir avec ma clé de partition. Lorsque j'ai haché la clé, l'encart en vrac a divisé les enregistrements uniformément. Merci pour votre aide!
Nous allons avoir besoin de beaucoup d'informations ici, pouvez-vous commencer par éditer avec 'status()'? Dites-nous aussi quelle est la clé de votre tesson – Sammaye
Une chose que j'ai notée est que votre clé de fragment est montonicienne, ce qui signifie qu'elle va de 1-999.999, cela pourrait signifier que sharding fonctionne comme prévu et que shard 1 est devenu plein et en tant que tel a débordé à 2. Si vous avez essayé les clés hachées, cela change-t-il la distribution de vos données? – Sammaye
Quand vous dites hacher la clé de partition, je suppose que vous voulez dire hacher sur une clé qui a été hachée afin d'obtenir une répartition égale? Ou voulez-vous dire qu'il y a un drapeau sur la configuration de sharding qui vous permet d'activer le hachage? – Rich