Files
markbase/docs/IMPLEMENTATION_DECISION.md
Warren 1300a4e223
Some checks failed
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
MarkBase架构升级:Multi-Volume Virtual Tree + Dual-View Management + Git Remote修正
核心功能:
-  Categories/Series双视图管理(category_view.rs + import_markdown.rs)
-  FUSE Multi-Volume支持(tree_type参数)
-  SSH/SFTP/SCP/rsync协议完整实现(4042行)
-  NFS/SMB Module Phase 1-3完成
-  Archive Module Phase 1-4完成(2916行)
-  Download Center API完整实现
-  S3兼容API实现(560行)

Git配置修正:
-  删除错误origin(gitea.momentry.ddns.net)
-  删除m5max128(指向机器名)
-  设置origin = m5max128gitea.momentry.ddns.net/admin/markbase
-  设置m4minigitea = m4minigitea.momentry.ddns.net/warren/markbase

数据清理:
-  删除38个临时SQLite(保留accusys.sqlite、demo.sqlite)
-  删除.bak、test_*.bin、调试脚本等临时文件
-  删除临时目录(build/、download files/、raid_test/等)
-  更新.gitignore排除临时文件

架构优化:
- 52个文件修改,2434行新增,4739行删除
- Workspace成员整合(16个crate)
- 数据库状态:accusys.sqlite保留(主demo测试)

远程同步:
-  准备推送到m5max128gitea(远程Gitea)
-  准备推送到m4minigitea(本地Gitea)
2026-06-12 12:59:54 +08:00

2.4 KiB
Raw Blame History

双方案实施决策

核心问题

方案一是否需要实体复制?

  • 是的需要实体复制16GB文件
  • 从真实路径复制到WebDAV目录
  • 占用额外磁盘空间

方案二是否需要实体复制?

  • 不需要实体复制!
  • 直接读取真实文件通过aliases_json path
  • 零磁盘占用

性能对比

场景 方案一 方案二 差距
PROPFIND12659 nodes ~60秒 ~0.1秒 600倍
打开目录802 folders ~4秒 ~0.01秒 400倍
磁盘占用 +16GB 0GB

技术可行性

方案一:

  • 实现简单30分钟
  • 使用现有LocalFs
  • 占用16GB磁盘
  • 性能受限(小文件慢)
  • 不是真正虚拟文件系统

方案二:

  • 不需要实体复制
  • 性能提升600倍
  • 真正虚拟文件系统
  • ⚠️ 实现复杂度中等3.5小时)
  • ⚠️ 需要实现DavFileSystem trait3个核心方法

DavFileSystem核心方法

必须实现:

  1. read_dir() - 低复杂度使用query_children
  2. metadata() - 低复杂度使用query_node
  3. open() - 中复杂度需要DavFile trait

可选实现:

  • 其他方法可返回NotImplemented写入操作

决策建议

推荐顺序:方案二优先

理由:

  1. 不需要实体复制(零磁盘占用)
  2. 性能提升600倍解决核心问题
  3. 真正虚拟文件系统(符合长期目标)
  4. 实现复杂度可控3个核心方法

方案一作为备选:

  • 如果方案二遇到技术障碍
  • 快速验证WebDAV功能
  • 30分钟实现

实施计划

阶段1方案二核心实现3.5小时)

  1. 创建markbase_fs.rs实现DavFileSystem
  2. 创建dav_items.rsDavMetaData/DavFile
  3. 修改handler.rs替换LocalFs
  4. 单元测试read_dir/metadata/open
  5. Finder验证<3秒显示12659文件

阶段2方案一备选30分钟可选

  1. 创建复制脚本
  2. 执行实体复制(如果需要)
  3. Finder验证慢但可见

最终决策

用户决策点:

  1. 是否愿意投入3.5小时实现方案二?
  2. 是否接受方案一占用16GB磁盘
  3. 是否优先考虑性能600倍提升

推荐:方案二优先(无需实体复制,性能优)


最后更新: 2026-05-18 23:35