過去問ドリル

AI-200:Developing AI Cloud Solutions on Azure Azure データ管理サービスを使った AI ソリューションの開発 問8

Azure データ管理サービスを使った AI ソリューションの開発/Azure Managed Redis の AI ソリューションへの統合

商品データを Azure Cosmos DB に保存し、読み取りを速くするために Azure Managed Redis を cache-aside パターンで使っています。商品の価格を更新したあと、しばらく古い価格が表示されてしまう問題が起きています。対処として最も適切なものはどれですか。

当サイトのオリジナル問題(AI-200:Developing AI Cloud Solutions on Azureの出題範囲「Azure データ管理サービスを使った AI ソリューションの開発」に対応。実際の試験問題ではありません)

正解:A

解説

cache-aside パターンでは、アプリがまずキャッシュを読み、無ければデータベースから読み込んでキャッシュに入れます。データを更新したときは、該当するキャッシュのキーを削除して無効化し、次の読み取りで最新の値が入るようにします。さらに各項目に有効期限(TTL)を設定しておくと、無効化に失敗した場合でも、古い値が残る時間に上限を設けられます。

選択肢ごとの解説

  • A正しい。更新時の無効化と有効期限を組み合わせるのが、cache-aside で古いデータを防ぐ基本的な方法です。
  • B誤り。有効期限が無いと、古い価格がいつまでも残り続けるおそれがあり、問題が悪化します。
  • C誤り。毎回データベースも読むのでは、キャッシュを使う意味がなくなります。読み取りを速くするという目的に反します。
  • D誤り。noeviction は、メモリが不足したときにキーを削除しない設定です。更新されたデータを反映させる仕組みとは関係ありません。
AI-200:Developing AI Cloud Solutions on Azureの問題を演習モードで解く