Ana içeriğe geç
Programlama

Bluesky tek özetleme fonksiyonlu Bloom filtresine geçti

Öne çıkanlar

  • Bluesky arka planında Bloom filtreleri veritabanı sorgularının yüzde 99'unu karşılıyor.
  • Atomik CPU komutlarına geçiş sayesinde dağıtım süresi 90 dakikadan 15 dakikaya indi.
  • Aralarında asal bölümler kullanan yöntem tek bir özetleme değeriyle k adet kontrol noktası üretiyor.
  • Veri yapısı 64 baytlık önbellek satırlarına hizalanarak önbellek ıskalama sayısı bire düşürüldü.

Bluesky mühendisleri, Scylla veri tabanına giden sorgu yükünü azaltmak amacıyla sistem genelinde Bloom filtrelerini kullanıyor. Engelleme, sessize alma ve etiketleme gibi kontrollerin yüzde 99 oranında veri tabanına başvurulmadan çözülmesini sağlayan bu yapı, platformun sunucu maliyetlerini düşürdü. Başlangıçta kilit çekişmesi nedeniyle 90 dakikayı bulan dağıtım süreçleri, atomik CPU komutlarıyla çalışan filtreler sayesinde 15 dakikaya indirildi.

Altyapı araştırmalarını sürdüren ekip, çoklu veya ikili özetleme algoritmaları yerine tek bir özet değeriyle çalışan matematiksel bir modele yöneldi. Lu ve ekibinin yayımladığı akademik çalışmayı temel alan yaklaşım, büyük bit dizisini aralarında asal boyutlara sahip k adet bölüme ayırıyor. Üretilen tek özetleme değeri her bir bölüm boyutuna göre mod işlemine tabi tutularak gerekli k kontrol noktası elde ediliyor.

Bu yöntem doğrultusunda Go diliyle geliştirilen gloom adlı açık kaynak kütüphane, son dokuz aydır Bluesky ana sistemlerinde ve jetstream eşitleme servisinde kesintisiz çalışıyor. Veri yapısı modern işlemcilerin 64 baytlık önbellek satırlarına denk gelecek şekilde bloklara ayrılıyor ve bellek hizalaması yapılıyor. Böylece sistem, her filtre sorgusunda en fazla bir önbellek ıskalaması ile yüksek verim elde ediyor.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.