No MongoDB 2.6 PowerOf2sizes ( link ) é a configuração padrão para coleções. Isso causará menos relocações de disco durante as atualizações, mas consumirá mais espaço em disco.
tl; dr: a nova réplica 2.6 consome muito mais espaço em disco que os 2.4 membros.
Somos usuários pesados do GridFS do MongoDB. No momento, estamos no 2.4 e pretendemos atualizar para o 2.6 simplesmente adicionando novos membros da réplica e, gradualmente, preterindo os 2,4 nós conforme recomendado.
Temos um primário, um secundário e um árbitro. Aqui estão alguns dados sobre o sistema atual:
$ mongod --version
db version v2.4.10
Sun Jul 27 13:56:27.250 git version: e3d78955d181e475345ebd60053a4738a4c5268a
Veja alguns dados no banco de dados:
> db.stats()
{
"db" : "SomeDatabase",
"collections" : 4,
"objects" : 2797931,
"avgObjSize" : 284877.9334958582,
"dataSize" : 797068801344,
"storageSize" : 946689860768,
"numExtents" : 469,
"indexes" : 5,
"indexSize" : 251248480,
"fileSize" : 950804676608,
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 5
},
"ok" : 1
}
Como você pode ver, o banco de dados é ~ 950 GB e cabe (mas quase) no primário e secundário (que é 1 TB de armazenamento).
Como estamos com pouco armazenamento, eu dei ao novo nó que eu queria adicionar ao sistema outro 200G (ou seja, 1,2 TB).
Aqui está a versão do MongoDB do novo nó:
$ mongod --version
db version v2.6.3
2014-07-27T12:01:21.242+0000 git version: 255f67a66f9603c59380b2a389e386910bbb52cb
Depois de torná-lo membro do conjunto de réplicas, ele começa a sincronizar muito bem (como em todas as outras ocasiões em que rotacionamos os membros do ReplicaSet). É aqui que fica estranho. Após a sincronização por algumas horas, ele atinge o tamanho esperado do banco de dados (~ 950 GB). No entanto, ele simplesmente continua depois disso até que finalmente preenche todo o disco e falha.
Agora, eu sei que o 2.6 é uma nova versão, mas por que o banco de dados em disco excede os do primário e do secundário? Qualquer ponteiro seria muito útil.
No MongoDB 2.6 PowerOf2sizes ( link ) é a configuração padrão para coleções. Isso causará menos relocações de disco durante as atualizações, mas consumirá mais espaço em disco.