论文部分内容阅读
随着社会经济文化的高速发展,数据分析处理技术越来越重要。然而在数据量极剧增长的今天,传统数据库在分析速度、可拓展性上显得愈发力不从心,随着内存价格的降低以及分布式系统理论的完善,分布式内存数据库应运而生。在突破磁盘IO性能瓶颈及传统行式数据存储模型后,分布式内存数据库在海量数据处理方面取得巨大的进步。然而分布式内存数据库系统仍然存在着三个问题,一是在计算节点到数据存储节点的数据传输过程中网络开销过大。二是存储系统在数据查询过程中,需要承担数据预筛选任务,而CPU计算并行度不高,计算速度慢,无法对海量数据进行快速筛选。三是由于分布式数据存储节点容易出现数据热点问题,需要及时对存储系统进行负载均衡。针对这些问题,本文在实验室现有分布式数据库Goldfish的基础上,采用RDMA网络技术、GPU加速技术构建基于内存的分布式存储系统以提高整体数据库的查询效率,并对系统负载均衡进行了研究。本文主要完成了以下几个方面的工作:1)针对分布式内存数据库网络IO的瓶颈问题,深入分析现有的TCP/IP和Infiniband网络架构,构建了一套基于RDMA的网络通信框架。同时针对RDMA网络硬件覆盖率较低的问题,构建了基于TCP网络通信框架以适配没有RDMA网卡的设备。2)针对CPU在计算并行性低的问题,设计并实现了基于GPU加速计算来快速对数据进行查询预处理的方案。并且通过使用RDMA网络技术,避免了从GPU内存到CPU内存的一次数据拷贝开销。3)基于RDMA网络框架,设计并实现了分布式数据库内存存储系统,针对列式数据可压缩的特性,在字典压缩算法的基础上,实现了具有高压缩性、快速查询特性的GroupKey Index数据结构,设计并实现支持插入操作的ZSET数据结构,提高数据库系统的内存利用率及功能性。4)针对分布式内存存储系统中容易出现数据热点的问题,提出了一种动态负载均衡的数据迁移算法,由中心元数据控制节点自动完成对高负载节点中的热点数据的迁移工作,实现数据存储系统的负载均衡。