首页> 中国专利> 一种基于超图划分的分布式数据库及其集群分区方法

一种基于超图划分的分布式数据库及其集群分区方法

摘要

本发明公开了一种基于超图划分的分布式数据库及其集群分区方法,涉及大数据环境下的数据库的数据放置技术,包括:数据统计模块、历史数据分析模块和数据迁移模块,其中事务访问集存储在原始的文本和日志文件数据中,算法模块集存储平台集成算法模块的数学建模和算法求解;数据分析模块由两个过程组成,日志读取解析过程和数据建模与算法求解过程。数据分析模块中的日志读取解析过程用于管理用户日志上传、预处理和格式转换,生成解析后的事务日志;调度模块有序调度建模、算法、数据迁移,并分析计算结果重新分区。本发明实现了市场需求和日志分析、算法模块的结合,可高效地调整平台的数据放置和分区;提高了数据库的可扩展性、可维护性。

著录项

  • 公开/公告号CN106294757A

    专利类型发明专利

  • 公开/公告日2017-01-04

    原文格式PDF

  • 申请/专利权人 上海交通大学;

    申请/专利号CN201610656475.5

  • 发明设计人 管海兵;陈文康;马汝辉;李健;

    申请日2016-08-11

  • 分类号G06F17/30;

  • 代理机构上海旭诚知识产权代理有限公司;

  • 代理人郑立

  • 地址 200240 上海市闵行区东川路800号

  • 入库时间 2023-06-19 01:14:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-09-10

    授权

    授权

  • 2017-02-01

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20160811

    实质审查的生效

  • 2017-01-04

    公开

    公开

说明书

技术领域

本发明涉及大数据环境下的数据库领域,尤其涉及一种基于超图划分的分布式数据库及其集群分区方法。

背景技术

现代企业的数据中心日渐庞大,分布式数据库被广泛运用于企业应用中,并对企业的业务活动提供有效的管理和支持。此外,在线事务处理是商业环境下对分布式数据库的新的需求。简单的说,在线事务处理(OLTP)是重复性、大批量的业务的自动化处理。随着在线事务处理的应用场景的快速增长,催生了针对联机事务处理而设计的分布式数据库管理系统。通过分析系统历史日志文件,统计事务在系统中访问的分布情况,通过优化分区的方式,提出了一种高吞吐、低延迟的数据库。这种俗称“NewSQL”的系统在继承了关系型数据库的在线事务处理功能,保证的事务ACID的特性,通过将数据非共享的分布在机器集群上,提高并发来提高性能。

VoltDB是一个分布式的、基于行存储的、使用主存储器的、运行在一个数据无共享的机器集群上的关系型数据库。VoltDB每个节点是一台物理机器,每个节点包含了一个或多个处理执行引擎,该引擎使用单线程处理来自外部客户端的联机事务处理请求。如图1所示,每个数据库中的关系(Relation),或称为表(Table),在VoltDB中被水平切分(partition)成一个或多个数据快,即将组成该表的全部元组按照主键的值分成一份或者多份,每个数据块会被放置在一个或者多个具体的执行引擎上。如图2所示,数据库中所有的表切分放置后,每个执行引擎所拥有的所有数据组成了一个数据分区,所有表最终切分放置方法组成了分区表。

由于数据关联的复杂程度、集群分区的规模巨大,事务在查询和修改具有短、小、重复的特点,根据数据的放置策略,将会有很大一部分事务访问多个物理机上的数据,而多分区事务的网络通信开销是巨大的,这将大大限制了多分区事务网络通信的普及。

发明内容

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是旨在根据用户的需求和在线事务处理的特点,并在基于实现环境中,建立原型系统的统计模块、历史数据分析模块和数据迁移模块,以解决现有技术的多分区事务的网络通信开销巨大的问题。

为实现上述目的,本发明提供了一种基于超图划分的分布式数据库,包括平台基础层和算法建模层,所述平台基础层包括数据统计模块、历史数据分析模块和数据迁移模块,其中:

所述数据统计模块被配置为在数据库运行一段时间后,通过网络连接接收数据库集群的日志统计数据,并进行建模、预处理、噪声去除;

所述历史数据分析模块被配置为将所述数据统计模块处理过的日志统计数据生成重分区方案和迁移计划;

所述数据迁移模块被配置为以历史数据分析模块生成的迁移计划和数据统计模块解析的日志统计数据作为输入,在数据库集群各个机器之间迁移数据;

所述算法建模层包括超图最小割模块、复杂网络社团发现模块和日志统计模块,其中:

超图最小割模块被配置为对超图进行建模和重分区;

复杂网络社团发现模块被配置为通过发现日志统计数据的内在关系的社团属性,并将相同社团属性的日志统计数据放入相应的机器中;

日志统计模块被配置为通过对输入日志对象中不同维度的统计,产生日志统计数据。

进一步地,所述日志统计模块被配置为将上传到分布式文件系统的日志统计数据读入所述超图最小割模块,所述超图最小割模块对统计过的日志文件建立超图模型。

进一步地,所述数据统计模块被配置为估算出服务器的容量,服务器的在联机事务处理系统运行时,使用写日志文件的方式,对一段时间内进行访问样本的采样,并记录系统中每个事务访问的分区,计算出所有同时访问分区的分布式事务的数量和访问频率。

进一步地,所述历史数据分析模块被配置为将所述数据统计模块统计的数据建模,形成了一个集群间的超图模型,将分区的问题抽象成一个图,再通过贪心算法分析出重分区方案和迁移计划,其中,所述超图模型的点是分区,边是每一条事务,边的权值是事务访问的频率。

进一步地,所述日志统计模块对输入日志对象的不同维度统计的数据包括事务编号、执行时间、事务访问的分区。

进一步地,所述日志统计模块产生的日志统计数据包括事务执行频率统计、访问分区和跨分区事务的统计、各节点的容量和节点访问频率统计内容。

本发明还提供了一种基于超图划分的分布式数据库的集群分区方法,包括以下步骤:

提供平台基础层和算法建模层,其中所述平台基础层包括数据统计模块、历史数据分析模块和数据迁移模块,所述算法建模层包括超图最小割模块、复杂网络社团发现模块和日志统计模块;

在数据库运行一段时间后,所述数据统计模块通过网络连接接收数据库集群的日志统计数据;

所述日志统计模块将日志统计数据读入所述超图最小割模块;

所述超图最小割模块对统计过的日志文件建立超图模型;

所述数据统计模块估算出服务器的容量,服务器的在联机事务处理系统运行时,使用写日志文件的方式,对一段时间内进行访问样本的采样,并记录系统中每个事务访问的分区,计算出所有同时访问分区的分布式事务的数量和访问频率;

所述历史数据分析模块将所述数据统计模块统计的数据建模,形成了一个集群间的超图模型,将分区的问题抽象成一个图,再通过贪心算法分析出重分区方案和迁移计划;

所述数据迁移模块以历史数据分析模块生成的迁移计划和数据统计模块解析的日志统计数据作为输入,在数据库集群各个机器之间迁移数据。

进一步地,其特征在于,所述超图模型的点是分区,边是每一条事务,边的权值是事务访问的频率。

进一步地,所述日志统计模块对输入日志对象的不同维度统计的数据包括事务编号、执行时间、事务访问的分区。

进一步地,所述日志统计模块产生的日志统计数据包括事务执行频率统计、访问分区和跨分区事务的统计、各节点的容量和节点访问频率统计内容。

本发明数据库系统的模型示意图如图3所示,包括数据统计模块,历史数据分析模块以及数据迁移模块;本发明的目标是分析用户的历史数据,并对查询的数据在集群中迁移,达到可扩展地动态适应负载。以下对涉及到的各个模块分别进行阐述:

数据统计模块:统计模块计估算出服务器的容量。服务器的在联机事务处理系统运行时,使用写日志文件的方式,对一段时间内进行访问样本的采样,即记录系统中每个事务都访问了哪些分区。从采样中我们可以计算出所有同时访问分区的分布式事务的数量和访问频率。

历史数据分析模块:统计数据是一个很大的工作量,将这些数据建模,形成了一个集群间超图的模型。其中超图的点是分区,边是每一条事务,边的权值是事务访问的频率。这样能够将分区的问题抽象成一个图。而通过分析这个超图,通过贪心算法分析出一种更优的分区方案,该方案是根据数据的分析动态生成的。

数据迁移模块:数据根据分区的方案,在每一个分区上生成一个迁移计划,数据会在迁移计划下进行数据迁移。

系统的主要过程如下:我们在拥有分区方法的基础上,统计集群各机器的日志文件,将机器间的网络通信延时对分布式数据库系统的影响进行了建模量化,并提出了使用超图模型进行分区的分组、贪心算法进行分组的放置。

本发明提出了一种结合无共享架构、事务的特性和数据库分区技术来生成重分区策略的新方法。该方法在历史处理日志文件分析的基础上,对用户需求进行理解、设计了一种基于超图的重分区算法,通过无共享架构的NewSQL平台构建基础层、日志文件统计层、超图模型层、重新部署层。实现对统计数据的建模和分析,完成对输入日志的流程挖掘分析。整个平台建立在无共享架构上,提高了数据库系统的可扩展性,与此同时,超图算法模型实现了对用户日志文件的数学建模,实现了重分区的按需分析。本发明根据联机在线事务的需求对数据库的通信延迟和网络开销进行了数倍的提升,并且实现了动态自动化的数据库可扩展,动态算法在设计上针对现实生活中数据的联系和属性进行了数据的重分区,使得在线事务处理更好的适应应用场景和现实数据。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

图1为本发明VoltDB数据库Schema分区和复制策略示意图;

图2为本发明多分区事务的访问数据库集群示意图;

图3为本发明一个较佳实施例的系统模块分析图。

具体实施方式

下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行数据库集群环境下的实施,以下给出了详细的实施方式和具体的操作过程。

如图3所示,本发明所述的基于超图划分的分布式数据库集群分区方法,操作过程包括:数据统计、历史数据分析、数据迁移。

平台基础层:是整个系统架构的输入接口和实现基础,包括三个模块,分别是数据统计模块、历史数据分析模块和数据迁移模块。

数据统计模块:在数据库运行一段时间后,模块通过日志数据统计与数据库集群的日志数据建立网络连接(如HTTP或FTP访问)传输日志数据,并将接受的数据经过日志预处理模块进行建模、预处理、噪声去除。

历史数据分析模块:将数据统一进行处理分析,生成一个重分区方案。最后将处理结果经由日志解析模块生成平台集成模块可供数据库处理的迁移计划分发给各分区。

数据迁移模块:该模块以数据分析模块生成的迁移计划为插和日志处理模块解析的迁移计划作为输入,数据库开始在集群个各个机器之间迁移数据,迁移的同时,事务仍可以访问未迁移的数据,带数据迁移完毕后将等待的事务继续处理。

算法建模层:是整个系统架构的核心处理单元,包括各数据的建模、数据分析、模型求解的具体实现。在本实施例中主要包括三个模块,分别是超图建模与最小割算法模块、复杂网络社团发现模块和日志统计模块。

hmetis模块:该模块实现了对超图的重分区,提供高效精确的分区算法。一次对hmetis独立的运算比其他的算法例如FM、KL、CLIP更快。另外,因为它的很好的平均削减幅度的特性,使得高性能的高速的分区算法成为可能。该算法在大于100000结点的超图上运行只需要数分钟。

复杂网络社团发现模块:该模块实现了复杂网络领域的社团发现算法,该算法通过发现数据的内在关系的社团属性,并将相同社团的数据放入对应的机器中。

日志统计模块:该模块实现了对输入日志对象的统计功能。通过对输入日志对象中不同维度(如事务编号、执行时间、事务访问的分区等)的统计,产生日志的统计数据,包括事务执行频率统计、访问分区和跨分区事务的统计、各节点的容量和节点访问频率统计等内容。

系统各模块的调用过程如下。日志统计模块先将上传到分布式文件系统的日志文件读入hmetis模块,hmetis模块将统计过的日志文件建模超图,超图模型。

本发明所述系统的主要特点是基于无共享架构的DBMS;支持多模块动态集成;主要技术和语言是JAVA、C++、Xml、Hmetis等。运行时环境为3个节点的分布式集群,运行时利用hmetis,提高了算法的时间和空间效率,并且对于大规模集群能迅速求解,并且支持算法模块在算法模块层进行动态地增加、修改和删除。由算法模块可动态的重分区并且迁移数据,使得分布式事务减少,跟好的保证了数据库的一致性。数据库可扩展性强。

使用了本发明中提出的构建方法后,在按需分析的同时,使得整个DBMS平台实现在线事务处理的用户需求和算法的模型,进而能够动态地调整平台的分区策略,提高了系统的可扩展性、可维护性和易用性,同时降低了延迟并提高了吞吐量。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号