您正在查看 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 文件的分析显示,在 5 分钟 KVM 指标报告中,L1MissL2Miss 值有所增加。
例如:CACHE.org__env__KVM-Example.statistics [hitCount=215 L1MissL2Miss=14120 hitRate=5 L1MissL2Hit=212 getCount=556]
最佳做法
为了缓解此问题,我们建议在 KVM 中为不存在的键添加虚拟值。这种方法应减少对 Cassandra 中不存在的键的调用次数,从而提高性能并缩短延迟时间。