论文部分内容阅读
近年来随着网络技术的不断发展,接入网络的方式不断优化,越来越多的用户数据出现在互联网上。面对这种井喷式出现的数据,当前业界的大部分数据分析系统都还是传统的基于磁盘的模式,虽然很多系统已经在分布式方面做了极大的改进,但这种架构本质上存在着计算速度慢、CPU资源利用率低、导入效率低下等问题。针对这些问题,本文结合当前国内外的研究现状和发展态势,分析现有数据仓库系统的架构及特点,再根据自身项目的具体需求,设计并实现了内存数据存储引擎(Memory Database Engine,MDE),它能为企业部署一个海量数据的高速处理平台,提供一个实时响应、高可靠、高伸缩性的分布式数据仓库系统,可以更好的支撑上层的各种分析方法。使得企业能从繁杂冗余的数据中极快的得到清洗过的数据,尽早的应对变化多端的市场。本文主要工作与创新点有以下几点:1.设计了内存数据存储引擎的系统架构。它基于列式存储的模型架构,数据按列存储能够更好的支持数据压缩,并且在查询时的效率更胜行式;同时,采用双机热备、高可用集群等机制保证了高可靠性。2.设计了能够高效压缩和快速增量的数据结构来存储数据仓库的数据,在节约内存资源的同时,提高了计算效率。3.网络IO选型采用epoll异步事件驱动模型,配合内存操作,效率数量级的提升。磁盘IO方面,将利用线程池模型处理异步操作,增加系统的并发处理能力。4.系统提供大部分数据库物理计划执行的接口,给上层提供处理过后的数据,减少网络传输和解析调度节点的资源浪费。5.动态分配任务,中控节点实时掌握各节点的状态信息,新的请求将根据负载状态被分配到合适的节点存储和计算。同时系统会进行自动的负载均衡,负载过大的节点在满足条件后将会自动迁移一部分数据到另一个轻负载节点上去。通过功能和压力测试,结果表明本系统能够对海量数据进行有效的存储和读取,能够极大的缩短计算响应时间,能够实现系统的负载均衡,满足内存存储引擎设计的初衷。