论文部分内容阅读
内存与硬盘读写性能不匹配的矛盾根本决定了持久化存储性能是现代服务端系统的性能瓶颈。人们围绕着如何提高持久化存储系统性能这个话题,提出了很多优化技术。但在存储系统中根本性问题没有解决的情况下,对存储系统优化的探索就不会停止。本文的研究对象是服务端存储系统的性能提升技术。首先,研究了一些存储系统有关的成熟的优化技术及其原理与优缺点。这些技术包括Bloom Filter算法、rabbitmq缓存如何提升存储系统性能、持久化存储优化技术中的索引技术、分片技术、事务管理技术等。通过分析这些技术的优缺点,本文提出了对部分技术的改进措施。第一,针对Bloom Filter无法删除缓存中元素以及无法做统计功能的缺点,提出了将B树融入Bloom Filter算法,设计了B-TreeCBF缓存系统。第二,针对分布式事务管理的2pc方案性能低下的问题,以及ebay提出的本地消息表方案有状态服务的缺点,提出了使用本地消息文档方案,使微服务做到了真正的无状态管理分布式事务。其次,本文基于现有优化技术提出了一些优化技术。利用rabbitmq的队列特性,将部分同步写数据库操作转化为异步写数据库操作,使得应用不必等待执行效率低的硬盘数据库的操作结果,可以大幅度提升系统的性能;使用分片技术不仅使数据库系统可以容纳无限制的数据量,还使用多个分片节点提高了数据库系统的并发读写效率;通过细粒度控制数据的因果一致性,使得存储系统在数据一致性和吞吐率之间做了很好的折中,尽最大限度提高了存储系统的性能;通过合理的划分数据实体结构与实体关系,使得数据库避免了大量低效的关联查询,提高了数据库单次业务操作的执行效率;利用异步io思想,结合rabbitmq、redis和mongodb系统,将所有底层存储有关的接口封装成异步接口,使得系统对存储系统的写操作变为异步执行,避免了应用层线程阻塞等待存储系统操作结果而占用大量服务器硬件资源,从而间接提高了系统整体吞吐率。本文还基于这些优化技术设计并实现了高并发存储系统。最后,对这些改进技术进行了功能测试和性能测试,验证了以上优化技术可以提高存储系统的性能。