Antimuster: Auswirkungen nicht vorhandener KVMs auf die Latenz

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zuApigee X wechseln.
info

Richtlinien für Schlüssel/Wert-Zuordnungen (Key-Value Map, KVM) sind eine grundlegende Komponente bei der 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 eine KVM-Richtlinie versucht, einen Wert für einen Schlüssel abzurufen, der in der Schlüssel/Wert-Zuordnung nicht vorhanden ist, führt dies zu zusätzlichen Aufrufen der Cassandra-Datenbank. Diese erhöhte Kommunikation mit der Back-End-Datenbank, insbesondere für nicht vorhandene Schlüssel, verbraucht mehr Ressourcen und Zeit und erhöht so die Gesamtlatenz der Anfrage.

Auswirkungen

Die Hauptauswirkung dieses Anti-Patterns sind erhöhte Laufzeitlatenzen und Datenspeicherfehler. Die Verarbeitungsgeschwindigkeit und der Datenzugriff des Systems werden negativ beeinflusst, da der hohe Prozentsatz von Suchvorgängen nach nicht vorhandenen Schlüsseln 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 Datei system.log weist auf wiederkehrende Cassandra-bezogene Fehler hin, insbesondere in Bezug auf den Datenabruf und den Hostpoolstatus. Wichtige Fehlermeldungen:
  • 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 zeigt erhöhte L1MissL2Miss-Werte in den 5-Minuten-Berichten zu KVM-Messwerten.

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, Dummy-Werte für nicht vorhandene Schlüssel in den KVMs 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.

Weitere Informationen