5

如果一个人有一个可以查询的点对点系统,那么他想

  • 减少整个网络的查询总数(通过广泛分布“流行”项目和“相似”项目一起)
  • 避免每个节点的过多存储
  • 在客户停机、硬件故障和用户离开(可能为档案管理员/历史学家检测稀有物品)的情况下,确保即使是中等稀有物品的良好可用性
  • 避免在网络分区的情况下查询无法找到匹配项

鉴于这些要求:

  1. 有没有标准的方法?如果没有,是否有任何受人尊敬但实验性的研究?我熟悉一些分配方案,但我还没有看到任何真正解决学习健壮性的东西。
  2. 我是否缺少任何明显的标准?
  3. 有人有兴趣研究/解决这个问题吗?(如果是这样,我很乐意将我这个周末拼凑的一个非常蹩脚的模拟器的一部分开源,并且通常会提供无用的建议)。

@cdv:我现在已经观看了视频,它非常好,虽然我不觉得它完全符合可插拔的分发策略,但它绝对是 90% 的方式。然而,这些问题突出了这种方法的有用差异,这些差异解决了我的一些进一步担忧,并为我提供了一些后续参考。因此,我暂时接受你的回答,尽管我认为这个问题是开放的。

4

1 回答 1

2

有多个系统可以满足您所寻求的各个方面的要求,并且每个方面都会做出不同的妥协,包括但不限于:

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

凯: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/

蜂巢:http ://www.cs.cornell.edu/People/egs/beehive/

和许多其他人。在按照这些思路构建了一个自定义系统之后,我也以开源形式发布了一些构建块:http ://code.google.com/p/distributerl/ (这不是一个完整的系统,但是一些有用的库在建设一)

于 2008-09-26T14:56:20.183 回答