当前位置: 首页 > 专利查询>武汉大学专利>正文

一种基于负载驱动的分布式图数据分割和复制方法技术

技术编号:28373610 阅读:21 留言:0更新日期:2021-05-08 00:00
本发明专利技术提出了一种基于工作负载驱动的分布式图数据分割和复制方法。本发明专利技术对图数据集中的数据通过哈希表的方法分别存储至服务器集群中;结合用户的工作负载信息,在顶点数据集中结合源服务器负载判定构建活跃顶点集,然后每个活跃顶点结合服务器集群根据打分函数评分,构建目标服务器评分列表,通过目标服务器负载判定,确定目标迁移服务器;结合活跃顶点集和对应的目标迁移服务器,通过阈值判定活跃顶点是否为高读顶点,若活跃顶点不为高读顶点则进一步通过最大复制因子动态调整活跃顶点的副本数据。本发明专利技术利用工作负载动态变化的特性,动态调整图顶点数据的位置,提高了查询效率,保证了查询的低延迟和高吞吐量。

【技术实现步骤摘要】
一种基于负载驱动的分布式图数据分割和复制方法
本专利技术属于计算机领域,尤其涉及一种基于负载驱动的分布式图数据分割和复制方法。
技术介绍
近年来,随着社交网络和万维图数据规模在不断扩大,同时多用户访问的需求在不断扩张,目前常见的单个的数据库服务器难以在现有资源下满足多用户的高质量访问服务。传统的解决方案是采用数据的垂直扩展和完整的复制,由此带来的高昂代价是难以令人满意的,因此分布式数据存储方式应运而生。分布式数据存储基于廉价的服务器集群进行水平分区扩展和部分复制备份,并提供了并发式的图数据处理。面对分布并行数据存储,如何把图数据合理的存储在不同的节点,使得用户单次查询效率提高,同时提供一定的数据容灾功能,这是相关领域研究的热点问题和进一步发展的方向。在线查询工作负载通常包含大量的相似类型的数据查询,并根据查询模式探索输入图的有限子集。换而言之,在一段时间内,那些被频繁访问和遍历的节点和边集合可以称作活动节点和活动边。通过这些信息我们可以获得两个重要参数,节点权重以及边割信息。节点权重指的是节点访问次数,这是确定是否热点数据的重要指标。边割指的是图数据进行查询操作时,由于图数据的层次性,访问数据可能从一个服务器节点到另一个服务器节点,相当于一条边被分割在不同的服务器器节点上。边割会导致极大的通信开销,影响用户数据查询的效率。因此,在于平衡服务器集群之间的不同顶点的同时,需要尽可能减小割边的数目。和传统的关系型数据不同的是,图数据是由一个个节点和边构成的层次网络的非关系型数据,如何把这些数据节点和边合理的分配到不同的服务器节点中,这就是图数据分割算法。现有的图分割算法大部分是基于静态图设计实现的。当它们被用在节点和边都会连续变化的动态图时,例如,语义网和社交网络,它往往需要在一批节点和边更改后进行再一次的重量级的重新分割。面对大规模图,该算法往往要花费数小时的时间,这是无法接受的。尽管现在存在通过机器学习去寻找图特征优化时间,但是结果仍然不尽如人意。因此,对于动态图而言,由于查询工作负载、图拓扑和弹性系统容量等的动态变化,实际图中的分区的质量会随着时间的推移而不断的降低。这种动态变化会给系统带来一定的开销,同时可能会降低在线查询的效率和吞吐量。因此,在时间和内存需求方面,动态自适应策略应该是“轻量级”的。另一个问题则是分布式图数据的容灾问题,为了防止由于系统出现操作失误或系统故障导致数据丢失,我们需要进行数据备份,也就是数据复制。传统的解决方案是根据固定的复制因子对全部的数据进行完整备份,由此带来昂贵的网络和存储开销。事实上不同的数据丢失的概率是不一样的,面对频繁操作的热点数据,其丢失概率更高,而一些冷数据则概率更低。根据数据的类型,通过动态的调整复制因子来进行数据复制,从而减少响应的开销。
技术实现思路
本专利技术针对现有技术的不足,提供一种基于工作负载驱动的分布式图数据分割和复制方法。本专利技术的技术方案为一种基于工作负载驱动的分布式图数据分割和复制方法,包含以下步骤:步骤1,通过多个顶点、边构建图数据集,将多个顶点的数据及其关联边数据通过哈希表的方法分别存储至多台服务器中,多台服务器通过环状方式构成服务器集群,得到服务器集群中每台服务器的顶点数据集;步骤2,结合用户输入的工作负载信息,在图数据集的顶点数据集中选择候选顶点构建候选活跃顶点集,在候选活跃顶点集结合源服务器负载判定选取活跃顶点,以构建活跃顶点集,然后活跃顶点集中每个活跃顶点依次结合服务器集群中每个服务器根据打分函数计算服务器集群中每个服务器的评分,根据每个服务器对应的评分构建目标服务器评分列表,通过目标服务器负载情况判定,确定每个活跃顶点的目标迁移服务器;步骤3,结合活跃顶点集和对应的迁移目标服务器,步骤3所述通过可配置的阈值判定活跃顶点集中活跃顶点是否为高读顶点,若活跃顶点集中活跃顶点不为高读顶点则进一步通过最大复制因子动态调整活跃顶点的副本数目及对应的活跃顶点数据。作为优选,步骤1所述图数据集为:G(V,E)V={vi}E={ei,j},i∈[1,L],j∈[1,L]其中,L表示图数据集中顶点的数量,V表示图数据集中顶点集合,E表示图数据集中边集合,vi表示图数据集中第i个顶点,ei,j表示图数据集中第i个顶点与第j个顶点之间的边,nodei表示图数据集中第i个顶点的数据,ki,j表示图数据集中第i个顶点与第j个顶点之间边的属性;步骤1所述服务器集群为:[S1,S2,…,SN]其中,Sn表示服务器集群中第n台服务器;通过一个可配置的复制因子Fmin,将所述服务器集群每台服务器的顶点数据集通过环状的方式依次拷贝到其他服务器节点;步骤1所述服务器集群中每台服务器的顶点数据集为:datann∈[1,N],L>N步骤1所述服务器集群中每台服务器的顶点集合为:步骤1所述服务器集群中每台服务器节点的顶点权值集合为:其中,N为服务器集群中服务器的数量,datan表示服务器集群中第n台服务器的顶点数据集,netn表示服务器集群中第n台服务器的顶点集合,weightn表示服务器集群中第n台服务器的顶点权值集合,Mn表示服务器集群中第n台服务器中顶点的数量,表示服务器集群中第n台服务器的顶点数据集中第t个顶点数据,表示服务器集群中第n台服务器的顶点数据集中第t个顶点,t∈[1,Mn];作为优选,步骤2所述的候选活跃顶点集为:j∈[1,H]其中,Vcandinate表示候选活跃顶点集,H表示候选活跃顶点集中活跃顶点的数量,V表示图数据集的顶点数据集,表示候选活跃顶点集中第s个活跃顶点即图数据集中第ks个顶点,候选活跃顶点集中第j个活跃顶点的权值为且步骤2所述在候选活跃顶点集结合源服务器负载判定选取活跃顶点为:步骤2所述的源服务器为:若属于netn,则Sn是顶点的源服务器,n∈[1,N]其中,N为服务器集群中服务器的数量,表示服务器集群中第n台服务器的顶点集合,Mn表示服务器集群中第n台服务器中顶点的数量,表示服务器集群中第n台服务器的顶点数据集中第t个顶点,t∈[1,Mn];步骤2所述源服务器负载判定为:根据源服务器公式进行判定,条件为真,说明Sn的负载处于正常区间,将作为活跃顶点;所述的源服务器公式为:其中,W(Sn)表示服务器集群中第n台服务器上候选活跃顶点的权值的总和;其中,表示候选活跃顶点的权值,即的访问频次,且是属于netn;Φ表示服务器节点的不平衡程度,范围为[1,2],Ω代表着全部服务器的平均活动权重,Φ和Ω定义如下:步骤2所述的活跃顶点集为:j∈[1,K]其中,VActive表示活跃顶点集,K表示活跃顶点集中活跃顶点的数量,V表示图数据集的顶点数据集,表示活跃顶点集中第j个活跃顶点即图数据集中第本文档来自技高网
...

【技术保护点】
1.一种基于工作负载驱动的分布式图数据分割和复制方法,包含以下步骤:/n步骤1,通过多个顶点、边构建图数据集,将多个顶点的数据及其关联边数据通过哈希表的方法分别存储至多台服务器中,多台服务器通过环状方式构成服务器集群,得到服务器集群中每台服务器的顶点数据集;/n步骤2,结合用户输入的工作负载信息,在图数据集的顶点数据集中选择候选顶点构建候选活跃顶点集,在候选活跃顶点集结合源服务器负载判定选取活跃顶点,以构建活跃顶点集,然后活跃顶点集中每个活跃顶点依次结合服务器集群中每个服务器根据打分函数计算服务器集群中每个服务器的评分,根据每个服务器对应的评分构建目标服务器评分列表,通过目标服务器负载情况判定,确定每个活跃顶点的目标迁移服务器;/n步骤3,结合活跃顶点集和对应的迁移目标服务器,步骤3所述通过可配置的阈值判定活跃顶点集中活跃顶点是否为高读顶点,若活跃顶点集中活跃顶点不为高读顶点则进一步通过最大复制因子动态调整活跃顶点的副本数目及对应的活跃顶点数据。/n

【技术特征摘要】
1.一种基于工作负载驱动的分布式图数据分割和复制方法,包含以下步骤:
步骤1,通过多个顶点、边构建图数据集,将多个顶点的数据及其关联边数据通过哈希表的方法分别存储至多台服务器中,多台服务器通过环状方式构成服务器集群,得到服务器集群中每台服务器的顶点数据集;
步骤2,结合用户输入的工作负载信息,在图数据集的顶点数据集中选择候选顶点构建候选活跃顶点集,在候选活跃顶点集结合源服务器负载判定选取活跃顶点,以构建活跃顶点集,然后活跃顶点集中每个活跃顶点依次结合服务器集群中每个服务器根据打分函数计算服务器集群中每个服务器的评分,根据每个服务器对应的评分构建目标服务器评分列表,通过目标服务器负载情况判定,确定每个活跃顶点的目标迁移服务器;
步骤3,结合活跃顶点集和对应的迁移目标服务器,步骤3所述通过可配置的阈值判定活跃顶点集中活跃顶点是否为高读顶点,若活跃顶点集中活跃顶点不为高读顶点则进一步通过最大复制因子动态调整活跃顶点的副本数目及对应的活跃顶点数据。


2.根据权利要求1所述的基于工作负载驱动的分布式图数据分割和复制方法,其特征在于,
步骤1所述图数据集为:
G(V,E)
V={vi}
E={ei,j},i∈[1,L],j∈[1,L]
其中,L表示图数据集中顶点的数量,V表示图数据集中顶点集合,E表示图数据集中边集合,vi表示图数据集中第i个顶点,ei,j表示图数据集中第i个顶点与第j个顶点之间的边,nodei表示图数据集中第i个顶点的数据,ki,j表示图数据集中第i个顶点与第j个顶点之间边的属性;
步骤1所述服务器集群为:
[S1,S2,…,SN]
其中,Sn表示服务器集群中第n台服务器;
通过一个可配置的复制因子Fmin,将所述服务器集群每台服务器的顶点数据集通过环状的方式依次拷贝到其他服务器节点;
步骤1所述服务器集群中每台服务器的顶点数据集为:
datan
n∈[1,N],L>N






步骤1所述服务器集群中每台服务器的顶点集合为:



步骤1所述服务器集群中每台服务器节点的顶点权值集合为:



其中,N为服务器集群中服务器的数量,datan表示服务器集群中第n台服务器的顶点数据集,netn表示服务器集群中第n台服务器的顶点集合,weightn表示服务器集群中第n台服务器的顶点权值集合,Mn表示服务器集群中第n台服务器中顶点的数量,表示服务器集群中第n台服务器的顶点数据集中第t个顶点数据,表示服务器集群中第n台服务器的顶点数据集中第t个顶点,t∈[1,Mn]。


3.根据权利要求1所述的基于工作负载驱动的分布式图数据分割和复制方法,其特征在于,
步骤2所述的候选活跃顶点集为:



其中,Vcandinate表示候选活跃顶点集,H表示候选活跃顶点集中活跃顶点的数量,V表示图数据集的顶点数据集,表示候选活跃顶点集中第s个活跃顶点即图数据集中第ks个顶点,候选活跃顶点集中第j个活跃顶点的权值为且
步骤2所述在候选活跃顶点集结合源服务器负载判定选取活跃顶点为:
步骤2所述的源服务器为:若属于netn,则Sn是顶点的源服务器,n∈[1,N]
其中,N为服务器集群中服务器的数量,表示服务器集群中第n台服务器的顶点集合,Mn表示服务器集群中第n台服务器中顶点的数量,表示服务器集群中第n台服务器的顶点数据集中第t个顶点,t∈[1,Mn];
步骤2所述源服务器负载判定为:
根据源服务器公式进行判定,条件为真,说明Sn的负载处于正常区间,将作为活跃顶点;
所述的源服务器公式为:



其中,W(Sn)表示服务器集群中第n台服务器上候选活跃顶点的权值的总和;



其中,表示候选活跃顶点的权值,即的访问频次,且是属于netn;
Φ表示服务器节点的不平衡程度,范围为[1,2],...

【专利技术属性】
技术研发人员:涂宏伟刘梦赤
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1