Abbiamo una configurazione di due frammenti di MongoDB. Ogni frammento contiene un maestro, uno schiavo, uno schiavo dello schiavo di 24 ore e un arbitro. Tuttavia, il bilanciatore non riesce a migrare qualsiasi frammento in attesa che lo schiavo ritardato migri. Ho provato a impostare _secondarythrottle su False nella configurazione del bilanciatore, ma ho ancora il problema.
Sembra che la migrazione continui per un giorno e poi fallisce (una tonnellata di messaggi di slave nei registri). Alla fine si arrende e inizia una nuova migrazione. Il messaggio dice in attesa di 3 schiavi, ma lo schiavo di ritardo è nascosto e prio 0, quindi dovrebbe aspettarlo. E se la frastuono, non dovrebbe aspettare uno schiavo giusto?
È così da alcuni mesi, quindi la configurazione avrebbe dovuto essere ricaricata su tutte le mongosio. Alcune delle mongosi che gestiscono il bilanciatore sono state di recente.
Qualcuno ha idea di come risolvere il problema, non abbiamo avuto questi problemi prima di iniziare lo schiavo ritardato, ma è solo la nostra teoria.
Config:
{ "_id" : "balancer", "_secondaryThrottle" : false, "stopped" : false }
Log dal processo principale di Shard1:
migratethread] ATTENZIONE: migrare commessa in attesa di 3 schiavi per 'xxx.xxx' {shardkey: objectId ('4fd2025ae087c37d32039a9e')} -> {shardkey: objectId ('4fd2035ae087c37f04014a79' in attesa per: 529dc. replica da recuperare prima di entrare nella sezione critica
Log dal processo principale di Shard2:
Mar Dec 3 14: 52: 25.302 [Conn1369472] MoveChunk Data Trasfer Transfer Progress: {Active: True, NS: "XXX.XXX", da: "Shard2/Mongo2: 27018, Mongob2: 27018", Min: {Shardkey: ObjectId (ObjectId (ObjectId (ObjectId (ObjectId (ObjectId (ObjectId (ObjectId (ObjectId (ObjectId (ObjectId (ObjectId (ObjectId (OggettoId (OggettoD (OggettoD (OggettoD (OggettoId '4fd2025ae087c37d32039a9e') }, max: { shardkey: ObjectId('4fd2035ae087c37f04014a79') }, shardKeyPattern: { shardkey: 1.0 }, state: "catchup", counts: { cloned: 22773, clonedBytes: 36323458, catchup: 0, steady: 0}, ok: 1.0} il mio Mem usato: 0
AGGIORNAMENTO: ho confermato che la rimozione di Slavedelay ha fatto funzionare di nuovo il bilanciatore. Non appena si sono alzati per accelerare Chunks. Quindi il problema sembra essere correlato allo Slavedelay. Ho anche confermato che il bilanciatore funziona con "secondario": False. Sembra aspettare comunque gli schiavi.
Shard2:
Mar dec 10 11: 44: 25.423 [migrateThread] Avviso: migrare commessa in attesa di 3 schiavi per 'xxx.xxx' {shardkey: objectId ('4ff1213ee087c3516b2f703f')} -> {shardkey: objectid ('4ff12aEddf2b32dff1e7ba') 52a6f089: 81
Mar dec 10 11: 44: 26.423 [migratethread] in attesa che la replica si recuperasse prima di entrare nella sezione critica
Mar dec 10 11: 44: 27.423 [migrateThread] in attesa che la replica raggiunga prima di entrare nella sezione critica
Mar 10 DEC 11: 44: 28.423 [migrateThread] in attesa che la replica raggiunga il passo prima di entrare nella sezione critica
Mar dec 10 11: 44: 29.424 [migratethread] in attesa che la replica si recutri prima di entrare nella sezione critica
Mar dec 10 11: 44: 30.424 [migratethread] in attesa che la replica si recuperasse prima di entrare nella sezione critica
Mar dec 10 11: 44: 31.424 [migratethread] in attesa che la replica si recuperasse prima di entrare nella sezione critica
Marce 10 11: 44: 31.424 [migratethread] Migrate commit è riuscito a sciacquare i secondari per 'xxx.xxx' {shardkey: objectId ('4ff1213ee087c3516b2f703f')} -> {shardkey: objectid ('4ff12a5eddf2b32dff1e7Bea')
Marce 10 11: 44: 31.425 [migratethread] migrare commessa arrossata su Journal per 'xxx.xxx' {shardkey: objectId ('4ff1213ee087c3516b2f703f')} -> {shardkey: objectid ('4ff12a5eddf2b32dff1e7bea')}
Marce 10 11: 44: 31.647 [migratethread] Migrate commit è riuscito a sciacquare i secondari per 'xxx.xxx' {shardkey: objectId ('4ff1213ee087c3516b2f703f')} -> {shardkey: objectId ('4ff12a5eddf2b32dff1e7Bea')
Martedì 10 11: 44: 31.667 [migratethread] migrare commessa arrossata su un diario per 'xxx.xxx' {shardkey: objectid ('4ff1213ee087c3516b2f703f')} -> {shardkey: objectid ('4ff12a5eddf2b32dff1e7bea')}