代码之家  ›  专栏  ›  技术社区  ›  John with waffle

如何在点对点系统中可靠但最少地分发项目

  •  4
  • John with waffle  · 技术社区  · 16 年前

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

    • 减少整个网络中的查询总数(通过将“热门”项和“相似”项广泛分布在一起)
    • 避免在每个节点上存储过多
    • 在客户机停机、硬件故障和用户离开时(可能会为档案管理员/历史学家检测到稀有物品),确保对中等稀有物品的良好可用性。
    • 避免在发生网络分区时查询找不到匹配项

    考虑到这些要求:

    1. 有什么标准方法吗?如果没有,有没有值得尊敬的,但实验性的研究?我对一些分发方案很熟悉,但我还没有看到任何东西真正涉及到健壮性的学习。
    2. 我是否缺少任何明显的标准?
    3. 有没有人对解决这个问题感兴趣?(如果是这样的话,我很高兴能打开这个周末我放在一起的一个非常蹩脚的模拟器的源代码部分,并且通常提供无用的建议)。

    @CDV:我已经看过这段视频了,它非常好,虽然我觉得它不能很好地实现可插拔的发行策略,但它绝对是90%的发展方向。然而,这些问题突出了这种方法的有用差异,这种方法解决了我的一些进一步关注点,并为我提供了一些可供后续跟进的参考。因此,我暂时接受你的回答,尽管我认为这个问题是开放的。

    2 回复  |  直到 16 年前
        1
  •  2
  •   Chris de Vries    16 年前

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

        2
  •  2
  •   Justin Sheehy    16 年前

    存在多个系统,其中包含您所寻求的各个方面,每个系统都做出不同的妥协,包括但不限于:

    亚马逊的发电机: 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/ (这不是一个完整的系统,而是一些对构建一个系统有用的库)

    推荐文章