Document bounded archive index rescans accurately
This commit is contained in:
@@ -18,9 +18,9 @@ import java.util.function.Supplier;
|
|||||||
* 因此采用「按需扫描建表 + 扫描频率受限 + 可显式失效」:
|
* 因此采用「按需扫描建表 + 扫描频率受限 + 可显式失效」:
|
||||||
*
|
*
|
||||||
* <ul>
|
* <ul>
|
||||||
* <li>命中:O(1) 直接返回,且仍校验文件是可读普通文件;</li>
|
* <li>在扫描有效间隔内:O(1) 查表返回,且仍校验文件是可读普通文件;</li>
|
||||||
* <li>扫描频率有界:命中不触发扫描;未命中时,距上次扫描超过
|
* <li>扫描频率有界:距上次扫描超过
|
||||||
* {@code rescanIntervalMillis} 才重扫一次。因此归档完成后新出现的目录无需外部
|
* {@code rescanIntervalMillis} 时下一次查询才重扫。因此归档完成后新出现的目录无需外部
|
||||||
* 干预即可被发现,而未知 gid 也无法把扫描频率推高到「每个请求一次」;</li>
|
* 干预即可被发现,而未知 gid 也无法把扫描频率推高到「每个请求一次」;</li>
|
||||||
* <li>{@link #invalidate()}:强制下次查询重扫,供批量归档/删除后立即失效;</li>
|
* <li>{@link #invalidate()}:强制下次查询重扫,供批量归档/删除后立即失效;</li>
|
||||||
* <li>索引规模只覆盖画廊根目录这一层,受目录数量约束。</li>
|
* <li>索引规模只覆盖画廊根目录这一层,受目录数量约束。</li>
|
||||||
@@ -33,7 +33,7 @@ public final class GalleryArchiveIndex {
|
|||||||
/** 返回画廊根目录下的一层子目录;可能为 null 或空。 */
|
/** 返回画廊根目录下的一层子目录;可能为 null 或空。 */
|
||||||
private final Supplier<File[]> subdirectoryLister;
|
private final Supplier<File[]> subdirectoryLister;
|
||||||
|
|
||||||
/** 未命中后允许重扫的最小间隔,避免未知 gid 造成扫描风暴。 */
|
/** 查询时允许重扫的最小间隔,避免未知 gid 造成扫描风暴。 */
|
||||||
private final long rescanIntervalMillis;
|
private final long rescanIntervalMillis;
|
||||||
|
|
||||||
private final LongSupplier clock;
|
private final LongSupplier clock;
|
||||||
|
|||||||
Reference in New Issue
Block a user