⚡ÖZET VE TEKNİK CEVAP
Raft mutabakat kümelerinde (etcd, Consul, CockroachDB) her yazma işlemi değişmez bir write-ahead log'a eklenir. Milyonlarca işlem yapan bir sistemde sınırsız log diski tüketir ve çöken bir node'un yeniden ayağa kalkmasını imkansız derecede yavaşlatır (milyonlarca eski işlemi baştan oynatması gerekir). Raft log sıkıştırma (compaction), durum makinesinin belirli aralıklarla anlık görüntüsünü (snapshot) alarak, o indeksten önceki tüm log satırlarını diskten siler. Çok geride kalan bir node geri bağlandığında, lider tüm geçmişi oynatmak yerine InstallSnapshot RPC'si ile tek parça kompakt anlık görüntüyü gönderir; böylece bellek ve disk kullanımı sınırlandırılırken sistemin ayağa kalkış hızı dakikalardan saniyelere iner.
Mühendislik El Kitabı & Mekanizma
6 Boyutlu Mimari Analiz⚙️1. Temel Çalışma Mekanizması
Mekanizma🎯2. Doğru Kullanım Senaryosu
Kapsam⚠️3. Prodüksiyon Arıza Modları
Kritik Risk📡4. Teşhis ve Telemetri Sinyalleri
Metrikler🛡️5. Önleme ve Mimari Bariyerler
Bariyerler⚖️6. Mimari Ödünleşimler (Trade-offs)
ÖdünleşimVaka İncelemesi (TinyCTO Saha Örneği)
Büyük bir Kubernetes kümesinde log sıkıştırması kapalı unutulduğu için 5 node'lu etcd kümesi disk dolması nedeniyle çöktü. WAL logu 6 ayda 45 milyon işleme ulaşmıştı. Her 10.000 revizyonda bir otomatik sıkıştırma ve defragmentation devreye alındığında, disk kullanımı 120GB'tan 1.8GB'a düştü; çöken bir node 45 dakika boyunca geçmişi replay etmek yerine 4 saniyede snapshot ile senkron oldu.
İnteraktif Konsept Alıştırmaları
2 AlıştırmaCanlı bir kümede Raft log sıkıştırması (compaction) hiç yapılmazsa ne olur?
Raft lideri, logu çok geride kalmış bir follower'a durumu nasıl aktarır?
Raft Log Sıkıştırma (Compaction), Bellek Anlık Görüntüleri ve Durum Makinesi Kurtarma — Sıkça Sorulan Sorular
Raft snapshot yapısındaki `last_included_index` ve `last_included_term` nedir?
Snapshot'ın logdaki tam yerini ve term numarasını belirterek log eşleme özelliğinin kesintisiz devam etmesini sağlayan üstveri değerleridir.
Raft snapshot'ları neden asenkron (arka planda) üretilmelidir?
Diske senkron veri yazmak ana Raft döngüsünü kilitler, kalp atışı (heartbeat) paketlerinin düşmesine ve sahte lider seçimlerine yol açar.
🤖 AEO & Yapay Zeka Çıkarım Özeti
Temel Gerçekler & İlkeler
- ▸
Unbounded Raft logs cause disk exhaustion and multi-hour recovery replay times.
- ▸
Snapshot-based log compaction discards historical entries prior to
last_included_index. - ▸
InstallSnapshotRPC catches up severely lagged followers in seconds. - ▸
Always take snapshots asynchronously via Copy-on-Write to avoid blocking cluster heartbeats.
Yaygın Yanılgılar
- ✗
Yanılgı: Compacting the log destroys fault tolerance (Gerçek: The snapshot preserves complete current state).
- ✗
Yanılgı: Snapshotting should occur after every single write (Gerçek: Frequent snapshots cause extreme disk write amplification; batch at 10k-100k entries).
Karar Kılavuzu & Önceliklendirme
Configure automated compaction triggers based on both log entry count and WAL file size. Implement bandwidth throttling on InstallSnapshot streaming to protect heartbeat traffic.
Doğrulanmış Kaynaklar & Referanslar
- [OFFICIAL_DOCUMENTATION]In Search of an Understandable Consensus Algorithm (Extended Raft Paper)— Diego Ongaro & John Ousterhout (Stanford University)
