LSM Tree ve Compaction - Yazmayı Hızlandırıp Borcu Sonraya Bırakmak

LSM tree yapılarında memtable, SSTable ve compaction süreçlerinin performans dengesini inceliyoruz.

Hakan E. · · Akademi

LSM Tree ve Compaction · heworx Akademi

Log-Structured Merge Tree yaklaşımı random write maliyetini azaltmak için yazıları önce memory'de düzenli bir yapıda toplar, ardından immutable SSTable dosyaları halinde diske aktarır. Bu sayede çok sayıda küçük random write yerine daha sıralı disk erişimleri elde edilir. Write-heavy sistemlerde bu ciddi avantaj sağlayabilir.

Fakat veri farklı SSTable seviyelerine dağıldığı için okuma sırasında birden fazla dosyanın kontrol edilmesi gerekebilir. Bloom filter ve index yapıları bunu azaltır. Asıl büyük mesele compaction'dır. Eski ve yeni SSTable'lar birleştirilir, obsolete kayıtlar ayıklanır ve veri seviyeler arasında yeniden düzenlenir. Yani sabah hızlı yazmanın faturası gece compaction olarak gelir.

Size-tiered ve leveled compaction stratejileri write amplification, read amplification ve space amplification arasında farklı dengeler kurar. LSM tabanlı bir sistemde performans tuning yaparken yalnızca query latency'ye bakmak yetmez. Compaction backlog çoğu zaman yaklaşan fırtınanın hava durumu raporudur.

heworx

heworx