EVE Online, eski mimarisinin ve zaman tabanlı simülasyonunun ölçeğinin doğası nedeniyle dağıtık izleme konusunda alışılmadık bir yaklaşım benimsedi. Platform, tüm aralıkları gönderip izleme sonunda hangilerinin tutulacağına karar vermek yerine, izleme başlangıcından itibaren örnekleme yapıyor. Amaç, simülasyonu yavaşlatmadan veya izleme verilerinin maliyetini artırmadan sistemin analiz edilebilir bir görüntüsünü korumak için deterministik ve dinamik olarak değişen örneklerin bir bileşimini kullanmak.
CCP Games’ten Nicholas Herring, bu deneyimi InfoQ üzerinden yayımlanan bir yazıda anlattı. Herring, EVE Online’ın ayrı bölgesel sunucular yerine tüm oyuncuları barındıran tek bir ortak evrende çalıştığını açıkladı. Eski sistemi ile Quasar olarak bilinen daha yeni ortamı saniyede yaklaşık 30 bin mesaj alışverişinde bulunuyor. Platform ayrıca milyonlarca C, C++, Python ve SQL satırı içeriyor; bu da yeni bir merkezi izleme katmanı eklemeyi başlı başına operasyonel bir zorluk hâline getiriyor.
Platform neden gecikmeli örneklemeyi benimsemedi?
Karar, performans ve mevcut sistemin kısıtlarıyla bağlantılıydı. EVE Online’ın bir bölümü Stackless Python 2.7 kullanarak tek bir mantıksal işlemci üzerinde çalışıyor. Bu nedenle ekip, aralıkların tamamını çıkarıp işlenmeleri için merkezi bir noktaya göndermenin simülasyonun kendisine zarar verebileceğini değerlendirdi. Gecikmeli örnekleme ayrıca aralıkların tek bir yerde toplanmasını gerektiriyor; bu da toplama yolunda veya bağlantısında bir arıza olduğunda sistemin büyük bölümlerini görünmez hâle getirebilir.
Buna karşılık, başlangıçtan itibaren örnekleme her bileşenin kararını yerel olarak almasına olanak tanıyor. Belirli bölümler kötüleştiğinde ekip, tüm sistemdeki görünürlüğü kaybetmek yerine bu bölümlerin verilerini gönderme kapasitesindeki farklılıklardan sorunun konumunu çıkarabiliyor.
Deterministik yöntemler ve EMA’nın birleşimi
Daha eski sistemler maliyeti ve performans üzerindeki etkiyi azaltmak için deterministik örnekleme kullanıyor. Daha yeni Quasar bileşenleri ise protobuf mesajının türü ve ortaya çıkma sıklığı gibi anahtarları izleyen üstel hareketli ortalama veya EMA algoritmasından yararlanıyor. Bir mesaj ne kadar sık tekrarlanırsa örnekleme oranı o kadar düşürülüyor; nadir mesajlara ise görünme fırsatı daha fazla veriliyor.
Bu yaklaşım, çok sayıda mermi ateşlenmesi veya gemilerin görünümündeki değişiklikler gibi tekrarlanan olayların gürültüsünü azaltmaya yardımcı oluyor. Ancak ekip yalnızca buna güvenmiyor; çünkü bazı önemli olaylar eski sistemlerden geliyor veya en az bir kez görünmelerinin garanti edilmesi gerekiyor. EMA’nın birden fazla örneğe dağıtılması, yazının «yüksek su işareti» olarak adlandırdığı duruma yol açıyor: örnek sayısı, anahtar alanı veya mesaj oranı artırıldıktan sonra kolayca düşürülemeyen, veri hacmi için pratik bir alt sınır.
Pratikte ne değişiyor?
Deneyim, izlemeyi ayarlamanın izleme aracını seçmekle değil, ekibin ölçmek istediği olayların doğasını anlamakla başladığını gösteriyor. CCP Games, belirli bir alan, gemi veya karakter için izlemeyi geçici olarak yoğunlaştırmak ya da daha az önemli alanların izleme düzeyini düşürmek amacıyla özellik bayraklarını kullanıyor. Ayrıca örnekleme oranlarını gösteren ve olayların gerçek boyutunu çıkaran araçlara güveniyor; ham rakamları tüm evreni temsil ediyormuş gibi okumuyor.
Platform, Quasar yapılandırmalarından birinde günde yaklaşık 60 milyon olay kullandı ve mevcut kotanın yaklaşık %90’ının kullanılmasını hedefledi. Bu, gerektiğinde yoğun izleme çalıştırılmasına ve maliyetin aşılması riskinin azaltılmasına olanak sağlıyor. Ancak bu esneklik operasyonel disiplin gerektiriyor; sunumda, izleme bayraklarının etkin bırakıldığı ve bunun da artan harcamalarla ilgili uyarılara yol açtığı durumlara değinildi.
Dikkat edilmesi gereken kısıtlamalar
Bu yaklaşım, gecikmeli örneklemenin tüm avantajlarını sunmuyor. Ekip, başarıların başarısızlıklara oranını aynı şekilde sonradan kontrol edemiyor. Bu nedenle olay çok nadir olduğunda hizmet düzeyi göstergeleri aşırı hassas hâle gelebiliyor. Deneyim ayrıca, örnekleme kararlarının istemci uygulamalarının içinde alınmasının önemli etkileşimleri gizleyebileceği sonucunu ortaya koydu; bu nedenle ekip kararı arka uç içindeki güvenilir bir ağa taşımayı değerlendiriyor.
Pratik sonuç, başlangıçtan itibaren örneklemenin her zaman üstün olduğu değil; gerçek dünyadaki kısıtların deterministik yöntemler, EMA ve geçici etkinleştirmenin birleşimini maliyetli bir merkezi mimariden daha uygun hâle getirebileceğidir. Bu yaklaşımın değeri, ekibin neyin izlenmeye değer olduğunu tanımlama, maliyetin yüksek su işaretini anlama ve her önemli olay türünden en az bir örneği koruma becerisine bağlı kalıyor.