论文部分内容阅读
NoSQL数据库近年来取得了快速的发展,众多新数据库不断涌现。但是,NoSQL数据库以高可用性和高扩展性著称,牺牲了一致性保证(通常只提供弱一致性,或最终一致性保证)这就使得NoSQL数据库在某些事务性应用系统中,难以得到施展的空间。本篇论文的目的,即是在保证其高可用和高扩展的前提下,尝试将事务机制引入到NoSQL数据库中。完成本论文过程中,首先调研了几种目前比较成熟的分布式事务系统,从事务框架、ACID属性保证、事务调度算法、性能等方面进行了抽离与比较,总结出了每个系统的优势与不足,并提出了一些改进性建议;完成分布式事务系统调研任务以后,又调研了近五年以来,发表在三大国际数据库会议(SIGMOD、VLDB、ICDE)上的关于事务的论文,总结了近几年分布式事务的发展趋势;最后,在完成前面两项工作以后,借鉴已有的研究成果,提出了自己的分布式事务框架。本论文提出的新型分布式事务框架,从整体架构上可以分为三层:上层是事务输入及查询优化层,中间是事务处理层,下层是数据持久层。通过类SQL语句、分布式锁、分布式缓存的引入,可以将基于列存储的每一行数据事务,拆分成针对每一个cell的多个子事务,从而实现细粒度事务支持;此外,通过分离底层持久化存储介质,可以实现底层无差别接入,从而使得系统成为一个通用的分布式事务框架。在完成系统原型搭建的基础上,采用国际上通用的TPC-C测试基准,对系统进行了测试,测试的内容包括功能测试和性能测试。功能测试结果显示,本文提出的分布式事务框架,在没有破坏NoSQL数据库原有的高可用性和高扩展性的基础上,能够成功保证事务的ACID属性;性能测试结果显示,该分布式事务框架的事务处理效率能够达到目前比较成熟系统的性能,部分指标甚至超越了已有的研究成果。本文提出的分布式事务框架具有良好的性能,解决了NoSQL数据库发展的一个瓶颈,为后续的更深一步研究起到了铺垫作用。