← 所有文章2026.08.14 · CS 411 · 資料庫系統

Cost-Aware Learned Caching:從 LBSC 到可驗證的系統提案

說明異質 storage 為何不能只看 miss count、LBSC 如何學 eviction,以及怎麼把後續研究縮成可信實驗。

LRU 把每次 cache miss 視為相同。這個假設在 disaggregated storage 與 raw-data engine 不成立:一個 item 可能只需少量 network read,另一個卻要大量 transfer、tokenization 與 type conversion。好的 eviction policy 應最小化 total reconstruction cost,而不是只數 miss 次數。

先改 objective

對 cached item (i),重要 signal 包含:

  • reuse probability 或下次 reuse 的時間;
  • item size;
  • fetch/reconstruction cost;
  • 等待期間占用的 cache capacity。

三者會互相拉扯。昂貴 item 值得保留,除非它太大或幾乎不會再用。因此 hit ratio 可能變好,但 monetary cost 或 latency 反而變差。

Metric 看得見 看不見
Hit ratio 從 cache 回覆的 request 比例 Size 與 miss cost
Byte hit ratio 從 cache 回覆的 byte 比例 Compute 與 remote pricing
Fetch cost Miss 的代價 Cache CPU 與 memory overhead
End-to-end latency 使用者結果 Policy 為何這樣選

白話來說: 丟掉十個很便宜的 item,可能比丟掉一個重建代價極高的 item 更好。

LBSC 的貢獻

LBSC 把 storage-disaggregated database 的 eviction 定義為 cost-aware learning problem。Offline oracle BeladySizeCost 使用 future reuse、size 與 fetch cost 產生強決策;LightGBM model 再從 recency、frequency、size、cost 等可觀察 history,學習在線近似 oracle。

這個拆法很有用:

  1. Oracle 問:知道未來時,cost-aware policy 最多能做到什麼?
  2. Model 問:online feature 能多接近這個上限?
  3. LRU、GDSF 等 baseline 問:learning 是否勝過成熟 heuristic?

Paper simulation 對 heuristic baseline 顯示有意義的 total-cost reduction;比單一百分比更值得留下的是這個 evaluation structure。

證據要小心看的地方

Synthetic cost 限制 external validity

Access trace 可能只有 sequence 與 object size,沒有每次 remote fetch 或 computation 的真實成本。Synthetic cost 適合 controlled experiment,但核心 heterogeneity 也就來自實驗者假設。要做 deployment claim,仍需量真實 data path。

Workload 會 drift

Learned policy 可能記住昨天的 reuse pattern。Evaluation 應包含 phase change、new object、cost change 與 retraining delay;不只比 steady-state saving,也要比適應期間造成的損失。

Inference 不是免費

Model CPU、feature maintenance、memory metadata 與 retraining 都要放進 cost equation。在 latency-sensitive cache path 上,小幅 fetch saving 未必值得系統複雜度。

把想法變成可信的後續研究

把 NoDB positional/binary cache 與 learned cost-aware eviction 結合是合理題目:tokenization 和 conversion 確實可能形成 heterogeneous reconstruction cost。但第一版不該直接變成「打造新的 database cache」。

Minimum viable experiment

  1. 只處理 chunked CSV binary cache。
  2. Entry 定義為 (file, column, chunk)。
  3. Instrument 真實 read、tokenization、conversion 與 memory cost。
  4. 從真實 query runner 收 trace。
  5. Offline replay LRU、GDSF、simple cost heuristic、oracle 與 learned policy。
  6. Replay 顯示穩定 gap 後,才做 online integration。

這個順序把 policy quality 與 database engineering 分開。如果實測 cost 幾乎一致或無法預測,研究優勢可以很早、很便宜地被否證。

Ablation 計畫

Experiment 回答的問題
LRU vs cost heuristic 不用 ML,cost awareness 是否已有效?
Heuristic vs learned policy Learning 是否真的增加價值?
拿掉 plan feature Query context 是否有幫助?
Fixed vs drifting workload Model 多快過時?
Replay vs integrated engine Systems overhead 是否吃掉 simulator gain?

Offline oracle 是上限,不是公平的 deployable competitor;最強 practical baseline 應該一直留在每張 chart。

Stop condition 也是設計的一部分

遇到以下情況就應停止或換方向:

  • Reconstruction cost 幾乎沒有 variance;
  • 便宜 feature 無法預測 reuse 或 cost;
  • Simple size-cost heuristic 已追上 model;
  • Inference 與 metadata 吃掉 savings;
  • Workload shift 後 benefit 消失。

Implementation 前先寫下這些條件,可以避免研究問題最後變成「一定要贏」的 demo。

複習卡

  • 應優化 miss cost,而不只是 miss count。
  • Reuse、size 與 reconstruction cost 會把 eviction decision 拉向不同方向。
  • Oracle 定義 opportunity;deployable baseline 定義 practical value。
  • Synthetic cost 支持 controlled analysis,但不足以支撐完整 deployment claim。
  • 深入改 engine 前應先做 trace replay。
  • Ablation、drift test、overhead 與 stop condition 讓 learned-systems 結果可信。