【问题标题】:How to build a distributed robust linked list on several computers on the net?如何在网络上的多台计算机上构建分布式健壮链表?
【发布时间】:2010-10-11 01:54:16
【问题描述】:

我正在考虑构建一个使用类似 raid(disk) 算法的程序。如果一台电脑死机。下一个将介入。在它的地方。它需要从 1 到 1000 台计算机扩展。

我需要一些建议。

我需要学习的算法叫什么名字?

在某一时刻,我认为可以在 git 之上构建它。

【问题讨论】:

    标签: algorithm linked-list distributed robustness


    【解决方案1】:

    您可能想在 Google 文件系统上阅读此 paper。摘自:

    我们设计并实施了 Google 文件系统,这是一个可扩展的分布式文件系统,适用于大型分布式数据密集型应用程序。它在廉价商品硬件上运行时提供容错能力,并为大量客户端提供高聚合性能。

    【讨论】:

      【解决方案2】:

      试试Hazelcast。它具有 Set、List 等的分布式实现。 Hazelcast 是队列、主题、映射、集合、列表、锁定和执行器服务的开源事务、分布式/分区实现。使用起来超级容易;只需将 hazelcast.jar 添加到您的类路径中并开始编码。几乎不需要任何配置。

      Hazelcast 在 Apache 许可下发布,并且还提供企业级支持。代码托管在Google Code

      【讨论】:

      【解决方案3】:

      Distributed hash tables突然出现在我的脑海中......

      【讨论】:

        【解决方案4】:

        我见过提到 Hadoop 和 Google 文件系统,但没有人特别提到 HDFS - Hadoop 附带的分布式文件系统。您可以设置所需的冗余级别,并在不丢失数据的情况下丢失偶尔的节点。

        一个警告:您需要确保拥有“namenode”的一台机器(HDFS 集群中的主机和单点故障)是可靠的 - RAID 镜像、备份和工作。你失去了namenode,你就失去了集群。

        【讨论】:

          【解决方案5】:

          还可以查看MapReduce 算法。这是一种获得高可扩展性的相对简单的方法,不会强迫算法设计者考虑锁定、通信等。有几种可用的实现,例如 Apache 基金会的开源 Hadoop

          【讨论】:

            【解决方案6】:

            1) 您可以使用分布式锁/互斥锁,如下所示:

            去中心化系统中互斥的 sqrt(N) 算法,作者 Maekawa:http://portal.acm.org/citation.cfm?id=214445

            关于基于分布式锁的同步性能,作者 Lubowich 和 Taubenfeld:http://portal.acm.org/citation.cfm?id=1946155

            2) 或者您可以使用无锁链表,如下所示:

            无锁链表和跳过表,作者 Fomitchev 和鲁珀特:http://www.cse.yorku.ca/~ruppert/papers/lfll.pdf

            使用比较和交换的无锁链表,Valois:http://portal.acm.org/citation.cfm?id=224988

            【讨论】:

              【解决方案7】:

              您可以构建类似memcached 的东西。每个散列条目可以是一个文件块(例如,块到内容的 SHA 散列)。

              【讨论】:

                【解决方案8】:

                比特流? :)

                【讨论】:

                • 其实,你可能可以在 BitTorrent 上构建一个分布式存储系统,所以这只是部分玩笑。
                • 是的。据我了解。需要分发的是跟踪器。每个人都需要在一段时间内共享 IP。这样我们就可以庇护最支持系统的英雄了。
                【解决方案9】:

                您可能想查看Appistry EAF。它是一个分布式执行平台。它为您处理所有任务的故障转移,因此您不必将其构建到您的代码中。如果一个节点发生故障,另一个节点会自动接管。与 Grid 不同,没有集中式控制器,您可以消除这些类型解决方案的单点故障/瓶颈。

                最多可免费下载 5 台机器。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-11-15
                  • 1970-01-01
                  • 2014-10-22
                  • 1970-01-01
                  • 1970-01-01
                  • 2020-11-04
                  相关资源
                  最近更新 更多