论文部分内容阅读
随着信息技术的发展,应用程序对后台性能的要求越来越高,数据量也越来越大,传统的关系数据库已经无法满足当今的海量数据规模应用。而在大数据时代,人们总希望存在一个Key-value存储机制,像HashMap一样在内存中处理大量的Key-value对,以便提高数据的查找、修改速度,为此NoSQL技术得到了长足发展。目前,NoSQL主要有两方面的应用,一是将数据按列存储作为数据库存储服务器,另一个是将数据全部存储在内存中作为关系数据库的前端缓存以提高动态Web应用的访问速度。通过缓存系统就能减少数据库的访问次数,因为它能将数据库的查询结果缓存到内存中。但是传统的缓存系统为了追求更高的性能大都是基于内存存储的,数据的持久化功能并不完善,因而系统会受到内存容量的限制,并且在系统宕机时会导致数据全部丢失,无法恢复。为此本文提出了缓存持久化存储的思想。本文首先对现有的缓存系统进行了分析和比较,指出了其中的缺点和不足,针对缓存数据的持久化运用了LSM-Tree理论进行改进,以牺牲随机读换取顺序写来实现数据的高效持久化存储;然后对分布式系统的扩展性及相关的关键技术进行了研究分析,如分布式系统中的数据一致性、数据同步机制、数据切分规则等,并参考Google的单机持久化存储系统LevelDB和Amazon的高可用、高可扩展的Dynamo分布式架构实现了一个分布式的Key-Value持久化缓存系统SSDB(SortedSet DB);最后运用了布隆过滤器等思想对SSDB进行了一系列优化,并对SSDB和Redis做了性能测试,同时将结果放在Highcharts插件中展示对比。结果表明,优化后的持久化缓存系统SSDB在读写性能上比Redis只是略有下降。