Антипаттерн: влияние несуществующих KVM на задержку

Вы просматриваете документацию Apigee Edge .
Перейти к документации Apigee X.
info

Политики сопоставления ключей и значений (KVM) являются основополагающим компонентом управления конфигурациями и динамическими значениями в системе. Однако наличие и поиск несуществующих ключей в этих KVM может существенно снизить производительность и привести к увеличению задержек.

Антипаттерн

Когда политика KVM пытается получить значение для ключа, отсутствующего в сопоставлении «ключ-значение», это приводит к дополнительным обращениям к базе данных Cassandra. Это увеличивает нагрузку на внутреннюю базу данных, особенно для несуществующих ключей, потребляет больше ресурсов и времени, тем самым увеличивая общую задержку запросов.

Влияние

Основным эффектом этого антипаттерна являются повышенные задержки выполнения и ошибки хранилища данных. Это негативно сказывается на скорости обработки системы и доступе к данным, поскольку высокая доля несуществующих поисков по ключу является основной причиной наблюдаемых задержек. Эта характеристика выполнения напрямую зависит от характера входящих запросов.

Симптомы

  • Система демонстрирует повышенные задержки во время выполнения.
  • Ошибки хранилища данных, указывающие на проблемы со скоростью обработки и доступом к данным.

Сообщения об ошибках

Анализ файла system.log указывает на наличие повторяющихся ошибок, связанных с Cassandra, в частности, связанных с извлечением данных и состоянием пула хостов. Основные обнаруженные сообщения об ошибках включают:
  • 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

Диагноз

Анализ файла system.log процессора сообщений выявляет повышенные значения L1MissL2Miss в 5-минутных отчетах по метрикам KVM.

Например: CACHE.org__env__KVM-Example.statistics [hitCount=215 L1MissL2Miss=14120 hitRate=5 L1MissL2Hit=212 getCount=556]

Лучшая практика

Для решения этой проблемы мы рекомендуем добавлять фиктивные значения для несуществующих ключей в KVM. Такой подход должен сократить количество вызовов Cassandra для несуществующих ключей, повысить производительность и сократить задержку.

Дальнейшее чтение