Dragonfly

Veritabanı & Veri Teknolojileri
Dragonfly
Dragonfly, modern çok iş parçacıklı (multi-threaded) mimarisiyle Redis ve Memcached için doğrudan değiştirilebilir (drop-in) alternatif bir bellek içi veri deposudur. Tek düğümde 25 kata kadar daha yüksek verim, sharding'siz dikey ölçeklenme ve tam Redis API uyumluluğu sunar.
Nedir?
Dragonfly, Redis ve Memcached protokollerini konuşan; ancak Seastar ve ScyllaDB gibi modern veritabanlarından esinlenen shared-nothing, çok iş parçacıklı bir mimari üzerine inşa edilen açık kaynaklı bir bellek içi veri deposudur. Linux ve Docker üzerinde çalışır ve tek düğümde düzinelerce çekirdeğe kadar dikey olarak ölçeklenir.
Ne işe yarar?
Dragonfly; anahtar-değer depolaması, pub/sub, stream'ler, sıralı kümeler ve Redis uygulamalarının bağlı olduğu tüm veri yapılarını — sunucu sayısının çok küçük bir kesriyle — sağlar. Testler, tek bir c6gn.16xlarge üzerinde 3,8 milyon QPS gösteriyor (Redis'te ~250k); üstelik kompakt dashtable uygulaması sayesinde daha az bellek kullanarak.
Nerede kullanılır?
Dragonfly, mevcut Redis dağıtımlarına doğrudan değiştirilebilir (drop-in) alternatif olarak yerleşir: oturum cache'leri, API hız sınırlayıcılar, özellik bayrağı depoları, gerçek zamanlı skor tabloları, iş kuyrukları ve pub/sub fanout. Redis cluster'ı tek bir primary'yi aştığında ve takım sharding'in operasyonel maliyetinden kaçınmak istediğinde tercih edilir.
Ne zaman ve neden ortaya çıktı?
Dragonfly, 2022'de eski Google mühendisleri tarafından Redis'in temel darboğazını — tek iş parçacıklı olay döngüsü mimarisini — çözmek için yayımlandı. Modern sunucular rutin olarak 64+ çekirdeğe ve 1TB RAM'e sahip; Redis instance başına yalnızca bir çekirdek kullanabiliyor, bu da dikey ölçek daha basit ve ucuz olduğu halde yatay ölçeği zorunlu kılıyordu.
Internative'de neden kullanıyoruz?
Redis faturası gelirlerinden hızlı büyüyen müşteriler için — genellikle cache-yoğun iş yükü olan SaaS şirketleri — Dragonfly dağıtıyoruz. Tek bir Dragonfly düğümü, çoğu zaman 5–10 düğümlük bir Redis cluster'ının yerini alıyor; aynı göçte hem donanım maliyeti hem de nöbet karmaşası düşüyor. Protokol uyumluluğu sayesinde uygulama kodunda sıfır değişiklik.