论文部分内容阅读
计算机网络的日益发展和普及以及跨地域分布的企业组织机构使得数据的存储和应用越来越分布化。分布式数据库(Distributed Database)技术就是在这种环境下应运而生的。基于这种技术的系统在可靠性、可用性和时间响应方面较传统的集中式数据库系统有更多的优越性,因此在实际中有着更广泛的应用。分布式数据库系统中数据不是集中存放,而是根据实际应用的需要分布于网络的各个节点上,因此存在数据的划分问题,即数据的逻辑分割(分片)和片段的物理分配问题。在分布式数据库系统中需要冗余的数据,即增加数据副本以提高数据处理的本地性和效率,同时还可以增加系统的可靠性和可用性。分布式数据库设计的主要目标之一就是数据处理的本地性,即使数据尽可能存放在使用它们的应用所在的节点上,从而减少远程访问所需的通信代价。怎样合理地分布数据,这是数据分配设计需要考虑的问题。数据分配问题对整个应用系统的改进、数据的可用性、提高DDB的效率和可靠性有很大影响,数据片段分配得好,整个系统的性能才会处于一个良好的状态。国内外专家和学者一直致力于基于分布式数据库的数据分配问题的研究,由于其复杂性,一直还没有找到一个兼顾代价和性能最优的通用数据分配方法。虽然大量的研究学者也提出了一些分配模型和算法,但是大多数模型和算法非常复杂难于理解,因而很难应用于实际环境。本论文主要基于文献中提出的得益-代价启发式分配方法[16],对其不合理之处进行改进,提出了一种启发式试消副本片段分配方法。在该方法中,首先归纳出影响选择统计信息的几个主要因素,然后确定以事务处理通信代价为主的代价公式,最后,提出了“启发式试消副本分配算法”,该算法第一步通过只满足只读的本地性,确定一个最优初始分配;第二步考虑在初始化片段分配表基础上试消副本,以在只读事务和更新事务代价之间获得折中,消除副本的条件为只读事务和更新事务总代价是否减少,最终目的是获得一个对只读和更新总代价最小的分配方案。最后通过实验实现了算法,实验表明该方法能够在一定程度上减小解空间,并且简单、易行,获得的分配方案也更合乎实际。