Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. info
Anahtar/değer eşlemesi (KVM) politikaları, sistemdeki yapılandırmaları ve dinamik değerleri yönetmede temel bir bileşendir. Ancak bu KVM'lerde var olmayan anahtarların bulunması ve aranması performansı önemli ölçüde etkileyebilir ve gecikmelerin artmasına neden olabilir.
Antipattern
Bir KVM politikası, anahtar/değer eşlemesinde bulunmayan bir anahtarın değerini almaya çalıştığında Cassandra veritabanına ek çağrılar yapılır. Bu durum, özellikle mevcut olmayan anahtarlar için arka uç veritabanıyla iletişimi artırarak daha fazla kaynak ve zaman tüketir. Bu da genel istek gecikmesini artırır.
Etki
Bu anti-desenin temel etkisi, çalışma zamanı gecikmelerinin ve veri deposu hatalarının artmasıdır. Mevcut olmayan anahtar aramalarının yüksek yüzdesi, gözlemlenen gecikmelerin temel nedeni olduğundan sistemin işlem hızı ve veri erişimi olumsuz etkilenir. Bu, çalışma zamanı özelliğidir ve doğrudan gelen isteklerin niteliğine bağlıdır.
Belirtiler
- Sistem, yüksek çalışma zamanı gecikmeleri gösteriyor.
- Veri deposu hataları (işleme hızı ve veri erişimiyle ilgili sorunları gösterir).
Hata mesajları
system.log
dosyasının analizi, tekrar eden Cassandra ile ilgili hataların olduğunu gösteriyor. Bu hatalar özellikle veri alma ve ana makine havuzu durumuyla ilgili. Gözlemlenen önemli hata mesajları:
ERROR DATASTORE.CASSANDRA - AstyanaxCassandraClient.get() : Exception while fetching rowKey : [7ccd1062-6e05-4d12-aa86-5c7bf944682d, app_credentials, kms] from column family:{} in keyspace:{}
ERROR DATASTORE.CASSANDRA - AstyanaxCassandraClient.logHostPoolInCaseOfErrors() : Cassandra Host Pool under use - All Hosts: xx.xx.xx.102(xx.xx.xx.102):9160,xx.xx.xx.101(xx.xx.xx.101):9160,xx.xx.xx.103(xx.xx.xx.103):9160. Active Hosts: xx.xx.xx.101(xx.xx.xx.101):9160,xx.xx.xx.102(xx.xx.xx.102):9160
Teşhis
İleti işlemcisi system.log
dosyasının analizi, 5 dakikalık KVM metrik raporlarında yüksek L1MissL2Miss
değerleri olduğunu gösteriyor.
Örneğin: CACHE.org__env__KVM-Example.statistics [hitCount=215 L1MissL2Miss=14120 hitRate=5 L1MissL2Hit=212 getCount=556]
En iyi uygulama
Bu sorunu azaltmak için KVM'lerde mevcut olmayan anahtarlar için sahte değerler eklemenizi öneririz. Bu yaklaşım, mevcut olmayan anahtarlar için Cassandra'ya yapılan çağrıların sayısını azaltarak performansı artırır ve gecikmeyi azaltır.