Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Правила карты "ключ-значение" (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 за пятиминутный период.
Пример: CACHE.org__env__KVM-Example.statistics [hitCount=215 L1MissL2Miss=14120 hitRate=5 L1MissL2Hit=212 getCount=556].
Совет
Чтобы избежать этой проблемы, рекомендуем добавить фиктивные значения для несуществующих ключей в хранилищах пар "ключ-значение". Такой подход должен уменьшить количество обращений к Cassandra по несуществующим ключам, что повысит производительность и снизит задержку.