FTNApp存储管理设计

 广州研发部 terrytan
存储需求

      文件列
       表


临时存
 储
            文件
            实体
使用SQLite存储
SQLite-用于查询存储



数据          存储         查询

• 插入                 • 检索
• 修改                 • 排列
            SQLite
• 删除
SQLite-用于状态记录



设置        状态

     临时
     存储
SQLite-用于批量读取


tmb1
              tmb1+tmb2+
       tmb2      tmb3

tmb3



缩略图写入         多图读取
使用文件存储
文件-文件下载


           tmp    • 断点续传


• 实体文件   bin

           link   • 带后缀软链
文件-文件位置
Doc     QMFTN.db
        QMFTN.thumb.db
        QMFTN_USER.db
        zips/sha.tree

Cache   bin/sha

        bin/sha.dir/name.ext
        link/sha.ext

Tmp     file/sha

        media/sha

        zip/name.ext
文件-空间回收

超过限制


       时间倒序


              保留至限
               制大小
文件-管理思路
• 无索引
 – 无须考虑数据一致性

• 按目录存放
 – 可按目录回收

• 按文件回收
 – 文件等价
 – 文件无差别回收
谢谢

Ftn存储设计