第28篇缓存失效与填充竞态实验记录 日期:2026-09-25 源码:examples/distributed-systems/cache28/check.py 解释器:Python 3.12.3 TMPDIR、TMP、TEMP均指向仓库examples/distributed-systems/.build/cache28/tmp;设置PYTHONDONTWRITEBYTECODE=1并使用python3 -B。 正式全场景与--help:工具chunk a10b61,退出0。结构化输出写入.build/cache28/observations.json。 非法--scenario unknown:工具chunk d1460e,argparse退出2。 实际观察: 1. 先delete、读DB v1、提交DB v2、无条件set v1:stale=true。 2. 读DB v1、提交DB v2、delete空key、无条件set v1:stale=true。 3. 回填早于第二次delete时最终miss;回填晚于第二删时stale=true。 4. TTL示例在时间9仍返回v1,时间10过期为miss。 5. delete推进lease generation后,旧token填充被拒,新token填充v2成功。 6. minimum-version=2拒绝v1、接受v2;单key串行化示例最终为v2。 未启动真实Memcached或数据库;无网络、子进程、下载或编译。研究资料下载在已忽略的.build/cache28/research,不能算产品运行。