Azure Cosmos DB GSI ile Canlı Ajan Oturumlarını Korumak
Yapay zeka ajanları çalışırken veritabanına düşen yük, kullanıcının yazdığı tek cümlelik istekten çok daha büyük. Genspark’ın kurucu ortağı ve baş mimarı Justin Liu, Azure Cosmos DB blogunda tam bu noktadaki klasik sorunu anlatıyor; arka planda çalışan okuma yoğun işler, canlı ajan oturumlarıyla aynı kapasiteyi tüketiyor. Ayrı bir replika ya da ETL hattı kurmak yerine Azure Cosmos DB Global Secondary Indexes (GSI) tercih edilmiş. Kararın gerekçeleri ve GSI’ya hangi iş yüklerinin taşınabileceği aşağıda.
İş, prompt bittiğinde bitmiyor
Genspark kullanıcısı bir hedefle geliyor; pazar araştırması yapmak, sunum hazırlamak, rapor üretmek, veri kümesi analiz etmek ya da benzeri karmaşık bir görevi tamamlamak istiyor. Sonrasını ajanlar devralıyor, farklı araçlar ve kaynaklar üzerinde çok adımlı akışlar işletip sonucu teslim ediyor.
Tek bir görev tekrarlanan aramaları, kararları, araç çağrılarını ve revizyonları içerebiliyor. Ajan bu süreç boyunca hızla değişen operasyonel duruma bağımlı kalıyor:
- Proje bağlamı
- Konuşma geçmişi
- Görev ilerleme durumu
- Dosya meta verileri
- Kullanım olayları
Her adım bir öncekinin üstüne kurulduğu için işin akmaya devam etmesi, doğrudan güncel duruma erişmeye bağlı.
Neden Azure Cosmos DB?
Yazıda aktarılan gerekçeler net. Ajan trafiği ani yükselişler gösteriyor ve tahmin edilmesi zor; bu yüzden düşük gecikmeli okuma yazma ve talebe göre ölçeklenen bir throughput modeli gerekiyordu. Ekip ayrıca operasyonel yükün mümkün olduğunca veritabanı tarafında kalmasını istiyordu.
Küçük bir mühendislik ekibi var, ayrı bir veritabanı operasyon fonksiyonu yok. Böyle bir yapıda ölçekleme, replikasyon ve erişilebilirliğin Azure Cosmos DB tarafından üstlenilmesi, tek tek özelliklerden daha belirleyici olmuş. Genspark’ın üzerinde çalıştığı Azure platformunun geri kalanıyla doğal biçimde uyuşması da etkenlerden biri. Platform, tüketici ürününden Team ve Enterprise paketlerine kadar bu veritabanıyla birlikte büyümüş.
İki tür iş yükü, tek kapasite
Genspark büyüdükçe aynı operasyonel veri iki ayrı amaca hizmet etmeye başlamış. Bir yanda görev boyunca güncel duruma ihtiyaç duyan canlı ajan oturumları var, diğer yanda bu verinin bir bölümüne tekrar tekrar dönen, kendi içinde okuma yoğun dahili iş akışları.
Arka plandaki bu okumalar kullanıcıya görünmüyordu ama canlı trafiğe hizmet eden kapasiteden besleniyordu. Arka plan etkinliği arttığında ajan, bir raporu derlerken ya da adımlar arasında geçerken duraklayabiliyordu. Platform iş yükünü işlemeye devam ediyordu, deneyim ise daha az öngörülebilir hale gelebiliyordu.
Bu okumaları ayrı bir replikaya taşımak değerlendirilmiş. Ancak o yol, bir replikasyon veya ETL hattı kurup işletmeyi, senkronizasyonu kontrol etmeyi, bir sistemi daha izlemeyi ve hata senaryolarını planlamayı beraberinde getiriyordu. Perde arkasında çalışan bir iş için eklenmek istenenden fazla altyapı.
Global Secondary Index ile okuma yolunu ayırmak
Azure Cosmos DB Global Secondary Indexes, ayrı bir replikasyon yığını kurmadan ikinci bir okuma yolu sağlıyor. Model şöyle işliyor:
- Canlı okuma ve yazma işlemleri kaynak container üzerinde devam ediyor.
- Seçilmiş arka plan süreçleri GSI’ya yönlendiriliyor.
- Azure Cosmos DB, iki taraf arasındaki senkronizasyonu change feed üzerinden otomatik olarak sürdürüyor.
Genspark işe dar kapsamlı bir senaryoyla başlamış, okuma yoğun belirli dahili süreçleri izole etmiş. Amaç, bu işin aktif ajan oturumlarıyla aynı kapasiteyi tüketmesini engellemekti. Kapsamın dar tutulması değişikliğin değerlendirilmesini de kolaylaştırmış; belirli bir okuyucu grubu taşınmış, davranışları gözlemlenmiş, kullanıcıya dönük veri yolu olduğu gibi bırakılmış.
Mimari bileşenler ve rolleri
| Bileşen | Rolü |
|---|---|
| Kaynak container | Canlı okuma ve yazma işlemlerini, mümkün olan en güncel durumu gerektiren operasyonlar dahil, karşılar |
| Global Secondary Index | Seçilmiş, okuma yoğun arka plan süreçlerine hizmet eder |
| Azure Cosmos DB | Kaynak container ile global secondary index arasındaki değişiklikleri otomatik olarak senkronize eder |
Hangi iş yükü eventual consistency’yi kaldırır?
Ayrı okuma yolu hazır olunca sıra oraya neyin taşınacağına gelmiş. Azure Cosmos DB’de GSI, kaynak container ile eventually consistent ilişkide. Genspark’ın bazı arka plan süreçleri verinin yakın geçmişteki bir görünümüyle çalışabiliyor, bazılarıysa mevcut en güncel duruma ihtiyaç duyuyor.
Ekip, ayrımı yapmak için tek bir soru kullanmış:
Bu veri geride kalırsa ne bozulur?
Taşınan süreçlerde eventual consistency ne sonucu değiştiriyor ne de aktif bir oturumu etkiliyordu; GSI henüz tam yetişmemiş olsa bile güvenle çalışmaya devam edebiliyorlardı. En güncel operasyonel duruma bağlı okumalar ise kaynak container’da bırakılmış.
Azure Cosmos DB ekibi, bu sınırın çizilmesinde destek vermiş. Üretim trafiği GSI’ya yönlendirilmeden önce eventual consistency’nin her süreci nasıl etkileyeceği, hangilerinin geride kalan bir kopyayı güvenle tolere edebileceği gözden geçirilmiş. Sonra seçimler gerçek senkronizasyon davranışına karşı test edilmiş, süreçler hem GSI kaynakla aynı hizadayken hem geride kaldığında izlenmiş. İki koşulda da güvenle çalıştıkları doğrulanınca geçiş tamamlanmış.
İşletilecek yeni bir sistem olmadan izolasyon
GSI, çalıştırılması gereken ek bir sistem doğurmadan ihtiyaç duyulan ayrımı sağlamış. İndeksin senkronizasyonunu Azure Cosmos DB üstlendiği için ekip kendi replikasyon servisini kurup bakımını yapmak zorunda kalmamış.
Küçük ekipler için fark burada. Her ek hareketli parça izleme, sorun giderme ve destek zamanı demek, o zaman da ürünü iyileştirmeye ayrılabilecek bir kaynak. İlk kullanım senaryosunun dar tutulması aynı mantığın parçası; hangi süreçlerin taşınacağı, çıktısına kimin bağımlı olduğu ve eventual consistency’yi tolere edip edemeyecekleri önceden biliniyordu.
Sonuçta arka plan işi, canlı trafikten daha büyük bir mimari projeye dönüşmeden ayrılmış. Canlı oturumlar ihtiyaç duydukları kapasiteyi alıyor, arka plan süreçleri çalışmaya devam ediyor, ekip de ürüne odaklanabiliyor.
Genspark hakkında
Genspark, dünya genelindeki bilgi çalışanları için tasarlanmış bir yapay zeka ajan çalışma alanı. Ajanlar araştırma, sunum, rapor ve veri analizi gibi bilgi çalışanının gününü dolduran işleri üstleniyor, hedeften bitmiş sonuca kadar taşıyor. Yazıya göre bugüne kadarki en hızlı büyüyen yapay zeka ürünlerinden biri; bireysel kullanıcılardan Team ile Enterprise planlarındaki kurumlara kadar dünya çapında milyonlarca kullanıcıya hizmet veriyor.
Kaynaklar ve İleri Okuma
- Genspark protects live agent sessions with Azure Cosmos DB Global Secondary Indexes (Azure Cosmos DB Blog)
- Microsoft Learn: Azure Cosmos DB Global Secondary Indexes
- Genspark resmî sitesi
- Azure Cosmos DB Blog
- Azure Cosmos DB’de GSI: Okuma Yükünü Hafifletmenin Pratik Yolu
- Microsoft Agent Framework’e Azure Cosmos DB belleği







Yorum gönder