百度网站自然排名优化,天津企业免费建站,电商网站开发目的,cpanel安装wordpress摘要#xff1a;本文介绍了分布式环境下实现共享内存模型会遇到的各种问题和挑战#xff0c;并针对不同问题介绍多种算法的优劣性。本文是对现阶段该领域研究现状的总体介绍#xff0c;通过本文能了解动态分布式共享内存研究的前沿状况、挑战与机遇。
共享内存系统是普通单…摘要本文介绍了分布式环境下实现共享内存模型会遇到的各种问题和挑战并针对不同问题介绍多种算法的优劣性。本文是对现阶段该领域研究现状的总体介绍通过本文能了解动态分布式共享内存研究的前沿状况、挑战与机遇。
共享内存系统是普通单机程序开发人员熟悉的开发范式通过简单的使用读、写命令就能确保将我们需要的值在内存中进行输入和读取。数据的一致性等问题在单机系统中开发人员根本不需要考虑。然而在分布式环境下由于数据出现多个副本且副本的数量有可能动态增加或减少要实现同样的功能又要保证读写性能就需要新的算法和实现。本文介绍了分布式环境下实现共享内存模型会遇到的问题和挑战针对不同问题介绍多种算法并比较其优劣性。本文是对现阶段该领域研究现状的总体介绍通过阅读该文我们能了解动态分布式共享内存研究的前沿状况了解该领域的挑战与机遇。
所谓3RReading、wRiting、aRithmetic依然是大多数人类智力活动的基础同时3R也是现代计算科技的重要组成部分。实际上无论图灵机还是冯 · 诺依曼体系都遵循读、写、算模型所有投入实际使用的单处理器实现都基于3R进行工作。随着网络科技的发展通信虽然成为了重要系统活动但在高层次的抽象上使用读、写、算模型进行思考仍然显然更为自然。
理想的系统必须具备一定的容错性同时系统必须支持大量并发访问。唯一能保证可用性的方法只有冗余也就是说使用多个服务器制造对象内容的副本。由于所有节点都有可能被更换因此存储系统必须提供数据的实时无缝迁移。
由数据副本带来的主要问题是一致性问题一致性的概念通过原子性或者等效的线性一致性来实现。
原子性是最强大的一致性概念同时实现代价也比较高Eric Brewer的CAP定理已证明没有分布式系统可以完全同时实现一致性、可用性、分区容忍性尽管如此在某些限定情况下实现简单和直观的原子一致性仍然非常必要。
基础工具静态化网络系统条件下的共享内存系统
静态环境下的方法可以作为我们动态系统的基础工具然而为静态系统设计的算法不能被直接用于动态系统因为他们缺乏处理拷贝集合变化的能力。
能够处理共享内存的ABD算法实现了原子内存拷贝的同时提升了容错能力和可用性。给定的总拷贝数是n系统能够容忍 f 个拷贝失效n2f。
在动态网络环境中模拟共享内存系统
动态系统的节点可能随时退出或加入服务。ABD算法不能应用在这个场景中因为它是建立在原有的拷贝主机集合一直可用的基础上。为了能够在动态环境中使用类似ABD方法必须要提供方法对复制主机的集合进行管理并保证阅读者和写入者能访问可用的集合。
我们首先从获取共识的问题开始因为它通过建立共同的操作顺序为实现内存服务的原子性提供了自然的基础。其次我们将提出组通信服务GCS解决方案使用强通信原语比如完全排序广播来对操作排序。最后我们聚焦一些方法这些方法通过用显式的拷贝主机集合管理可以用于扩展ABD算法至动态环境。
共识在分布式环境中如何协调并达成一致是计算机科学的基本问题。在分布式环境下达成一致的问题被称作共识问题。由于不同节点提供了多个参考值一组进程需要对该值达成一致。
共识算法可以应用于原子化的数据服务我们只需要让参与者对全局所有操作顺序取得一致。但对于每个操作都使用共识是一个笨拙的实现方式特别是一些干扰会延迟甚至阻止操作终止。
组通信服务GCS在分布式系统中最重要的基础材料就是GCSGCS使得在不同节点上运行的操作共同以组的方式工作。操作通过GCS多播服务发送消息到所有组成员以实现分组协作。GCS负责保证消息传输的顺序和可靠性。
GCS通过基于视图及虚拟同步技术的有序组播来实现动态网络的共享内存。这种解决方案的主要缺点是对大多数GCS实现形成一个新的视图需要大量时间即使只有一个节点故障性能下降也非常明显。
dynastore算法dynastore是多写入者/多阅读者动态原子存储服务的实现。它集成了ABD算法并允许副本主机集合重构而且不需要共识的使用。另一方面向配置中增加和删除单个节点可能导致较大开销与之相比直接用一个完整的配置替换原有配置性能可能更高。所以读写操作的延迟更依赖重构的速度。
从理论到实践
我们在这里介绍并评估两个实现。第一是从Rambo算法思想派生的分布式磁盘阵列。第二是基于dynastore算法的实现。
FAB联合砖块阵列FAB是由HP实验室开发和评估的存储系统FAB系统中使用的计算机被称为“砖块brick”通常配备普通商用的磁盘和网络接口。为实现分布FAB将存储切为若干逻辑存储块使用擦除码erasure-coding算法复制每个逻辑块到bricks子集。
对FAB实现的评估结果表明FAB性能类似于集中式的解决方案同时能提供连续的服务和高可用性。
ynadiskynadisk是用于评估的dynastore算法实现其设计支持在无共识的条件下重新配置服务或采用共识进行部分同步。
评估结果表明在无重构的情况下两个版本算法有着类似的读写延迟当多个重构同时发生时异步无共识方法的延迟有明显增加。
讨论
本文中提到的方法只是众多分布式存储服务实现方法的代表。这些方法每一个都有其优缺点。基于共识的解决方案虽然概念简单但通常需要协调员的参与以获取共识其性能可能会严重依赖于可用的协调员。组通信服务GCS是构建高可用性低延迟网络中的有效工具但当视图发生变化时开销很高理论上更加优雅的方法比如dynastore、Rambo、GeoQuorums虽然实现更复杂但具有更大的灵活性。
何时进行重构也是必须解决的挑战。例如在任意一个节点加入或退出服务都要求进行重构。但当节点不断加入和离开服务时这种方法可能会造成不必要的开销。另一种方法是把决策权交给另一个分布式服务通过观察和推理性预判找到重构的最佳时机。
一致性存储系统一直是活跃的研究方向一旦出现具有优越的容错性以及高性能的动态存储系统将在构建复杂的分布式应用程序中发挥重要的作用。分布式应用程序对一致性和高性能的需求将不断催生对原子的读/写存储器需求。译者朱燚
本文选编自CACM 2014年6月刊《Implementing Distributed Shared Memory for Dynamic Networks》。
原文链接http://cacm.acm.org/magazines/2014/6/175173-implementing-distributed-shared-memory-for-dynamic-networks/fulltext 。
译文全文链接http://blog.csdn.net/yizhu2000/article/details/37594703