Temos uma configuração de dois fragmentos de MongoDB. Cada fragmento contém um mestre, um escravo, um escravo de 24 horas de escravo e um árbitro. No entanto, o balanceador falha em migrar qualquer fragmento que aguarde o tardio do escravo migrar. Eu tentei definir _secondarythrottle como false na configuração Balancer, mas ainda tenho o problema.
Parece que a migração continua por um dia e depois falha (uma tonelada de mensagens de escravos de espera nos logs). Eventualmente, desiste e inicia uma nova migração. A mensagem diz esperar por 3 escravos, mas o escravo de atraso está oculto e o PRIO 0, para que deve esperar por isso. E se o _Secondarythrottle funcionou, não deve esperar por nenhum escravo, certo?
Tem sido assim há alguns meses, então a configuração deveria ter sido recarregada em todos os moscas. Alguns dos mostras de mosca que administram o balanceamento foram restauradores recentemente.
Alguém tem alguma idéia de como resolver o problema, não tivemos esses problemas antes de iniciar o escravo atrasado, mas é apenas a nossa teoria.
Config:
{ "_id" : "balancer", "_secondaryThrottle" : false, "stopped" : false }
Log do processo SHARD1 Master:
migrateThread] warning: migrate commit waiting for 3 slaves for 'xxx.xxx' { shardkey: ObjectId('4fd2025ae087c37d32039a9e') } -> {shardkey: ObjectId('4fd2035ae087c37f04014a79') } waiting for: 529dc9d9:7a [migrateThread] Waiting for Replicação para recuperar o atraso antes de entrar na seção crítica
Log do processo mestre Shard2:
Ter 3 de dezembro de 14: 52: 25.302 [Conn1369472] MOVECHUNK Data Transfer Progress: {Active: true, ns: "xxx.xxx", de: "shard2/mongo2: 27018, mongob2: 27018", min: {shardkey: objectId (ObjectId ( '4fd2025ae087c37d32039a9e') }, max: { shardkey: ObjectId('4fd2035ae087c37f04014a79') }, shardKeyPattern: { shardkey: 1.0 }, state: "catchup", counts: { cloned: 22773, clonedBytes: 36323458, catchup: 0, steady: 0}, ok: 1.0} meu mem usado: 0
ATUALIZAÇÃO: Confirmei que a remoção do Slavedelay fez o balanceador funcionar novamente. Assim que eles se submetem a speed pedaços se moveram. Portanto, o problema parece estar relacionado ao Slavedelay. Eu também confirmei que o balanceador corre com "secundário": false. Parece esperar os escravos de qualquer maneira.
Shard2:
Tue Dec 10 11: 44: 25.423 [MigrateThread] Aviso: Migre Commit, esperando por 3 escravos para 'xxx.xxx' {shardKey: objectId ('4ff1213ee087c3516b2f703f')} -> {shardKey: objectId ('442222f703f')} -> {shardDidid ('4 4 52A6F089: 81
Ter 10 de dezembro 11: 44: 26.423 [MigrateThread] Aguardando a replicação para recuperar o atraso antes de entrar na seção crítica
Ter 10 de dezembro 11: 44: 27.423 [MigrateThread] Aguardando a replicação para recuperar o atraso antes de entrar na seção crítica
Ter 10 de dezembro 11: 44: 28.423 [MigrateThread] Aguardando a replicação para recuperar o atraso antes de entrar na seção crítica
Ter 10 de dezembro 11: 44: 29.424 [MigrateThread] Aguardando a replicação para recuperar o atraso antes de entrar na seção crítica
Ter 10 de dezembro 11: 44: 30.424 [MigrateThread] Aguardando a replicação para recuperar o atraso antes de entrar na seção crítica
Ter 10 de dezembro 11: 44: 31.424 [MigrateThread] Aguardando a replicação para recuperar o atraso antes de entrar na seção crítica
Tue Dec 10 11:44:31.424 [migrateThread] migrate commit succeeded flushing to secondaries for 'xxx.xxx' { shardkey: ObjectId('4ff1213ee087c3516b2f703f') } -> { shardkey: ObjectId('4ff12a5eddf2b32dff1e7bea') }
TUE DEC 10 11: 44: 31.425 [MigrateThread] Migre CommitiEn Lanke to Journal for 'xxx.xxx' {shardKey: objectId ('4ff1213ee087c3516b2f703f')} -> {shardKey: objectId ('4ff12A5Eddf2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B.
Tue Dec 10 11:44:31.647 [migrateThread] migrate commit succeeded flushing to secondaries for 'xxx.xxx' { shardkey: ObjectId('4ff1213ee087c3516b2f703f') } -> { shardkey: ObjectId('4ff12a5eddf2b32dff1e7bea') }
TUE DEC 10 11: 44: 31.667 [MigrateThread] Migre CommitiE Lanke to Journal para 'xxx.xxx' {shardKey: objectId ('4ff1213ee087c3516b2f703f')} -> {shardKey: objectId ('4ff12A5Eddf2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B.