以专业角度谈谈115网盘的秒传功能

回复 已回复29 星标
更多

以专业角度谈谈115网盘的秒传功能

       我来以专业角度说说秒传等等功能, 作为微软skydrive开发人员, 我们都深知网盘中存在比较多的重复文件, 特别是音乐. 影片之类, 其实从服务器角度考虑, 服务器在秒传文件时候, 并不是使用所谓的MD5或者CRC32冗余校验循环, 服务器判断文件重复的根据主要是文件头和文件散扇区校验. 试想一下如果服务器对上传的文件进行校验, 需要耗费大量的硬盘资源, 因为可能同时有很多文件进行校验, 不可能一下子就能校验完成的, 如果进行校验MD5, 硬盘可能将会忙碌于大量I/O扇区操作.

       从目前主流的网盘技术出发, 一般使用的是比较先进的header check技术, 也是TCP/IP的GET头校验 (8byte), 并配合 10%左右的文件片区SHA1散列校验, 因为同一个文件在一个随机单元的重复率是SHA1 40bits*10^8, 也就是说只要有大约10%的GET头steaming校验和少量SHA1散列校验即可.

       举一个比较通俗的例子, 115网盘再进行秒传的时候, 一般15G的文件能够在数秒内完成, 如果是校验本地硬盘的SHA1和服务器对比, 绝对不可能完成 (udown是完整文件校验, 不知道开发者为什么不采用网页的片区校验).

倒序阅读 1# 2012-10-04 12:20

好吧,我好像看懂了

2# 2012-10-04 12:21

技术好贴!顶一个!

3# 2012-10-04 12:45

技术贴~~~~md5确实比较慢~~

4# 2012-10-04 13:35

楼主的用户名真威武!

5# 2012-10-04 14:14
楼主的用户名太霸气了

6# 2012-10-04 15:01

技术无极限,楼主的名字让人膜拜。

7# 2012-10-04 18:10

喔?奇怪。

8# 2012-10-04 20:17

楼主已经给115提出了技术革新的思路,是好文章,,看看微软怎么做科研的。。是呀这样能降低校验时间,很有用啊

9# 2012-10-04 21:31

学到了,技术牛人

10# 2012-10-07 10:20

这些不都在迅雷离线实现了吗?

 

11# 2012-10-07 11:18

如果恶意传输两个差别很小的文件会出现什么情况?

12# 2012-10-08 10:10

LZ的意思是牺牲准确性换速度看,你举例的15G大小的文件,如果仅修改了其中一个配置文件,而配置文件正好在15G中比较靠后的地方,也能正确的秒传?我想秒传是在服务端已经把上传好的文件MD5已经计算完成了吧,如果你怕IO吃不消,可以在接收端读取数据时在内存先计算好啊。客户端计算MD5也只是浪费客户端的资源,稍微慢一点还是比不准确的好!!

13# 2012-10-08 10:22

一直以为是对比md5···

14# 2012-10-08 10:48

这是楼主进入115的第一步,祝你成功!

15# 2012-10-08 10:53

欢迎大家加入112018圈

16# 2012-10-08 17:43
楼主威武

17# 2012-10-08 17:44
sk居然不支持自家的xp,伤不起啊

18# 2012-10-08 18:03

SK一点都不好用!

19# 2012-10-08 19:26

真霸气!!

20# 2012-10-08 19:34
楼主霸气
新窗口打开 关闭