论文部分内容阅读
随着信息社会的发展,互联网进入高速发展的新时期,互联网上的数据量出现爆炸式的增长。随着数据量的快速增长,传统的关系型数据库已经无法应对当前海量数据规模的应用,因此NoSQL数据库应运而生。近些年来,对于NoSQL技术的研究从未间断,并且已经取得一定的成果,不同种类的NoSQL数据库层见迭出,包括key-value数据库、图数据库、列数据库和文档数据库等,NoSQL数据库中最重要的一个分支就是key-value数据库。数据库的存储引擎作为数据库存储系统中的重要组成结构,它的性能优劣将直接决定整个数据库存储系统的读写快慢。目前出现的写入性能极好的基于LSMTree的存储引擎LevelDB,该存储引擎使用LSM树作为存储结构,避免了大量的随机写入问题;对于特定的读,即内存中的热数据,也能达到不错的性能。Facebook维护了一个活跃的LevelDB的分支,即RocksDB存储引擎。RocksDB是在LevelDB代码基础上进行二次开发,相比LevelDB有了很多的改进,比如多线程压缩、分层自定义压缩、多个MemTable等,比LevelDB性能更好。本文主要有三个方面的工作:(1)首先概括了NoSQL技术的产生和发展,其次对存储引擎和分布式NoSQL存储的国内外研究现状进行研究,最后对当前已经存在的各类存储引擎进行对比分析,并总结各自的应用场景和优缺点。分析有极高写入性能的RocksDB存储引擎的设计原理及优良特性。(2)深入研究实现分布式存储系统需要用到的理论和相关技术,设计了一个分布式存储系统节点布局架构,该架构基能够灵活的增删数据节点,又能够快速的定位数据位置。分析RocksDB存储引擎的应用,将RocksDB存储引擎应用到分布式存储系统中,完善整个分布式存储系统的架构,设计并实现一个分布式keyvalue存储系统,保证较高的读写性能和高可用性。(3)对最终实现的分布式key-value存储系统进行深入的功能和性能测试,并对测试结果进行详细的分析,同时在性能方面与当前已经得到广泛应用的高效能key-value存储系统Redis作对比,测试结果表明本文系统在写入性能上与Redis相差不大,已经达到较好的水平,证明本文系统达到预期目标。本文基于RocksDB存储引擎成功的设计并实现了一个分布式key-value存储系统,对于存储引擎在分布式存储系统领域的应用具有良好的探索和实践意义。