基于RDMA的分布式数据库内存存储系统
发布时间:2022-01-15 05:13
随着社会经济文化的高速发展,数据分析处理技术越来越重要。然而在数据量极剧增长的今天,传统数据库在分析速度、可拓展性上显得愈发力不从心,随着内存价格的降低以及分布式系统理论的完善,分布式内存数据库应运而生。在突破磁盘IO性能瓶颈及传统行式数据存储模型后,分布式内存数据库在海量数据处理方面取得巨大的进步。然而分布式内存数据库系统仍然存在着三个问题,一是在计算节点到数据存储节点的数据传输过程中网络开销过大。二是存储系统在数据查询过程中,需要承担数据预筛选任务,而CPU计算并行度不高,计算速度慢,无法对海量数据进行快速筛选。三是由于分布式数据存储节点容易出现数据热点问题,需要及时对存储系统进行负载均衡。针对这些问题,本文在实验室现有分布式数据库Goldfish的基础上,采用RDMA网络技术、GPU加速技术构建基于内存的分布式存储系统以提高整体数据库的查询效率,并对系统负载均衡进行了研究。本文主要完成了以下几个方面的工作:1)针对分布式内存数据库网络IO的瓶颈问题,深入分析现有的TCP/IP和Infiniband网络架构,构建了一套基于RDMA的网络通信框架。同时针对RDMA网络硬件覆盖率较低的...
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:107 页
【学位级别】:硕士
【部分图文】:
SAPHANA系统架构
第二章相关技术及理论基础19HiveHive是由facebook实现的数据仓库解决方案,构建在Hadoop基础上,将存储在HDFS中的数据文件组织成传统数据库的方式。Hive的架构如图2-12所示,主要由五个构件组成。驱动模块负则一条HiveQL在整个系统中执行的生命周期管理;查询编译器负责生成任务执行的DAG图,即将HiveQL语句通过编译转化为MapReduce任务的执行计划;元数据管理模块负责存储整个系统中数据表相关的元数据信息,例如表名、列名、分区属性等信息;执行引擎根据编译器生成的DAG计划中的任务节点依次来执行MapReduce任务,完成整个HiveQL语句的执行。Hive服务器负责向外提供服务,提供了三种访问接口:thrift、JDBC、ODBC。图2-12Hive系统架构图Hive的查询流程如图2-13所示。首先客户端与Hive服务器建立连接,并发起查询请求。驱动层将HiveQL语句交给查询编译器,并通过元数据信息进行类型语义分析后生成逻辑计划,然后使用基于规则的优化器对其进行物理优化,生成物理执行计划。由执行层来负责按照DAG执行数据处理任务。
第二章相关技术及理论基础21在新的数据输入过程中,SAPHANA需要对三种数据结构进行合并。当全局压缩字典中不包含新数据时,就需要对压缩字典进行重构,并更新存储数据的下标。当数据过多时,将会导致数据字典频繁被重构,致使系统性能下降。PolarDB本节将对现有基于RDMA网络的分布式数据库PolarDB进行介绍:PolarDB是阿里云数据库团队开发的一个分布式数据库系统,PolarDB的设计遵循以下四个原则:1、存储计算分离,2、基于RDMA的零拷贝策略,3、parellelraft,支持乱序提交。4、大量使用新硬件。PolarDB中RDMA分布式数据库采用解耦合的共享存储,通过RDMA网络形成分布式共享存储,可以实现一写多读共享存储的模式。图2-14PolarDB数据库系统架构图上图2-14展示了polarDB数据库系统的整体架构图,PolarDB将计算和存储分为两层。在计算层中,有多个计算节点构成非对等一个计算集群,由一个主计算节点来负责读写操作,而其他从节点为只读节点,只负责处理读请求。在下次存储节点中,所有数据存储节点通过改进的raft协议[27]来维护数据的一致性。在计算层与存储层之间,polarDB使用RDMA网络进行连接,保证为计算节点提供低延迟,高吞吐的数据服务。
【参考文献】:
期刊论文
[1]改进的Raft一致性算法及其研究[J]. 陈陆,黄树成,徐克辉. 江苏科技大学学报(自然科学版). 2018(04)
[2]一种基于哈希索引的内存表模型[J]. 杨燕明,鲁志军,陈煜,孙权,杨宏斌. 计算机应用与软件. 2012(01)
[3]基于EPOLL的单进程事件驱动通信服务器设计与分析[J]. 段翰聪,卢显良,宋杰. 计算机应用. 2004(10)
本文编号:3589969
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:107 页
【学位级别】:硕士
【部分图文】:
SAPHANA系统架构
第二章相关技术及理论基础19HiveHive是由facebook实现的数据仓库解决方案,构建在Hadoop基础上,将存储在HDFS中的数据文件组织成传统数据库的方式。Hive的架构如图2-12所示,主要由五个构件组成。驱动模块负则一条HiveQL在整个系统中执行的生命周期管理;查询编译器负责生成任务执行的DAG图,即将HiveQL语句通过编译转化为MapReduce任务的执行计划;元数据管理模块负责存储整个系统中数据表相关的元数据信息,例如表名、列名、分区属性等信息;执行引擎根据编译器生成的DAG计划中的任务节点依次来执行MapReduce任务,完成整个HiveQL语句的执行。Hive服务器负责向外提供服务,提供了三种访问接口:thrift、JDBC、ODBC。图2-12Hive系统架构图Hive的查询流程如图2-13所示。首先客户端与Hive服务器建立连接,并发起查询请求。驱动层将HiveQL语句交给查询编译器,并通过元数据信息进行类型语义分析后生成逻辑计划,然后使用基于规则的优化器对其进行物理优化,生成物理执行计划。由执行层来负责按照DAG执行数据处理任务。
第二章相关技术及理论基础21在新的数据输入过程中,SAPHANA需要对三种数据结构进行合并。当全局压缩字典中不包含新数据时,就需要对压缩字典进行重构,并更新存储数据的下标。当数据过多时,将会导致数据字典频繁被重构,致使系统性能下降。PolarDB本节将对现有基于RDMA网络的分布式数据库PolarDB进行介绍:PolarDB是阿里云数据库团队开发的一个分布式数据库系统,PolarDB的设计遵循以下四个原则:1、存储计算分离,2、基于RDMA的零拷贝策略,3、parellelraft,支持乱序提交。4、大量使用新硬件。PolarDB中RDMA分布式数据库采用解耦合的共享存储,通过RDMA网络形成分布式共享存储,可以实现一写多读共享存储的模式。图2-14PolarDB数据库系统架构图上图2-14展示了polarDB数据库系统的整体架构图,PolarDB将计算和存储分为两层。在计算层中,有多个计算节点构成非对等一个计算集群,由一个主计算节点来负责读写操作,而其他从节点为只读节点,只负责处理读请求。在下次存储节点中,所有数据存储节点通过改进的raft协议[27]来维护数据的一致性。在计算层与存储层之间,polarDB使用RDMA网络进行连接,保证为计算节点提供低延迟,高吞吐的数据服务。
【参考文献】:
期刊论文
[1]改进的Raft一致性算法及其研究[J]. 陈陆,黄树成,徐克辉. 江苏科技大学学报(自然科学版). 2018(04)
[2]一种基于哈希索引的内存表模型[J]. 杨燕明,鲁志军,陈煜,孙权,杨宏斌. 计算机应用与软件. 2012(01)
[3]基于EPOLL的单进程事件驱动通信服务器设计与分析[J]. 段翰聪,卢显良,宋杰. 计算机应用. 2004(10)
本文编号:3589969
本文链接:https://www.wllwen.com/kejilunwen/shengwushengchang/3589969.html
最近更新
教材专著