MongoDB Write Conflict ve İptal Edilen Transaction'lar: Sıcak Doküman Teşhisi
Write conflict artışını gerçek işlem iptallerinden ayırır; aynı dokümanda çakışan yazmaları azaltmak ve güvenli transaction retry tasarlamak için yol gösterir.
Operasyonel Güvenlik ve Risk Uyarısı
Bu runbook müdahale adımları içerir; birçok adım yazma etkilidir (KILL, terminate, DROP, RESIZE). Önce test ortamında deneyin, üretimde adımları sırayla ve doğrulayarak uygulayın.
1. Belirti / Symptom
M59 write conflict hızında artış; uygulamada `WriteConflict`, `TransientTransactionError`, transaction abort veya p95 yazma gecikmesi görülür. Tüm write conflict'ler kullanıcı hatasına dönüşmez; sürücü bazılarını otomatik tekrar deneyebilir.
2. Etki / Impact
Transaction throughput düşer, otomatik retry yükü artar; yanlış retry tasarımı çift işleme veya beklenmedik tutarsızlık doğurabilir.
3. Teşhis / Diagnosis
const s = db.serverStatus();
({ transactions: s.transactions,
writeConflicts: s.metrics?.operation?.writeConflicts,
queues: s.globalLock?.currentQueue });Bazı sürümlerde alt alanlar farklı/eksik olabilir; dönen nesneyi inceleyin.
4. Müdahale / Response
5. Doğrulama / Verification
M59 rate düşüyor; abort ve retry oranları baz çizgiye yakın, uygulama sonucunda yinelenen yan etki yok, p95/p99 yazma gecikmesi normal.
6. Geri Alma / Rollback
Uygulama throttling ve retry sürümünü önceki kararlı sürüme alın. Transaction sırasında yapılmış dış yan etkiler otomatik rollback olmaz; idempotency kayıtlarıyla uzlaştırın.