Tigris kuyruk mimarisini FoundationDB'den Kafka'ya taşıdı
Öne çıkanlar
- Tigris, Apple'ın QuiCK mimarisini FoundationDB üzerinde uygularken yazma sınırlarına takıldı.
- Bir görevi işlemek için gereken çoklu yazma adımları depolama sunucularında darboğaza yol açtı.
- Asenkron işler Kafka'ya taşınırken veri çoğaltma işlemleri FoundationDB üzerinde bırakıldı.
Bulut depolama sağlayıcısı Tigris, asenkron görev kuyruklarını FoundationDB üzerinden yönetirken karşılaştığı yazma sınırları nedeniyle sistemin bir kısmını Apache Kafka altyapısına geçirdi. Şirket, başlangıçta Apple'ın CloudKit için tasarladığı QuiCK modelini uygulayarak tüm veri tabanı ve kuyruk işlemlerini tek bir FoundationDB kümesinde birleştirdi. Bu yöntem çift yazma sorununu ortadan kaldırsa da veri hacmi büyüdükçe kuyruk operasyonlarının getirdiği ek yük sistem performansını etkiledi.
Kuyruk üzerindeki her bir görev sıraya alma, talep etme, kiralama ve silme aşamalarında FoundationDB üzerinde birden fazla yazma işlemi yarattı. Depolama sunucuları işlem günlüklerinin gerisinde kaldığında veritabanı hız sınırlayıcısı tüm işlemleri yavaşlattı. Özellikle silme operasyonları sırasında oluşan mezar taşı temizleme süreçleri, kullanıcı istekleriyle yarışan milyonlarca ek yazma ve aralık taramasına yol açtı. Şirket, bellek ve donanım maliyetleri nedeniyle küme bölümleme yerine kuyruk yükünü ayrıştırma yolunu seçti.
Yeni mimaride S3 API olayları ve zaman aşımı taramalarıyla tetiklenen asenkron görevler Kafka konularına yönlendirildi. Çift yazma riskini önlemek amacıyla veri çoğaltma günlükleri FoundationDB içinde tutulmaya devam etti. Yapılan değişiklikle tek bir nesne temizliğinde veritabanına binen dört aşamalı kuyruk yazma yükü ortadan kaldırıldı ve veritabanı üzerindeki yazma baskısı azaltıldı.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.