Architecture 需要P2p架构

Architecture 需要P2p架构,architecture,p2p,distributed,Architecture,P2p,Distributed,假设我想在p2p架构中实现一个分散的dropbox。对于每个文件夹,将有N个用户共享文件。因此,我认为所有文件都需要存储在每个对等机中(它们需要在任何时间点查看、打开、写入、创建……文件)。例如,当用户更改文件内容时,他必须向其他对等方发送一条消息,警告他们该更改,以保持所有复制文件之间的一致性 在这种情况下,我不明白为什么我应该使用时尚的p2p结构化网络(比如Chord等等)。假设我们在三个对等方(a、B、C)之间有一个共享文件夹。如果peerA更改了一个文件,并且只警告peerB(期望pee

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

在这种情况下,我不明白为什么我应该使用时尚的p2p结构化网络(比如Chord等等)。假设我们在三个对等方(a、B、C)之间有一个共享文件夹。如果peerA更改了一个文件,并且只警告peerB(期望peerB会联系peerC),如果peerB在向peerC发送消息之前断开连接,那么peerA和peerC将拥有不同的文件


每个对等方存储对所有其他对等方的引用,并在更改某些内容时向彼此发送消息(而不期望其他对等方为他这样做),这难道不容易吗?这种方法有什么问题?这类东西有什么架构吗?

我不明白你为什么认为有人想让你用chord来做

它有不同的体系结构,有torrent网络,原始的体系结构就是基于它编写的。它的工作方式与torrent不同,因为您没有一个文件描述torrent文件,但客户端会侦听本地硬盘上的更改,并更新有关哪些文件存在或不存在的信息,但在以后分发文件时,它的工作方式与torrent相同(你将文件的一半发送到一个节点,另一半发送到另一个节点,他们也可以共享这些部分,这样你只需上传一次,同步速度就快多了)

另一种同步这种系统的方法是最终一致性。有一个非常好的概念,TSAE(时间戳反熵)这基本上可以保证——不需要一直与每个节点通信——最终所有节点都将具有相同的状态。在这种情况下,谁转发原始消息并不重要。但是我不知道它对节点变化的反应如何,据我所知,对等节点的数量是不允许改变的如果同行们说他们检索到了一条消息,他们就不能再改变对它的看法了。你可以在理查德·安德鲁·戈尔丁(Richard Andrew Golding)1992年的论文《弱一致性组沟通和成员资格》(从第5章开始)中读到更多关于它的内容


对于end-chord来说,它意味着完全不同的东西。想象一下,你想与数千个对等方共享文件,每个对等方将贡献10GB的文件。对于现代计算机来说,10GB什么都不是,但大于10TB(10GB*数千个对等方)是很多。这就是为什么你有chord,一个节点负责一个文件,你可以从这个节点获取最新的副本,你也可以从这个节点请求锁,…你不会将它分发给所有其他机器,但是这个主节点当然会与2个、3个或10个其他节点共享它(取决于你的复制系数)即使此节点断开连接,也要将文件保留在网络中。这就是chord的工作方式,当然,如果您可以同时与所有对等方通信,并且每个对等方都可以(或必须)通信,这并不是最佳解决方案保持相同的信息。但这当然是有限的,请尽早退出。

非常感谢,这是一个非常清楚的答案,而且是一致的。你也可以在手机上使用TSAE吗?或者移动p2p网络有更好的选择吗?如果你没有几个对等点,那么TSAE实际上可以工作,我认为它对于那些不在线的移动设备来说是非常棒的e时间。待办事项允许您执行脱机任务,并在再次联机时自动同步最新消息。