Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu Apigee X info
KVM-Richtlinien (Key-Value Map) sind eine grundlegende Komponente für die Verwaltung von Konfigurationen und dynamischen Werten im System. Das Vorhandensein und die Suche nach nicht vorhandenen Schlüsseln in diesen KVMs kann sich jedoch erheblich auf die Leistung auswirken und zu erhöhten Latenzen führen.
Anti-Pattern
Wenn mit einer KVM-Richtlinie versucht wird, einen Wert für einen Schlüssel abzurufen, der nicht in der Schlüssel/Wert-Zuordnung vorhanden ist, führt dies zu zusätzlichen Aufrufen der Cassandra-Datenbank. Diese vermehrte Kommunikation mit der Back-End-Datenbank, insbesondere bei nicht vorhandenen Schlüsseln, verbraucht mehr Ressourcen und Zeit, was die Gesamtlatenz der Anfrage erhöht.
Auswirkungen
Die primäre Auswirkung dieses Antipatterns sind erhöhte Laufzeitlatenzen und Datenspeicherfehler. Die Verarbeitungsgeschwindigkeit und der Datenzugriff des Systems werden negativ beeinflusst, da der hohe Prozentsatz nicht vorhandener Schlüssel-Lookups der Hauptgrund für die beobachteten Latenzen ist. Dies ist ein Laufzeitmerkmal, das direkt von der Art der eingehenden Anfragen abhängt.
Symptome
- Das System weist erhöhte Laufzeitlatenzen auf.
- Datenspeicherfehler, die auf Probleme mit der Verarbeitungsgeschwindigkeit und dem Datenzugriff hinweisen.
Fehlermeldungen
Die Analyse der Dateisystem.log
weist auf wiederkehrende Cassandra-bezogene Fehler hin, insbesondere in Bezug auf den Datenabruf und den Hostpoolstatus. Folgende Fehlermeldungen wurden beobachtet:
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
Diagnose
Die Analyse der Datei system.log
des Message-Processors ergibt erhöhte L1MissL2Miss
-Werte in den 5-Minuten-Berichten für KVM-Messwerte.
Beispiel: CACHE.org__env__KVM-Example.statistics [hitCount=215 L1MissL2Miss=14120 hitRate=5 L1MissL2Hit=212 getCount=556]
Best Practice
Um dieses Problem zu beheben, empfehlen wir, in den KVMs Dummy-Werte für nicht vorhandene Schlüssel hinzuzufügen. Dieser Ansatz sollte die Anzahl der Aufrufe von Cassandra für nicht vorhandene Schlüssel reduzieren und so die Leistung verbessern und die Latenz verringern.