SAG / ARCHITECTURE NOTE

キャッシュキーとバージョン:高速な結果を古い結果にしないために

キャッシュの定義と必要性、仕組み、SAGアーキテクチャへの適用基準と実務チェックリストを、研究論文や公式文書を根拠に解説します。

Markdownをダウンロード

一文で定義

キャッシュとは、同じ入力と実行条件の結果を再利用し、条件が変わると自動的に切り分ける保存戦略です。

要点:URLだけをキャッシュキーにすると、質問、言語、ルール、モデルが異なっていても古い結果が返される可能性があります。反対に、キーを細かくしすぎると再利用のメリットが失われます。

なぜこの技術が必要なのか?

URLだけをキャッシュキーにすると、質問、言語、ルール、モデルが異なっていても古い結果が返される可能性があります。反対に、キーを細かくしすぎると再利用のメリットが失われます。

仕組み

tenant、正規化した入力のhash、ルール・schema・モデルのバージョン、収集条件をキーに含め、TTLと明示的な無効化ポリシーを設けます。

設計時に見るべきなのは正確さだけではありません。遅延時間、コスト、データ境界、更新頻度、障害時の動作も併せて定義することで、運用時に再現可能な結果が得られます。自動化で値を確信できない場合は、0や成功に置き換えず、未計測・要確認の状態として残すのが安全です。

SAGの技術との関連

SAGのqueue、cache、runは、同一の入力hash契約を共有します。キーにtenantの範囲を含めることで、顧客間で結果を再利用した際のデータ混在を防ぎます。

実務チェックリスト

  • tenantと入力hashをキーに含めます
  • ルールの変更時はバージョンによって無効化します
  • キャッシュhitもprovenanceに記録します
  • 失敗・空の結果・権限エラーの状態を成功と区別します
  • 変更の前後を同じ条件で再検証します

研究論文と公式文書

参考文書は原理と推奨事項の根拠です。検索での露出、AIによる言及、順位、売上を保証するものではありません。実際の適用効果は、サービスのデータを用いて同一条件で観測し、確認する必要があります。

テーマ別の技術資料

この技術をさらに読む

テナント権限、ジョブの再試行、キャッシュ、承認履歴について確認します。

記事一覧