Rethinking latency-sensitive DynamoDB apps for multicloud, multiregion deployment Reklam gönderme sürecinin tamamı 200 ila 300 milisekundaki bir süre içinde gerçekleşir.Bizim veritabanı arama çalışmalarımız tek rakamlı milisekundaki bir sürede tamamlanmalıdır.Günde milyarlarca işlemle, veritabanının hızlı, ölçeklenebilir ve güvenilir olması gerekir.Eğer düşerse, reklam hizmetleri altyapımız işe yaramaz.” – Todd Coleman, Yieldmo’nun teknik ortak kurucusu ve baş mimarı Reklam gönderme sürecinin tamamı 200 ila 300 milisekundaki bir süre içinde gerçekleşir.Bizim veritabanı arama çalışmalarımız tek rakamlı milisekundaki bir sürede tamamlanmalıdır.Günde milyarlarca işlemle, veritabanının hızlı, ölçeklenebilir ve güvenilir olması gerekir.Eğer düşerse, reklam hizmetleri altyapımız işe yaramaz.” – Todd Coleman, Yieldmo’nun teknik ortak kurucusu ve baş mimarı Yieldmo’nun çevrimiçi reklam işi, günde yüz milyarlarca reklam talebinin sub-saniyelik gecikme yanıtları ile işlenmesine bağlıdır. Şirketin hizmetleri başlangıçta DynamoDB’ye bağlıydı, ekibi basitlik ve istikrar için değer verdi. Bununla birlikte, DynamoDB maliyeti ölçekte sürdürülebilir hale geldi ve ekibi, Yieldmo’nun yeni bölgelere genişlediği için çok bulutlu esnekliğe ihtiyacı vardı. Son zamanlarda bir konuşmada Yieldmo'nun teknik ortak kurucusu ve baş mimarı Todd Coleman, şirketin karşılaştığı teknik zorlukları ve ekibin neden ScyllaDB'nin DynamoDB uyumlu API'siyle ilerlediğini paylaştı. Monster Scale Toplantısı Tüm konuşmasını aşağıda izleyebilirsiniz veya bir geri bildirim için okumaya devam edebilirsiniz. https://youtu.be/sk0mIiaOwM8?embedable=true Kayıp İş = Lost Business Yieldmo, yayıncıları ve reklamverenleri bir sayfa yükü olarak gerçek zamanlı olarak birbirine bağlayan bir çevrimiçi reklam platformudur.Neredeyse her reklam talebi, makine öğrenme bilgilerini ve cihaz kimlik bilgileri toplayan bir veritabanı sorgusunu tetikler. Etkili Satışlar Partnerlerin teklif vermeye karar vermesine yardımcı olun Reklamverenlerin frekans limitlerini yönetebilmeleri ve reklam dağıtımını optimize etmelerini sağlamak için bir cihazda zaten hangi reklamları gösterdiklerini izleyebilirsiniz. Tüm reklam boru hattı sadece 200 ila 300 milisekunde tamamlanır, bu zamanın çoğu ortakların tekliflerin değerlendirilmesi ve yerleştirilmesi için harcanır. Bir kullanıcı bir web sitesini ziyaret ettiğinde, Yieldmo'ya bir reklam isteği gönderilir. Yieldmo platformu isteği analiz eder. Partnerlerinden potansiyel reklamlar talep ediyor. Kazanan teklifi belirlemek için bir ihale yapar. Koleman, “Günde milyarlarca işlemle, veritabanı hızlı, ölçeklenebilir ve güvenilir olmalıdır. DynamoDB büyüyen ağrılar Yieldmo'nun üretim altyapısı AWS üzerinde çalışır, bu nedenle DynamoDB, ekibin uygulamasını oluştururken mantıklı bir seçimdi. İkincisi, şirket AWS’in ötesinde bulut sağlayıcılarında reklam sunucularını çalıştırma seçeneğini istiyordu. Coleman, “Bazı bölgelerde, örneğin, ABD Doğu Kıyısında, AWS ve GCP [Google Cloud Platform] veri merkezleri yavaşlama için yeterince yakın. Orada, GCP’de çalışan bir reklam sunucusundan DynamoDB veritabanımızı çalmak sorun değil. Ancak, Dublin’de DynamoDB’ye erişirken Amsterdam’da GCP tabanlı bir reklam sunucusu kümesini başlatmaya çalıştığımızda, yavaşlama çok yüksekti. DynamoDB Alternatifleri Yieldmo’nun ekibi, son derece okuma ağırlıklı veritabanı iş yüklerine uygun DynamoDB alternatiflerini keşfetmeye başladı. Ortaklarının gerçek zamanlı verilerinin sürekli akışı, Yieldmo’nun verilerini kendi verileriyle eşleştirmek için gerekli Tarihsel verilerinden elde edilen makine öğrenimi anlayışına dayanan batch güncellemeleri Bu yüksek frekanslı okuma ve yapılandırılmış yazma dengesini göz önünde bulundurarak, performansta bozulma olmadan eşzamanlı güncelleştirmeleri etkin bir şekilde yönetirken büyük ölçekli, düşük latensiyel erişimle başa çıkabilecek bir veritabanı arıyorlardı. Ekip ilk olarak DynamoDB ile kalmayı ve bir caching katmanı eklemeyi düşündü. Ancak, caching'in coğrafi gecikme sorunu çözemediğini ve bu seçeneği kullanarak cache eksiklikleri daha da yavaşlayacağını buldular. Bununla birlikte, Aerospike'nin bellek içi indeksleme işleminin Yieldmo'nun büyük sayıda küçük veri nesnesi ile başa çıkabilmesi için çok büyük ve pahalı bir kümenin gerekli olacağını öğrendiler. Daha sonra, aynı zamanda hız ve bulut arası desteği sağlayan, ancak DynamoDB uyumlu bir API (Alternator) ve daha düşük maliyetli olan ScyllaDB'yi keşfettiler. Coleman, “ScyllaDB, bulut çapındaki dağıtımları destekliyordu, yönetilebilir bir sayıda sunucuya ihtiyaç duyuyordu ve rekabetçi maliyetler sunuyordu. En iyisi, API’si DynamoDB ile uyumludur, yani minimum kod değişiklikleri ile geçiş yapabiliriz. ScyllaDB Değerlendirme, Göç ve Sonuçlar ScyllaDB'nin çevrelerinde nasıl çalıştığını değerlendirmeye başlamak için, ekibi tek bir bölgeye bir alt grup reklam sunucusunu taşıdı. Bu, gerçek zamanlı güncelleştirmeler sağlarken birden fazla terabyte geçişini içeriyordu. İşlemsel olarak, ScyllaDB'nin Spark tabanlı geçiş aracı geçmiş verilerini kopyalamış, ML batch işlerini durdurmuş ve Kafka mimarisini ScyllaDB'ye yeni yazılar yeniden oynatmak için kullanmışlardı. ~28 milyar nesne (~3,3 TB) içeren tek bir DynamoDB tablosunu taşımak yaklaşık 10 saat sürdü. Bir sonraki adım, tüm verileri beş AWS bölgesine aktarmaktı.Bu aşama yaklaşık iki hafta sürdü.Performans değerlendirildikten sonra, Yieldmo, ScyllaDB'yi birincil statüye yükseltti ve sonunda çoğu bölgede DynamoDB'ye yazmayı bıraktı. Yaklaşık bir yıl sonra, Coleman, göçmenlik üzerine düşünerek, “En büyük avantajı çok bulutlu esnekliktir, ancak bu olmadan bile, göçmenlik buna değerdi. DynamoDB ile karşılaştırıldığında, rezerv kapasite fiyatlamasıyla bile, veritaban maliyetleri yaklaşık yarı yarıya düşürüldü ve mütevazı gecikme iyileştirmelerini gördük. ScyllaDB güvenilirlik gösterdi: Ekibimiz kümelerimizi izliyor, sorunlar hakkında bizi uyarıyor ve ölçeklendirme konusunda tavsiye ediyor. Sürekli bakım üstü DynamoDB ile karşılaştırılabilir, ancak daha fazla bağımsızlık ve önemli maliyet tasarrufu ile.” ScyllaDB ile DynamoDB karşılaştırması nasıl yapılır