需要P2p架构

时间:2014-06-04 13:59:03

标签: architecture p2p distributed

假设我想在p2p架构中实现分散式Dropbox。对于每个文件夹,将有N个用户共享文件。所以,我认为所有文件都需要存储在每个对等体中(它们需要在任何时间点查看,打开,写入,创建...文件)。例如,当用户更改文件的内容时,他必须向其他对等方发送消息,警告他们有关更改,以便保持所有复制文件之间的一致性。

在这种问题中,我不明白为什么我应该使用时尚p2p结构化网络(如Chord等)。假设我们在三个对等体(A,B,C)之间有一个共享文件夹。如果peerA更改文件并且它仅警告peerB(期望peerB将联系peerC),如果peerB在将消息发送到peerC之前断开连接,则peerA和peerC将具有不同的文件。

每个对等体是否更容易存储对所有其他对等体的引用,并且当它改变某些内容时它会相互发送消息(不期望其他对等体会为他做这些事情)?这种方法有什么问题?那种东西有架构吗?

1 个答案:

答案 0 :(得分:0)

我不明白为什么你会想,有人想让你使用和弦。

它有不同的架构,有一个torrent网络,基于这个原始架构编写BitTorrent-Sync。它的工作方式与您没有一个文件描述torrent文件的方式不同,但是客户端侦听本地硬盘驱动器上的更改并更新有关哪些文件存在与否的信息,但它的工作方式与以后,当文件被分发时(你将文件的一半发送到另一个节点,另一半发送到另一个节点,他们也可以共享这些部分,这样你只需要上传一次并且它的同步速度更快)。

同步这种系统的另一种方法是最终的一致性。有一个非常好的概念,TSAE(带时间戳的反熵)基本上可以照顾 - 没有与每个节点一直通信 - 最终它们将具有相同的状态。在这种情况下,谁转发原始邮件并不重要。但是我不知道它对节点变化的反应有多好,据我所知,不允许更改对等体的数量,如果对等体说明检索到的消息,则不允许更改关于它的意见了。您可以在论文项目中阅读更多有关它的信息。理查德·安德鲁·戈尔丁(Richard Andrew Golding)从1992年开始(http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.88.7385&rep=rep1&type=pdf)从第5章开始。{/ p>

最后 - 和弦意味着完全不同的东西。想象一下,您希望与数千个对等方共享文件,每个对等方将贡献10GB的文件。对于现代计算机来说10GB是没有的,但是> 10TB(10GB *数千个同行)是很多。这就是为什么你有和弦,一个节点负责一个文件,你可以从这个节点获得最新的副本,你也可以要求从这个节点锁定,...而你不会将它分发给所有其他节点机器,但当然这个主节点会与2,3或10个其他节点共享它(取决于你的复制因素),以保持文件在网络中,即使这个节点断开连接。这就是和弦的工作方式,如果你能同时与所有同伴交流,并且每个人都可以(或必须)持有相同的信息,那么它当然不是最好的解决方案。但这当然会限制在早期退出。