Parent research epic: #39
背景
当前 changed-path 查询需要扫描 upper/CL 目录。随着生成文件和修改数量增加,该操作会反复遍历本地树;同时系统没有在首次 copy-up/delete 时稳定记录 lower object identity,难以进行精确冲突检测、选择性 commit cleanup 和确定性重建。
目标
为每个 workspace 维护事件驱动的 UpperManifest:
struct DeltaEntry {
path: RelativePath,
kind: Added | Modified | Deleted | Renamed | MetadataChanged,
base_snapshot: SnapshotId,
base_object_oid: Option<ObjectId>,
current_content_oid: Option<ObjectId>,
mode: Option<u32>,
source_path: Option<RelativePath>,
manifest_generation: u64,
}
manifest 存放于 daemon 控制目录,不放入用户可见 upper namespace。
Tasks
Acceptance Criteria
Paper Measurements
- changed-path query latency vs upper tree size;
- scan-based 与 manifest-based status 对比;
- manifest write amplification;
- rebuild/replay latency;
- delta storage size;
- crash repair cost。
Relevant Files
src/daemon/antares.rs
src/antares/fuse.rs
libfuse-fs integration points
tests/antares_test.rs
Dependencies
Issue 3–5。部分 observer 接口可提前原型化。
Parent research epic: #39
背景
当前 changed-path 查询需要扫描 upper/CL 目录。随着生成文件和修改数量增加,该操作会反复遍历本地树;同时系统没有在首次 copy-up/delete 时稳定记录 lower object identity,难以进行精确冲突检测、选择性 commit cleanup 和确定性重建。
目标
为每个 workspace 维护事件驱动的
UpperManifest:manifest 存放于 daemon 控制目录,不放入用户可见 upper namespace。
Tasks
{SnapshotId, UpperManifest, CAS}重建工作区;.libra等控制数据继续排除;Acceptance Criteria
GET changes的复杂度主要与 delta 数量相关,不依赖完整 upper 目录规模;Paper Measurements
Relevant Files
Dependencies
Issue 3–5。部分 observer 接口可提前原型化。