Muito uso de disco estranho para réplica no Mongodb

1

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.

    
por vpetersson 27.07.2014 / 14:07

1 resposta

1

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.

    
por 27.07.2014 / 16:36