论文部分内容阅读
随着互联网技术的蓬勃发展,互联网应对的数据量不断增长,如何组织和管理海量数据成为了互联网行业发展的关键。传统的关系型数据库在可扩展性、查询性能、并发性的灵活性上已经不能满足互联网海量数据的需求,非关系型的分布式数据库有了越来越广泛的应用。典型的非关系型的分布式数据库有:Cassandra、Hypertable、 Rodis、Tokyo Cabinet、Voldemor、MongoDB等。他们的实现方式不同,性能各有所长,但都具有良好的可扩展性和并发处理能力。虽然非关系型的数据库弱化了关系型数据库的某些功能,但也简化了数据管理策略,满足了互联网对海量数据存储的要求。论文中的研究工作以分布式数据库Hypertable为平台,设计并实现了多副本管理策略,提高了数据的可靠性。Hypertable是一个C++编写的开源key-value型数据库, Hypertable采用索引结构来管理和定位数据块,底层用分布式文件系统实现数据的持久化存储。HBase是由java编写的与Hypertable结构原理相同的数据库,但Java的内存回收机制不如C++的内存回收及时,这使Hypertable在内存管理和效率上有很大优势。本文的重点是多副本管理策略的实现,这是我在大云项目中的主要工作。相关的代码和功能模块可分为元数据子系统、备份计划子系统、备份日志子系统和数据块管理子系统四个部分。元数据系统主要用于管理和维护数据块的位置信息和结构信息,由于数据的查询和更新都需要首先得到数据块在分布式系统中的位置,所以元数据的管理十分重要。备份计划用于管理创建副本的流程,便于不同的服务器之间协调工作,加入副本策略后的数据库有多个功能需要多个服务器协作完成,这些功能模块在备份计划子系统中有详细说明。备份日志用于副本的创建和副本的同步,新建副本和更新副本时,需要对日志进行传输和回放以保证多个副本的一致性。数据块信息管理系统是服务器对本地数据块的管理和维护。这四个部分是相互协调、相辅相成的,一个用户请求往往需要这四个部分共同作用。多副本管理策略的相关工作分为多副本策略的实现和系统性能测试两部分。在多副本策略的实现部分,各个功能模块的函数接口,函数处理流程都有详细地说明,对副本数量的设置和修改方式、副本同步时间间隔也做了详细说明,副本数目一般为3。在系统性能测试这部分中,对改进后的Hypertable做了并发性测试和读写性能测试。