如何使用表格存储实现网盘文件的极速秒传

  1. 云栖社区>
  2. 阿里云存储服务>
  3. 博客>
  4. 正文

如何使用表格存储实现网盘文件的极速秒传

寒风~轻扬 2017-02-13 22:45:14 浏览3981
展开阅读全文

目前不少云备份、网盘等产品都提供了秒传的功能,一方面能够显著的提高了用户的使用体验,另外一方面由于避免了不必要的文件传输,又有效的降低了存储成本与带宽成本。

而实现文件的"秒传",只需要通过客户端从文件中获取一个特征值,比如常用的 MD5 值,然后在服务器上保存所有文件的特征值进行比较,如果有重复的,就无需再上传数据,只需要复制一份文件的存储路径即可。进一步考虑到文件的分享、保存以及后期的清理,我们将文件的特征值与当前引用计数存储在元数据 DB 中。

"秒传"机制看起来容易,但是在实现细节上也有不少问题需要处理。

面临的问题

上传的一致性问题

同一个文件同时由多个用户上传,如果没有锁保护,会出现先更新的值被后更新的值覆盖掉的情况,计数会低于实际引用的用户数量,导致文件可能被提前删除。

UploadConsistency

删除的一致性问题

在删除时, __使用异步删除能够明显的提高

网友评论

登录后评论
0/500
评论
寒风~轻扬
+ 关注
所属云栖号: 阿里云存储服务