论文部分内容阅读
随着云计算和大数据的兴起,尤其是近几年来海量级数据规模的应用不断涌现,非结构化数据存储和处理需求迅速增长,这些新的海量数据应用对数据存储有了新的需求。同时传统的关系型数据库已经无法满足Web2.0网站,特别是超大规模和高并发SNS类型的网站的需求,各大互联网公司和网络存储公司对维护关系数据库的成本越来越高。由于关系型数据库的架构设计问题如数据结构单一、查询过程相对复杂,暴露出一些无法克服的问题,因此急需一种新的存储性能高的数据库来补充甚至取代关系型数据库。而NoSQL存储系统则由于自身的优势,如高性能,高可用性,可扩展性,数据模型灵活,得到了迅速发展,其非结构化分布式存储系统的性能分析与调优也成为了业界的热点研究问题。本文首先在查阅相关NoSQL理论技术的基础上,从NoSQL数据库的优势特点出发,分析存储系统设计和实现需要遵循的原则。通过研究目前主流的NoSQL数据库存储系统,参考国外NoSQL产品的实现,设计并实现了一个基于NoSQL的存储系统,以及开发性能测试工具对系统进行了有效的性能分析与评测。本文的主要的研究内容如下:(1)通过对NoSQL数据模型的深入分析和研究,实现了基于key-value数据模型的存储系统,支持基本命令查询,支持完成一组命令的事务机制,利用设计模式中的观察者思想实现订阅信息功能,支持key-value数据存储在多个服务器集群等基本功能,并对系统中使用的API功能作了详细的分析。(2)深入分析研究了传统NoSQL存储系统中常用数据结构和算法存在的问题,通过改进和完善一些低效的数据结构和算法,提高存储系统存储效率和降低CPU消耗,重点研究和改进了一致性哈希算法,通过加入虚拟节点,解决了传统NoSQL存储系统中一致性哈希算法平衡性的问题。(3)通过对存储系统性能测试分析和设计,开发出基准性能测试工具menkv-benchmark,解决了NoSQL存储系统测试设备不足和测试设备性能差异性问题,产生了一系列的测试结果,通过具体的测试数据对比证明系统的平均性能每秒可以处理15000个命令,性能高于GlobalsDB存储系统,从而证明了系统性能的可靠性和有效性。