Parent research epic: #39
背景
在并发 workspace 中,相同 tree/blob 可能同时被多个请求触发。简单 worker pool 只能限制并发数,不能保证:
- 相同对象只进行一次物理请求;
- demand read 优先于后台 prefetch;
- 单个 workspace 不占满队列;
- unmount/refresh 后未使用请求及时取消;
- 队列和内存有边界。
目标
在实际 Dicfuse/Antares 读取路径中加入全局协调器:
enum FetchKey {
Tree { snapshot: SnapshotId, tree_oid: ObjectId },
Blob { oid: ObjectId },
}
enum FetchPriority {
DemandRead,
DemandMetadata,
BuildHint,
BackgroundPrefetch,
}
Tasks
Acceptance Criteria
Paper Measurements
- logical/physical request ratio;
- network bytes saved;
- queue P50/P95/P99;
- throughput vs workspace count;
- fairness/Jain index;
- cancellation savings;
- single-flight ablation。
Relevant Files
src/dicfuse/store.rs
src/dicfuse/async_io.rs
src/manager/fetch.rs
src/dicfuse/manager.rs
Dependencies
Issue 1、Issue 4。可与 Issue 5–6 并行。
Parent research epic: #39
背景
在并发 workspace 中,相同 tree/blob 可能同时被多个请求触发。简单 worker pool 只能限制并发数,不能保证:
目标
在实际 Dicfuse/Antares 读取路径中加入全局协调器:
Tasks
FetchCoordinator,替代分散的直接 HTTP fetch;FetchKey实现 single-flight;Acceptance Criteria
Paper Measurements
Relevant Files
Dependencies
Issue 1、Issue 4。可与 Issue 5–6 并行。