【发布时间】:2010-11-06 19:00:10
【问题描述】:
我正在研究网站的索引/搜索功能。索引每 6 小时运行一次,大约需要 2 分钟。
在这 2 分钟内禁止读取索引文件夹的最佳方法是什么?
【问题讨论】:
我正在研究网站的索引/搜索功能。索引每 6 小时运行一次,大约需要 2 分钟。
在这 2 分钟内禁止读取索引文件夹的最佳方法是什么?
【问题讨论】:
为什么不在另一个(可能是临时的)目录中构建索引,然后在索引器完成后将新索引复制到旧索引上?然后将索引无效的时间缩短为复制文件所需的时间。
edit:下面介绍了锁定策略
如果不了解使用索引的进程如何使用它的更多信息,就很难提出一个好的锁定策略。如果索引被快速获取、读取和释放并且您对索引目录拥有独占控制权,您可以在开始时将锁定文件写入索引目录(类似于indexlock.donotuse)索引副本,完成后将其删除。如果对索引的引用被持有很长时间,lockfile 方法仍然有效,但您需要进行更复杂的协调。
您还可以将索引版本控制元数据存储在索引本身中,并将更新后的索引放在旧索引旁边。然后,当您从索引中读取时,请检查是否存在较新的索引,然后再使用您拥有的索引。
【讨论】: