アンチパターン: 存在しない KVM がレイテンシに与える影響

Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントに移動します。
情報

Key-Value マップ(KVM)ポリシーは、システム内の構成と動的値を管理するうえで基本的なコンポーネントです。ただし、これらの KVM 内に存在しないキーが存在し、ルックアップが行われると、パフォーマンスに大きな影響を与え、レイテンシが増加する可能性があります。

アンチパターン

KVM ポリシーが Key-Value マップに存在しないキーの値を取得しようとすると、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 への呼び出しの数が減り、パフォーマンスが向上し、レイテンシが短縮されます。

関連情報