一种基于工作负载的云数据处理方法及系统与流程

文档序号:16246852发布日期:2018-12-11 23:39阅读:187来源:国知局
一种基于工作负载的云数据处理方法及系统与流程

本发明涉及云数据处理技术领域,尤其是一种基于工作负载的云数据处理方法及系统。

背景技术

云计算是一种新兴的技术方式,使用这种计算方式,可以通过互联网,按需、定制化地为用户提供共享的硬件设备及软件资源。云计算平台现在已经成为服务于企业和个人的一个新的平台。云计算通常采用数据统一集中存储的模式,在云计算平台中,数据如何放置是一个非常重要的问题,在实际使用的过程中,需要将数据分配到云中合适的节点上。

云计算平台中的数据放置问题,已经被业界广泛并深入地研究,目前的研究主要集中在初始数据放置策略、数据副本数量的选择、运行时的动态调整以及事务请求的路由算法等方面内容上。上述过程存在的问题是现有放置技术可能带来性能瓶颈、限制数据库的可伸缩性。同时,现有副本选择策略易导致分布式事务数量的增加以及成本过高等问题。



技术实现要素:

本发明的目的是提供一种基于工作负载的云数据处理方法及系统,解决了云计算平台中的数据放置问题,最大限度地支持快速开发与交互。

为实现上述目的,本发明采用下述技术方案:

本发明第一方面提供了一种基于工作负载的云数据处理方法,包括以下步骤:

云数据副本放置步骤:获取历史工作负载,采用事务驱动分割策略完成数据项到存储分区的映射;

云数据副本定位步骤:接收到应用系统发起的事务请求后,采用贪婪算法选择定位副本。

结合第一方面,在第一方面第一种可能的实现方式中,所述获取历史工作负载,采用事务驱动分割策略完成数据项到存储分区的映射,具体包括:

获取历史日志的工作负载信息,使用超图对工作负载进行建模;

对工作负载超图进行分区,建立数据项到物理数据分区块的映射关系;

使用超图最小割分区技术对映射关系进行处理,实现物理数据分区块在机器间的放置。

结合第一方面,在第一方面第二种可能的实现方式中,所述获取历史日志的工作负载信息,使用超图对工作负载进行建模,具体包括:

捕捉一段时间内的查询工作负载,以数据项为顶点、查询映射成一个跨多个节点的超边,建立超图;

将超图进行压缩,生成工作负载的结果超图。

结合第一方面,在第一方面第三种可能的实现方式中,所述接收到应用系统发起的事务请求后,采用贪婪算法选择定位副本,具体包括:

接收到应用系统发起的事务请求后,使用标准贪婪算法查询和选择跨度,选择包含查询需要所有数据的最少数量的存储分区。

结合第一方面,在第一方面第四种可能的实现方式中,所述使用标准贪婪算法查询和选择跨度,具体包括:

计算每一个存储分区与查询子集的交集大小,选择交集最大的存储分区,删除包含在该存储分区的查询子集的所有项;

使用迭代直到查询子集中没有项,输出存储分区组合。

本发明第二方面提供了一种基于工作负载的云数据处理系统,包括:

云数据副本放置模块,获取历史工作负载,采用事务驱动分割策略完成数据项到存储分区的映射;

云数据副本定位模块,接收到应用系统发起的事务请求后,采用贪婪算法选择定位副本。

结合第二方面,在第二方面第一种可能的实现方式中,所述云数据副本放置模块包括:

工作负载处理单元,将工作负载作为输入,使用超图进行建模管理,对超图进行压缩后输出结果超图;

数据分区单元,对结果超图进行分区,输出数据项到物理数据分区的映射关系;

数据放置单元,使用超图最小割分区技术对映射关系进行处理,实现物理数据分区块在机器间的放置。

结合第二方面,在第二方面第二种可能的实现方式中,所述云数据副本定位模块包括:

索引单元,快速定位数据项位置,完成数据项索引建立、映射关系维护和日志管理;

路由器单元,根据事务请求自动选择和设定路由,以最佳路由选择策略转发请求;

数据引擎单元,接收应用系统发送的事务请求,返回处理结果到应用系统。

本发明第二方面的所述基于工作负载的云数据处理系统能够实现第一方面及第一方面的各实现方式中的方法,并取得相同的效果。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

(1)本发明支持数据存储模型的弹性扩展,同时,还解决了因为工作负载变化而导致的性能下降问题,保证了应用的高效运转。

(2)本发明基于工作负载所建立的超图,可以按照事务存取的数据单元进行建模,实现了多级别、细粒度的平台数据管理;数据副本数量的细粒度管理来确定了所需的每个数据项的副本数量,以及一组集合覆盖算法来决定要满足查询和符合满足要求所需的分区的最小数目的条件。

(3)通过本发明的副本选择和放置策略,可以最小化系统所涉及的事务的平均查询范围。该策略能大幅度减少分布式事务,提高系统的整体性能。本系统架构使数据副本更加均衡,大幅提高平台数据管理的效率。采用动态自适应的数据副本放置技术,实现了更高的可扩展性,并增加了容错能力,提高了工作负载的变化的应对能力。

附图说明

图1是基于工作负载的云数据处理方法流程图;

图2是步骤s1的方法流程图;

图3是步骤s11的方法流程图;

图4是步骤s2的方法流程图;

图5是基于工作负载的云数据处理系统结构示意图;

图6是云数据副本放置模块结构示意图;

图7是云数据副本定位模块结构示意图。

具体实施方式

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

术语解释:

超图:超图是一种广义的图,特点是一条超边可以连接多个点。超图h是一个集合组h=(v,e),其中的v是顶点的集合,e是v的非空幂集。

数据项可以是数据库中的关系、数据库中的关系的一部分或任意文件。目标是存储每个数据项到机器,服从分区的存储容量需求。需要注意的是,分区不需要是机器,但可以代表机架甚至数据中心。

查询的跨度,被定义为包含查询需要的所有数据的最小的分区数量。

在云数据存储环境中,由于数据节点不稳定、数据易丢失,并且用户对数据可用性有不同的需求,因此采用副本技术。本发明在对基于工作负载的数据副本放置问题的特征分析的基础上,提出一种云计算平台数据管理的系统架构。作为现有的数据放置方法的改进与完善,需要从更高层次上设计整体的系统构架,同时基于系统历史日志中的工作负载信息,设计支持数据副本放置方法及数据副本动态选择策略。

本申请为了解决云计算平台中的数据放置问题,最大限度地支持快速开发与交互,基于系统历史日志中的工作负载信息,设计一个整体的云数据放置系统架构,从更高层次上描述支持数据副本放置方法及数据副本动态选择策略的系统架构。将历史的查询工作负载建模成为一个超图,超图包含一组数据项,并通过图论概念来建模和分析副本放置问题。同时开发一系列的算法来决定哪些数据项需要被复制,以及将这些副本放置在哪里。基于此系统架构,设计工作负载驱动的数据副本放置方法及数据副本动态选择策略。通过该算法,最小化系统所涉及的事务的平均查询范围。

如图1所示,一种基于工作负载的云数据处理方法,包括以下步骤:

s1、获取历史工作负载,采用事务驱动分割策略完成数据项到存储分区的映射;

s2、接收到应用系统发起的事务请求后,采用贪婪算法选择定位副本。

如图2所示,步骤s1具体包括:

s11、获取历史日志的工作负载信息,使用超图对工作负载进行建模;

s12、对工作负载超图进行分区,建立数据项到物理数据分区块的映射关系;

s13、使用超图最小割分区技术对映射关系进行处理,实现物理数据分区块在机器间的放置。

如图3所示,步骤s11具体包括:

s111、捕捉一段时间内的查询工作负载,以数据项为顶点、查询映射成一个跨多个节点的超边,建立超图;

s112、将超图进行压缩,生成工作负载的结果超图。

如图4所示,步骤s2具体包括:

s21、计算每一个存储分区与查询子集的交集大小,选择交集最大的存储分区,删除包含在该存储分区的查询子集的所有项;

s22、使用迭代直到查询子集中没有项,输出存储分区组合。

如图5所示,一种基于工作负载的云数据处理系统,包括:

云数据副本放置模块10,获取历史工作负载,采用事务驱动分割策略完成数据项到存储分区的映射;

云数据副本定位模块11,接收到应用系统发起的事务请求后,采用贪婪算法选择定位副本。

如图6所示,云数据副本放置模块包括:

工作负载处理单元101,将工作负载作为输入,使用超图进行建模管理,对超图进行压缩后输出结果超图。

工作负载单元将系统的工作负载作为输入,使用超图方式进行建模管理——建立以元组为顶点、以元组之间的关系为边的大型超图,再将该超图进行压缩,产生关于工作负载的一个压缩的结果超图。若非特别说明,本发明中所有超图均代指该结果超图。

数据分区单元102,对结果超图进行分区,输出数据项到物理数据分区的映射关系。

数据分区单元负责做初始的工作负载感知的数据放置和复制的决策,然后通过适当的数据移植和复制来执行这个决策。它处理工作负载模块产生的工作负载的结果超图,使用通用的分区工具来对结果超图进行分区。数据分区单元的输出就是元组到它们的物理数据分区块的映射。

数据放置单元103,使用超图最小割分区技术对映射关系进行处理,实现物理数据分区块在机器间的放置。

数据放置单元对数据分区单元产生的映射关系进行处理,使用超图的最小割技术,实现了物理数据分区块在机器间的放置。

如图7所示,云数据副本定位模块包括:

索引单元111,快速定位数据项位置,完成数据项索引建立、映射关系维护和日志管理。

索引单元作为系统架构中的索引管理工具,提供了元数据索引建立、映射关系维护、日志管理等各项功能。索引单元通过快速定位数据位置,提高了系统的事务处理能力和系统吞吐量。

路由器单元112,根据事务请求自动选择和设定路由,以最佳路由选择策略转发请求。

路由器单元用来连接数据引擎跟索引模块、数据分区模块、数据放置模块和工作负载模块,是系统架构中的重要连接组件。它会根据业务处理请求的情况自动选择和设定路由,以最佳路由选择策略转发请求。

数据引擎单元113,接收应用系统发送的事务请求,返回处理结果到应用系统。

应用系统提交一个事务请求,然后接收通过数据引擎单元提供的接口所返回的结果。数据引擎单元使用两阶段提交协议来保证事务正确执行所需的原子性、一致性、隔离性、持久性四大要素。数据引擎单元发送事务请求到路由器单元,路由器单元负责计算事务执行需要的分区,然后事务就被分布在所需要的数据分区上并行地执行。

通过几个层次的抽象,为用户屏蔽复杂性,提炼每一层次的数据结构、对外接口、元数据驱动机制,进行了数据管理模型各个层次的抽象的形式化描述。

为把数据放置到各个数据节点上,数据首先被定义成了一个个的分割,每一个分割还对应着属于自己的一个副本集合。分割的每一个副本按照某种策略放置到云中的某个数据节点上。应用程序运行时,通过扩展的公共数据接口访问数据引擎模块,由数据引擎模块根据数据副本定位策略,与数据副本所在数据节点建立数据库连接,返回用户请求所响应的数据。

对云环境下的数据放置方法,可以采用事务驱动分割的策略,通过观察和捕捉一段时间内的查询和事务的工作负载,然后利用这些工作负载信息,来实现数据放置,最大限度地减少分布式事务的数量。根据工作负载信息,通过一系列压缩技术,建立以元组为顶点、以元组之间的关系为边的超图,通过图中的最小分割算法,获取元组的分割信息及分割副本信息,该策略能大幅度减少分布式事务,提高系统的整体性能。

具体的,该模块压缩方法为:

对大型超图中的每一个结点v∈v,通过计算v′=f(pkv),将其映射到结果超图中的一个虚拟节点v′∈v′,最终将一组结点压缩成一个虚拟节点。其中pkv代表节点v的主键,f使用哈希函数hf(pkv)=hash(pkv)modn,其中n是所需的虚拟节点数量。

对于大型超图中的超边表示e中节点要映射到的虚拟结点的集合。如果e′包含至少2个虚拟结点,则我们增加e'作为结果超图的一个超边h'=(v',e')。定义超图压缩率(cr)作为大型超图的结点数量|v|跟压缩后的结果超图的虚拟结点数量|v'|的比率,即若cr=1表示没有压缩,若cr=|v|,表示所有的原始结点都被映射到了一个单一的虚拟结点上了。

捕捉一段时间内的历史的查询工作负载,把查询工作负载表示为一个超图,节点表示数据项,每个查询被对应地映射成一个跨多个节点的超边。在超图的基础上,为超图中的每一个顶点增加副本数量的标识。通过使用最小割分区技术,超图的最小割也就是数据布局的分区方案。

通过对数据设置副本,积极主动的复制数据,带来分布式更新事务的成本,副本数量增多后,在分布式事务进行更新时就要保证一致性,所以增加了成本。为了维持主动复制的副本的一致性,采用细粒度的副本策略,来控制跟分布式更新相关的开销。除此之外,细粒度的副本策略,也有助于通过正常处理分区故障以提高容错能力。

基于系统的工作负载,使用超图建立数据块之间的关系。对数据的副本数量进行细粒度的管理,提高了系统的副本使用效率。提出了使用细粒度的数据副本数量管理策略,策略定义在元组集合的层次上,可以更好控制分布式更新的成本,提高系统吞吐量,并能够提供不同的工作负载的适应性水平,使得系统能够在不同的读取和写入访问模式下,更好地处理查询工作负载。

基于工作负载的数据副本动态选择策略,包括以下步骤:

当一个事务请求到来时,该如何快速定位到合适的数据副本上,事务处理模块负责对事务请求进行响应处理。

首先需要在索引模块中管理云索引、元数据。其次,当事务请求到达时,需要使用科学高效的数据副本定位算法,先由索引模块确定副本的物理数据分区块,再通过路由器模块确定副本的数据分区,使事务请求分配到合适的数据副本中,以减少分布式访问,提高云系统的性能。

通过一个标准的贪婪算法来定位数据副本,用于查询和计算事务请求的跨度。对每一个数据分区,计算其与查询子集的交集的大小。选择交集大小最大的分区,删除包含在该分区的查询子集的所有项,使用迭代,一直到查询子集中没有项。类似于最小集合覆盖问题,被给出了一组的子集和查询子集,即是被要求找到所需的最小数量的子集来覆盖查询子集。

基于数据管理模型及数据管理技术,在事务请求到达时,提出采用数据副本快速定位策略。映射表的大小是由超图的压缩比决定的,压缩得越厉害,则映射表越小。依赖于数据副本定位器的计算和存储容量,可以选择一个合适的压缩比来优化整体性能。同时合并了两个额外的功能,来减少查询范围和分布式更新的成本:数据副本数量的细粒度管理来确定了所需的每个数据项的副本数量,以及一组集合覆盖算法来决定要满足查询和符合满足要求所需的分区的最小数目的条件。使用标准的贪婪算法来选择副本,用于查询和计算跨度。对每一个分区,计算其与查询子集的交集的大小。选择交集大小最大的分区,删除包含在该分区的查询子集的所有项,使用迭代,一直到查询子集中没有项。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1