论文部分内容阅读
随着经济社会的发展,数据规模不断扩大,海量数据被存放在存储系统中。但是在大型存储系统中,发生节点故障是十分正常的现象而并非异常。为了应对节点故障导致的数据丢失问题,存储系统一般会采用数据冗余机制,以牺牲存储利用率为代价,获得更好的系统可靠性与数据可用性。数据冗余机制包括纠删码机制与备份机制两种。其中备份机制将每个数据块复制多份副本,并将这些副本分别存储在不同的节点中。备份机制的一个重要研究方向是副本放置策略,即如何为每个数据块指定存储节点的策略。常见的副本放置策略有随机放置策略、拷贝集副本放置策略、分层放置策略等。其中,拷贝集副本放置策略是一种通用的副本放置策略,相比之前的策略,它在数据分散的节点数量和数据丢失概率之间提供了一种近乎最优的折中。然而,拷贝集策略通过搜索试错算法来构建拷贝集(存储了某一个数据块所有副本的存储节点组),因此很难预测该策略所需的时间和结束条件,这极大的影响了算法的性能,甚至会导致算法不可用。在本文中,我们提出了两种副本放置策略。(1)基于拷贝集策略的确定性副本放置策略,它直接给出了在线性时间内构建拷贝集的方法步骤,避免了原始拷贝集策略采用搜索试错算法而带来的构建时间长与没有明确结束条件问题。并且保持了和原始拷贝集策略同样的数据丢失概率。(2)G-Scheme副本放置策略。它也是确定性的副本放置策略,同样可以在线性时间内完成拷贝集构建。当参数满足(N,R,S)=(l(l-1)/2,l-1,2(l-2))时,我们证明了 G-Scheme策略构建了最少数量的拷贝集,从而达到理论上最低的数据丢失概率。特别地,G-Scheme策略可以生成拷贝集副本放置策略无法生成的最优结果。最后,我们还对HDFS随机放置策略、拷贝集副本放置策略、分层副本放置策略、基于拷贝集策略的确定性副本放置策略、G-Scheme副本放置策略进行比较并分别分析了它们的优缺点。