
Cloudflare, DNS derlemelerini hedefliyor ve Zone Builder belleği ile gecikmeleri azaltıyor
Cloudflare'ın hedefli DNS derleme planlayıcısı ve birleşik zamanlayıcısı, Zone Builder tepe belleğini %85 azalttı, ortanca derleme tamamlama gecikmesini yarıya indirdi ve derlemelerin %92,95'inin tüm bölgeyi yeniden derlemesini engelledi.
Cloudflare, tüm bölgeleri yeniden derlemek yerine her değişiklik için en küçük güvenli derlemeyi seçmek üzere DNS Zone Builder'ını değiştirdi; bu sayede tepe belleğini %85 azalttı ve ortanca derleme tamamlama gecikmesini yarıya indirdi. Planlayıcı ve birleşik bir zamanlayıcı ayrıca derlemelerin %92,95'inin tam bölgeyi yeniden derlemesini engelledi.
Tam derlemeler neden maliyetli hale geldi
Zone Builder, veritabanı değişikliklerini Cloudflare'ın yetkili DNS sunucuları için veriye dönüştürür ve değişiklikleri Quicksilver'a yazar. Tam bir derleme her kaydı okur, kodlar ve karşılaştırır ve tüm bölgeyi bellekte tutar; bu, on milyonlarca kaydı olan bölgeler için maliyetlidir. Bugün derleyici saniyede yaklaşık 700 DNS kayıt değişikliği alıyor; bu sayı 2022'deki yaklaşık 250'den yükseldi ve yaklaşık 100 başka olay daha alıyor.
Hedefli derlemeler ve beş derleme türü
Olaylar artık, mümkün olduğunda değişen bölge alanlarını ve ayarlarını da içeriyor. Planlayıcı her değişikliği beş derleme türünden birine eşler: yalnızca kaynaklar; kaynaklar ve üst veri; apex ve üst veri; temizleme; veya tam bölge. Daha küçük işin güvenli olduğu kanıtlanamadığı durumlarda yalnızca tam derlemeler kullanır. 24 saat boyunca %86,81'i yalnızca kaynaklar, %2,54'ü kaynaklar ve üst veri, %2,30'u apex ve üst veri, %1,30'u temizleme ve %7,04'ü tam bölgeydi. İki üst veri türü daha önce tam derlemeydi, bu nedenle tam derlemeler yaklaşık %40 azaldı.
Paylaşılan adlar ve zamanlama
Quicksilver, aynı etki alanı adını paylaşan her Cloudflare bölgesi tarafından kullanılan tek bir üst veri anahtarı saklar. Hedefli derlemeler, gerektiğinde bu anahtarı mevcut aday kümesinden yeniden derler ve bir bölgenin kayıtlarını, onlara başvuran üst veriden önce yazar. Birleşik zamanlayıcı aynı bölge için kuyruğa alınan işleri birleştirir; böylece bir A kaydı değişikliği ile bir joker değişikliği tek bir derleme haline gelebilir. Sonuçlar güvenli bir şekilde yazılana kadar Kafka mesajlarını ekli tutar ve meşgul bir bölgenin her çalışanı bölge başına yeniden derleme aralığı üzerinden ele geçirmesini engeller.
Doğrulama, bellek ve gecikme sonuçları
Eşdeğerlik testleri tam ve hedefli derlemeleri bayt bayta karşılaştırır. Bir ayna Zone Builder, üretim Kafka olaylarını tüketir ve ayrı bir Quicksilver ortamına yazarken üretim veritabanı durumunu okur; bir karşılaştırıcı %20'lik bir örneği denetler. Dağıtımdan sonra toplam çalışma kümesi belleği ortalama 49 GiB'den 7 GiB'ye, tepeler ise 79 GiB'den 12 GiB'ye düştü. Yan yana karşılaştırmada en büyük p99 gecikme sıçraması 14,6 dakikadan 1,21 dakikaya düştü. Daha kısa toplayıcı ve yeniden derleme aralığı bekleme sürelerinden sonra ortanca derleme tamamlama gecikmesi yaklaşık 7,7 saniyeden yaklaşık 3,3 saniyeye düştü.
Kaynaklar: Cloudflare
SiTech — AI destekli web geliştirme
Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.