论文部分内容阅读
随着网络基础设施的普及,各种上网终端的流行以及Web2.0技术和社交网络的兴起,位于任何地方的用户都能很容易的获取和创造内容,因此一个应用程序的数据以及对这些数据的访问和更改往往来自不同地方甚至是全球的。为了让不同地区的用户能就近访问数据以减少用户请求的响应时间,这类跨地域的应用通常采用跨数据中心的分布式存储系统来保存数据。 在跨数据中心的分布式系统中,数据中心间的消息传输延迟时间长,带宽小,网络不稳定,这些特点使该类系统的可用性,可靠性,可扩展性以及性能成为其面临的主要问题,而数据复制技术是解决跨数据中心分布式存储系统中出现的这些问题的有效手段。首先,数据复制技术能通过增加冗余的方式来提高系统的可用性和可靠性;其次,数据复制技术通过将数据副本放置在离用户较近处来降低请求的网络传输时间以提高性能;最后,通过增加热点数据的副本数目能分流读请求的负载,提高系统的扩展能力。因此,在跨数据中心的分布式存储系统中研究数据复制技术具有重要意义。 数据复制技术无论在理论研究还是在实践中都是一个吸引人的研究课题,得到了大量的研究。数据复制在数据库领域和分布式系统领域是独自发展起来的,由于这两个领域各自不同的特点,它们采用数据复制技术的目的和方法也完全不同。如今的跨数据中心存储系统既要像数据库系统一样提供方便而强大的数据管理能力又要像分布式系统一样提供很强的可扩展性和透明的容错能力,因此对数据复制技术提出了更高的要求。 在设计一个跨数据中心分布式存储系统的时候,如下方面和数据复制相关的问题需要得到解决: 1)什么时候创建副本,每个数据创建多少个副本; 2)将副本放置到什么地方; 3)如何将用户请求转发给合适的副本进行处理。 本文的主要研究内容围绕着以上三个方面展开,也即副本的创建,副本的放置以及副本的选择。 副本创建:本文根据当前广泛采用的双层的跨数据中心拓扑结构,在考虑了一些政策限制的前提下,提出了一种动态副本创建策略TGstag。TGstag通过同时创建数据中心内部的副本和跨数据中心的副本这两种类型的副本来尽可能少的消耗数据中心间的网络带宽和降低用户访问延迟时间。在跨数据中心的副本创建中,TGstag首先考虑政策的限制,然后根据来自不同数据中心的请求数目以及数据中心间的不同网络延迟时间来考虑将数据创建到哪些数据中心中,以实现最少的跨数据中心副本访问以及最短的平均访问延迟时间。在数据中心内部,当一个副本所在的节点负载超过一定阈值的时候,TGstag会挑选出该节点上被访问次数最多的若干数据,然后在这个节点所在的数据中心选择一个负载最小且有足够容量的节点并将这些数据复制到选中的节点中,以提高系统的吞吐率。 副本放置:本文提出了在跨数据中心场景下的新型副本放置算法GCplace。首先,GCplace使用网络坐标系统对数据中心和用户的位置进行建模,通过将用户和数据中心映射成网络坐标系统中的坐标的方式,将用户到数据中心的访问延迟时间问题转换成求网络坐标系统中两个不同坐标间的距离问题。在此基础上,GCplace通过两个步骤来决定如何放置数据副本。第一步,采用基于流的相似性聚类方法,用较少数量的微簇来代表数量庞大的用户,从而极大的减少计算量。第二步,用迭代式的算法计算出每个数据的副本应该对应的网络坐标,并选取离这些坐标最近的数据中心进行存放。通过这两个步骤,GCplace能以可接受的代价比较精确的计算出每个数据应该放置于哪些数据中心,从而最大化的降低用户平均访问延迟时间。 副本选择:本文提出了一种动态可调的副本选择算法来保证基于Quorum的跨数据中心分布式存储系统在能获得一定比例最新数据的前提下尽可能的提高性能。在一个基于Quorum的跨数据中心存储系统中,每次请求需要同步访问的副本数目的不同对系统性能,可用性以及获取最新数据的概率会产生不同的影响。本文首先根据一定算法从多个常见读写请求到达分布模型中选择一个最匹配当前应用程序的分布模型来预测每次读请求与在它之前的最近写请求间的到达时间间隔。接着采用蒙特卡罗模型来模拟预测读写请求在不同数据中心副本间响应的先后顺序,然后通过这些预测的值来实时的判断为了达到一定的一致性级别此次读请求需要访问的最少副本数目。从而减少不必要的跨数据中心副本访问,降低应用程序的响应时间并且提高吞吐率。