如何在对等系统中稳健地,但最低限度地分配项目

时间:2008-09-01 00:17:46

标签: language-agnostic distributed machine-learning p2p fault-tolerance

如果有一个可以查询的点对点系统,可以

  • 减少网络上的查询总数(通过广泛分发“热门”项目和“类似”项目)
  • 避免每个节点存储过多
  • 面对客户停机,硬件故障和用户离开(可能检测到档案工作者/历史学家的稀有物品),确保即使是中等稀有物品的良好可用性
  • 避免查询在网络分区时无法找到匹配项

鉴于这些要求:

  1. 有没有标准方法?如果没有,是否有任何受人尊敬但实验性的研究?我对分发方案很熟悉,但我还没有看到任何真正解决学习问题的方法。
  2. 我错过了任何明显的标准吗?
  3. 有兴趣研究/解决这个问题吗? (如果是这样的话,我很高兴开源一个非常蹩脚的模拟器的一部分,我在这个周末聚集在一起,并且通常提供无益的建议。)
  4. @cdv:我现在看过这个视频非常好,虽然我觉得它不是一个可插拔的分发策略,但绝对是90%。然而,这些问题强调了这种方法的有用差异,这些差异解决了我的一些进一步的问题,并给了我一些跟进的参考。因此,虽然我认为这个问题是公开的,但我暂时接受了你的回答。

2 个答案:

答案 0 :(得分:2)

如果你有时间,可以查看the Google tech talk that Wuala gave。他们讨论了构建对等文件系统时遇到的这些问题。

答案 1 :(得分:2)

有多个系统,其中包含您所寻求的各个方面,并且各自做出不同的妥协,包括但不限于:

亚马逊的Dynamo:http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf

Kai:http://www.slideshare.net/takemaru/kai-an-open-source-implementation-of-amazons-dynamo-472179

Hadoop:http://hadoop.apache.org/core/docs/current/hdfs_design.html

和弦:http://pdos.csail.mit.edu/chord/

Beehive:http://www.cs.cornell.edu/People/egs/beehive/

和其他许多人。在沿着这些线构建自定义系统之后,我也以开源形式提供了一些构建块:http://code.google.com/p/distributerl/ (这不是一个完整的系统,而是一些用于构建一个的库)