# セマンティックキャッシュ ## 定義 セマンティックキャッシュ(semantic caching)とは、クエリの結果だけでなくクエリの意味(セマンティクス、すなわち射影列・述語・時間範囲・集約等)も併せてキャッシュし、新規クエリとキャッシュ済みクエリのセマンティクスの相関を比較することでキャッシュデータを再利用する手法である。key-value キャッシュ(完全一致マッチングのみ)と異なり、部分的にしか一致しないクエリにも(フィルタ・集約を介して)キャッシュ結果を再利用できる点が特徴。([[@2025__VLDB__STsCache - An Efficient Semantic Caching Scheme for Time-series Data Workloads Based on Hybrid Storage]] §2.2.1) 時系列データワークロードに対する形式化として、[[@2025__VLDB__STsCache - An Efficient Semantic Caching Scheme for Time-series Data Workloads Based on Hybrid Storage]] は Semantic Meta($q_M, q_F, q_P, q_G, q_T$ の 5 要素組)・Semantic Series(データソース単位のセマンティクス)・Semantic Metric(同一のフィールドキー・述語・集約を共有する Semantic Series の集合)を定義し、キャッシュ済みクエリが新規クエリに Direct/Filtered/Aggregated Answer のいずれかで回答可能かを Cache Answerable として形式化した。これにより Full Hit(完全回答)・Partial Hit(部分回答、probe query + remainder query に分解)という 2 種のヒットを厳密に区別できる。(Source: [[@2025__VLDB__STsCache - An Efficient Semantic Caching Scheme for Time-series Data Workloads Based on Hybrid Storage]] §3) ## 横断的知見 - **セマンティックキャッシュの実用化は「クエリ間の意味的関係を活かす vs. 実装コストを抑える」のトレードオフに沿って進化してきた**: [[BSCache]] はメタデータとデータの意味的関係を扱う点でセマンティックキャッシュの範疇に入るが、クエリ間の関係(結果の集約による再利用)を見落とし、特定システムへの組み込み・純インメモリという実装上の制約により大容量化を犠牲にした。[[STsCache]] はこの両方を同時に解く——形式的なセマンティクス定義とグラフ+スキップリスト索引でクエリ間関係を汎用的に扱い、ハイブリッドストレージで大容量化する——ことで先行研究の課題を統合的に解決した。(Source: [[@2025__VLDB__STsCache - An Efficient Semantic Caching Scheme for Time-series Data Workloads Based on Hybrid Storage]] §1, §5.3) - **時系列データのセマンティックキャッシュは append-only・write-once という性質ゆえに、一般的なセマンティックキャッシュ研究(クライアント-サーバ DB・Web・モバイル向け)が抱える「キャッシュ一貫性」の課題を持たない**: STsCache は時系列データが追記のみで更新・削除されないことを前提に、キャッシュコヒーレンシ機構(invalidation・staleness 管理)を一切設計に含めていない。これは LLM 向けセマンティックキャッシュ(GPTCache 等、応答が非決定的でキャッシュの有効性判断が難しい)や Web セマンティックキャッシュ(ページ内容の更新頻度に依存)とは前提が根本的に異なる、時系列データ固有の単純化である。(Source: [[@2025__VLDB__STsCache - An Efficient Semantic Caching Scheme for Time-series Data Workloads Based on Hybrid Storage]] §4.3) - **セマンティックマッチングの高コスト性は、汎用データ構造(グラフ+索引)への還元によって初めて大容量キャッシュで実用化される**: 素朴なセマンティックマッチング(クエリ対全キャッシュ済みクエリの総当たり比較)は $O(N \cdot \sigma)$ かかり大容量キャッシュでは非現実的である。STsCache のセマンティックインデックス(Semantic Graph + Time-range Skip List)は、Answer Path をグラフの辺として事前計算しておくことでマッチングを $O(\sum(1+\log N_i))$ まで削減する——「セマンティクスの比較」という抽象的操作を「グラフ探索+スキップリスト検索」という具体的データ構造操作に還元することが、セマンティックキャッシュを大容量ワークロードで実用化する鍵となる。(Source: [[@2025__VLDB__STsCache - An Efficient Semantic Caching Scheme for Time-series Data Workloads Based on Hybrid Storage]] §4.4.3) ## 未解決の問い - STsCache は append-only 前提でキャッシュ一貫性を考慮不要としたが、更新・削除を伴う時系列データ(例: バックフィル補正、欠損値の事後挿入)に同じセマンティックインデックス設計を適用する場合、どのような invalidation 機構が必要になるか。 - セマンティックグラフ(Semantic Metric 単位のノード化)は、ワークロードのタグ・フィールド組み合わせの多様性が増すとノード数・エッジ数がどうスケールするか。定量的な感度分析(グラフサイズの上限、探索コストの実測)は STsCache 論文にも示されていない。 - LLM 向けセマンティックキャッシュ(GPTCache 等)は応答の非決定性ゆえにセマンティック類似度のしきい値判断が難しい。時系列セマンティックキャッシュの厳密な Cache Answerable 定義(Definition 4)を、埋め込みベースの近似セマンティックマッチングを要する他ドメイン(自然言語クエリ・LLM プロンプト)にどこまで一般化できるか。 - BSCache のエビクションアルゴリズム(ストレージユニットと直近クエリの距離計算)がなぜ大容量キャッシュで著しいオーバーヘッドを生むのか、STsCache のセマンティック値+バッチエビクションとの定量的なコスト比較(同一ワークロード・同一容量での直接比較)は STsCache 論文にも示されていない。 ## 関連 - ソース: [[@2025__VLDB__STsCache - An Efficient Semantic Caching Scheme for Time-series Data Workloads Based on Hybrid Storage]] - 概念: [[時系列データベース]] / [[分散キャッシュ]] - エンティティ: [[STsCache]] / [[TSCache]] / [[BSCache]] / [[Hui Li]] / [[Xidian University]] ## 出典 - [[@2025__VLDB__STsCache - An Efficient Semantic Caching Scheme for Time-series Data Workloads Based on Hybrid Storage]](セマンティック時系列キャッシングの形式的定義・STsCache 設計・TSCache/BSCache との比較実験)