知识卡片

动态集合:靠周期性重建和预留空隙摊销更新成本

普通读书笔记卡 · 1227.e

内容

静态索引构造技巧假设数据一次性写定,但真实文档集合持续增删会暴露两个问题:压缩模型基于旧文本统计,新词只能用”逃逸”标记退化成不压缩存储;倒排列表变长后定长磁盘块可能装不下。解法是用可预测的浪费换可控的更新成本:压缩模型等文本累积膨胀到原来数倍才重建一次,重建次数是对数级、可预先估算;索引磁盘块预留约5%空闲空间吸收记录增长,配合内存更新缓存把频繁小规模磁盘操作合并成少量大块读写。

参考来源

- 位置:第5章《索引构造》「动态集合」小节(源文件:_chapter-text/ch05.txt) - 结论依据:原文说明压缩模型用escape标记处理新词、周期性重建(3倍扩展)控制压缩率下降,且索引块预留5%空闲空间配合更新缓存摊销更新成本,直接支持卡片论点。 - 原始内容:"模型应该能够提供一种'escape'标记用来指示一个文档或者文档的部分以未压缩的形式存储……检索系统应该周期性重建(rebuilt)……在通用数据集上采用某种保守的方法,每次重建(rebuiding)数据集将在大小上扩大3倍……实验表明……仅有大约5%的未使用空间……使用一个更新缓存(update cache)来存放这些更新请求。"