好买网(www.goodmai.com)在全球分布式文件系统领域, 已经有许多人的尝试。一些系统已经取得了重大的成功,而很多却完全失败了。在学术尝试中,AFS[6]就是成功的例子,如今已经得到广泛的应用, 然而,其他的[7,?]却没有得到相同的结果。在学术界之外,应用最广泛的是面向音视频媒体的点对点文件共享系统。最值得注意的是,Napster,KaZaA和BitTorrent[2]部署的文件分发系统支持1亿用户的同时在线。即使在今天,BitTorrent 也维持着每天千万节点的活跃数。基于这些学术文件系统理论而实现的应用程序有很多的用户量,然而,这些系统理论是在应用层,而没有放在基础层。以致没有出现通用的文件系统基础框架, 给全球提供低延迟的分发。
也许是因为HTTP这样“足够好”的系统已经存在。到目前为止,HTTP已经作为“分布式文件系统“的协议,并且已经大量部署,再与浏览器相结合,具有巨大的技术和社会影响力。在现在,它已经成为互联网传输文件的事实标准。然而,他没有采用最近15年的发明的数十种先进的文件分发技术。从一方面讲, 由于向后兼容的限制和当前新模式的投入,不断发展http web 的基础设施几乎是不可能的。但从一个角度看,从http 出现以来,已经有许多新协议出现并被广泛使用。升级http协议虽然能引入新功能和加强当前http协议,但会降低用户的体验。
有些行业已经摆脱使用HTTP这么久,因为移动小文件相对便宜,即使对拥有大流量的小组织也是如此。但是,随着新的挑战,我们正在进入数据分发的新纪元。
托管和分发PB级数据集;
跨组织的大数据计算;
大批量的高清晰度按需或实时媒体流;
大规模数据集的版本化和链接;
防止意外丢失重要文件等。
其中许多可以归结为“大量数据,无处不在”。由于关键功能和带宽问题,我们已经为不同的数据放弃了HTTP分销协议。下一步是使它们成为web自己的一部分。
正交于有效的数据分发,版本控制系统,已经设法开发重要的数据协作工作流程。Git是分布式源代码版本控制系统,开发了许多有用的方法来建模和实现分布式数据操作。Git工具链提供了灵活的版本控制功能,这正是大量的文件分发系统所严重缺乏的。由Git启发的新解决方案正在出现,如Camlistore [?],个人文件存储系统,Dat [?]数据协作工具链和数据集包管理器。Git已经影响了分布式文件系统设计[9],因为其内容涉及到Merkle DAG数据模型,能够实现强大的文件分发策略。还有待探讨的是,这种数据结构如何影响面向高吞吐量的文件系统的设计,以及如何升级Web本身。
本文介绍了IPFS,一种新颖的对等版本控制的文件系统,旨在调和这些问题。IPFS综合了许多以前成功的系统的优点。IPFS产生了突出的效果, 甚至比参考的这些系统的总和还要好。IPFS的核心原则是将所有数据建模为同一Merkle DAG的一部分。好买网(www.goodmai.com)