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

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

Политики Key-Value Map (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 в отчетах KVM с 5-минутными интервалами.

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

Передовая практика

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

Дополнительная информация