容量抖动
A tiny cache evicts useful entries before reuse.
本地计算 / 模拟本地教学实验,不调用外部 API。合成示例不能替代生产环境测量。
学习指南与本课目录
LEARNING CONTRACT理解 → 实现 → 研究
目标:解释本课机制、复现一个例子、测试一个失败案例。读完不自动代表掌握。
- 理解层:写明假设、形状/单位和一个反例。
- 实现层:复算数值例子并检查边界。
- 研究层:在匹配预算下比较一个替代方法。
02 · 预测与配置
技术场景说明、参数名称与参考答案目前为英文。
03 · 检查证据
方法与参考资料
Exact-key LRU simulation. TTL starts on insertion and does not refresh on hits. Expired entries are removed before each request. Assumes stable outputs within TTL. A real cache key should include tenant, model/version, prompt and generation settings; this lab uses letters.
Text / 原始公式
hit rate=hits/requests; cost=misses×costPerMiss; mean latency=(hits×hitMs+misses×missMs)/requests
Cross-tenant key reuse can expose private data; stale cached answers may be incorrect.
Redis · eviction and TTL policies ↗练习题
cache-2 / 01What does “Capacity thrashing” test?
A tiny cache evicts useful entries before reuse.
Original teaching answer / local derivation. Method reference: Redis · eviction and TTL policies ↗
打开实验 →cache-2 / 02Which computation produces the result in “Capacity thrashing”?
hit
Original teaching answer / local derivation. Method reference: Redis · eviction and TTL policies ↗
打开实验 →cache-2 / 03What is the baseline configuration for “Capacity thrashing”?
{"keys":"A,B,A,C,A,B,D,A","capacity":1,"ttl":60,"interval":1,"cost":0.01,"missMs":1000,"hitMs":10}
Original teaching answer / local derivation. Method reference: Redis · eviction and TTL policies ↗
打开实验 →cache-2 / 04What numerical result should you check for “Capacity thrashing”?
{"Hit rate":0,"Misses":8,"Cost USD":0.08,"Mean latency (ms)":1000}
Original teaching answer / local derivation. Method reference: Redis · eviction and TTL policies ↗
打开实验 →cache-2 / 05How would you run a controlled comparison for “Capacity thrashing”?
Keep the supplied fixture and other settings fixed; change capacity. Inspect hit/miss trace, eviction order, cost and mean latency.
Original teaching answer / local derivation. Method reference: Redis · eviction and TTL policies ↗
打开实验 →cache-2 / 06What failure could invalidate a conclusion from “Capacity thrashing”?
Cross-tenant key reuse can expose private data; stale cached answers may be incorrect.
Original teaching answer / local derivation. Method reference: Redis · eviction and TTL policies ↗
打开实验 →cache-2 / 07Is “Capacity thrashing” a benchmark of a deployed language model?
No. Exact-key LRU simulation. TTL starts on insertion and does not refresh on hits. Expired entries are removed before each request. Assumes stable outputs within TTL. A real cache key should include tenant, model/version, prompt and generation settings; this lab uses letters.
Original teaching answer / local derivation. Method reference: Redis · eviction and TTL policies ↗
打开实验 →cache-2 / 08Which evidence should you report for “Capacity thrashing”?
Inspect hit/miss trace, eviction order, cost and mean latency. Export inputs, engine, result and method; distinguish synthetic fixtures from observed production data.
Original teaching answer / local derivation. Method reference: Redis · eviction and TTL policies ↗
打开实验 →cache-2 / 09How can another researcher reproduce “Capacity thrashing”?
Open cache-2, reset the preset, retain the exact inputs and run. The calculation is deterministic for identical inputs.
Original teaching answer / local derivation. Method reference: Redis · eviction and TTL policies ↗
打开实验 →cache-2 / 10What is the next validation step after “Capacity thrashing”?
Cross-tenant key reuse can expose private data; stale cached answers may be incorrect. Test the hypothesis on a representative held-out workload and document a baseline, success metric and stopping rule before claiming deployment readiness.
Original teaching answer / local derivation. Method reference: Redis · eviction and TTL policies ↗
打开实验 →假设、参考实现与验收
TTL 从插入开始且命中不刷新;LRU 顺序会刷新。实验键共享合成命名空间;生产键还须包含模型、参数和授权范围。
已复核引擎公式、场景预设及数值保护。固定种子的合成输入不是生产基准。
运行前:预测一个边界情况
A tiny cache evicts useful entries before reuse.
提示:隔离假设
固定基线输入,只改变一个参数或边界;同时比较数值与声明单位。单例通过仅验证该样例。
最小可运行算例
将算例及所链接模块保存在同一目录。使用 Node.js 22 或更高版本,然后运行 node cache-2.mjs. 无需第三方运行依赖。
import {calculate,network} from './academy-core.mjs';
const params={
"keys": "A,B,A,C,A,B,D,A",
"capacity": 1,
"ttl": 60,
"interval": 1,
"cost": 0.01,
"missMs": 1000,
"hitMs": 10
};
const result=calculate('cache',params);
console.log(result.metrics);测试与迁移
A tiny cache evicts useful entries before reuse.
在下方笔记记录输入、代码版本、期望值和实测值;再构造违反上述假设的反例,解释原结论为何不再成立。
下载完整代码包(.tar.gz) · 完整参考代码与回归检查预测、检验与证据记录
展开答案前先预测一个结果;练习后记录差异和迁移测试。记录仅存本地,在不同语言版本间共用。
打开记录/导出/清除 →数学复核范围逐篇记录,不代表完成论文实证复现;可在笔记中记录疑似错误。 复核范围