“脏页写回、预取和不同页面成本产生 weighted caching 等变体。LRU 的 stack property 也依相同请求序列与标准单位页模型;换成带费用或可变大小对象后,需要新的算…”
形式陈述
算法与 phase
在分页问题中,缓存容量为整数
Clean 与 stale 分析
固定一个不随算法随机选择而改变的请求序列。除首个 phase 外,阶段开始时缓存恰好包含上一阶段的
每个 clean 页首次请求都会缺页。对尚未请求的 stale 页,均匀淘汰使它们处于对称地位:若已有
这里对固定请求前缀平均全部算法随机性,不是再条件于已经揭示的具体缓存。每次均匀淘汰以及随后删除已请求的 stale 页,都保持未请求页中缺失集合的均匀对称性。用
结合相邻阶段的离线成本下界,得到
直觉
标记保护本 phase 已请求的页,只在尚未请求的旧页之间随机淘汰。随着 stale 页逐个被请求,仍可能被淘汰的对称候选数不断减少,fault 概率形成调和和;clean 页则连接相邻 phases,并为 OPT 提供不可避免的下界。
例子与边界
一 phase 图像
缓存含上一 phase 的
对手边界
上述保证针对 oblivious adversary,即先固定请求序列,再对算法随机性取期望。若对手观察缓存后专门请求刚被淘汰的页,就会破坏 stale 页的对称性。
推论与应用
OPT 下界与 phase 衔接
第
所有页都 marked 时不应立即随机淘汰 marked 页,而应在下一次将出现新 distinct 页时结束 phase、清标记,再按未标记规则处理。实现边界错一请求会破坏 clean/stale 定义。
一阶段缓存怎样变化
设 a,b,c,b,d。前三个不同页被标记;第二次 b 命中且仍保持标记。请求 d 会开启下一 phase,而不是在已有三个标记页中强行找“未标记页”淘汰;清空标记后再处理 d,算法不变量才成立。
随机抽样的候选集合应恰好是当前未标记的缓存页。最直接实现逐请求扫描至多
参考资料
- Amos Fiat et al., Competitive Paging Algorithms, Journal of Algorithms, 1991,§3:Marking 的
竞争界。 - Allan Borodin, Ran El-Yaniv, Online Computation and Competitive Analysis, 1998.