CN112765177A - 一种基于负载驱动的分布式图数据分割和复制方法 - Google Patents

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

Info

Publication number
CN112765177A
CN112765177A CN202110101657.7A CN202110101657A CN112765177A CN 112765177 A CN112765177 A CN 112765177A CN 202110101657 A CN202110101657 A CN 202110101657A CN 112765177 A CN112765177 A CN 112765177A
Authority
CN
China
Prior art keywords
server
vertex
active
representing
vertices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110101657.7A
Other languages
English (en)
Other versions
CN112765177B (zh
Inventor
涂宏伟
刘梦赤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN202110101657.7A priority Critical patent/CN112765177B/zh
Publication of CN112765177A publication Critical patent/CN112765177A/zh
Application granted granted Critical
Publication of CN112765177B publication Critical patent/CN112765177B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种基于负载驱动的分布式图数据分割和复制方法
技术领域
本发明属于计算机领域,尤其涉及一种基于负载驱动的分布式图数据分割和复制方法。
背景技术
近年来,随着社交网络和万维图数据规模在不断扩大,同时多用户访问的需求在不断扩张,目前常见的单个的数据库服务器难以在现有资源下满足多用户的高质量访问服务。传统的解决方案是采用数据的垂直扩展和完整的复制,由此带来的高昂代价是难以令人满意的,因此分布式数据存储方式应运而生。分布式数据存储基于廉价的服务器集群进行水平分区扩展和部分复制备份,并提供了并发式的图数据处理。面对分布并行数据存储,如何把图数据合理的存储在不同的节点,使得用户单次查询效率提高,同时提供一定的数据容灾功能,这是相关领域研究的热点问题和进一步发展的方向。
在线查询工作负载通常包含大量的相似类型的数据查询,并根据查询模式探索输入图的有限子集。换而言之,在一段时间内,那些被频繁访问和遍历的节点和边集合可以称作活动节点和活动边。通过这些信息我们可以获得两个重要参数,节点权重以及边割信息。节点权重指的是节点访问次数,这是确定是否热点数据的重要指标。边割指的是图数据进行查询操作时,由于图数据的层次性,访问数据可能从一个服务器节点到另一个服务器节点,相当于一条边被分割在不同的服务器器节点上。边割会导致极大的通信开销,影响用户数据查询的效率。因此,在于平衡服务器集群之间的不同顶点的同时,需要尽可能减小割边的数目。
和传统的关系型数据不同的是,图数据是由一个个节点和边构成的层次网络的非关系型数据,如何把这些数据节点和边合理的分配到不同的服务器节点中,这就是图数据分割算法。现有的图分割算法大部分是基于静态图设计实现的。当它们被用在节点和边都会连续变化的动态图时,例如,语义网和社交网络,它往往需要在一批节点和边更改后进行再一次的重量级的重新分割。面对大规模图,该算法往往要花费数小时的时间,这是无法接受的。尽管现在存在通过机器学习去寻找图特征优化时间,但是结果仍然不尽如人意。因此,对于动态图而言,由于查询工作负载、图拓扑和弹性系统容量等的动态变化,实际图中的分区的质量会随着时间的推移而不断的降低。这种动态变化会给系统带来一定的开销,同时可能会降低在线查询的效率和吞吐量。因此,在时间和内存需求方面,动态自适应策略应该是“轻量级”的。
另一个问题则是分布式图数据的容灾问题,为了防止由于系统出现操作失误或系统故障导致数据丢失,我们需要进行数据备份,也就是数据复制。传统的解决方案是根据固定的复制因子对全部的数据进行完整备份,由此带来昂贵的网络和存储开销。事实上不同的数据丢失的概率是不一样的,面对频繁操作的热点数据,其丢失概率更高,而一些冷数据则概率更低。根据数据的类型,通过动态的调整复制因子来进行数据复制,从而减少响应的开销。
发明内容
本发明针对现有技术的不足,提供一种基于工作负载驱动的分布式图数据分割和复制方法。
本发明的技术方案为一种基于工作负载驱动的分布式图数据分割和复制方法,包含以下步骤:
步骤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所述服务器集群中每台服务器的顶点数据集为:
datan
n∈[1,N],L>N
Figure BDA0002916176350000031
Figure BDA0002916176350000032
步骤1所述服务器集群中每台服务器的顶点集合为:
Figure BDA0002916176350000033
步骤1所述服务器集群中每台服务器节点的顶点权值集合为:
Figure BDA0002916176350000034
其中,N为服务器集群中服务器的数量,datan表示服务器集群中第n台服务器的顶点数据集,netn表示服务器集群中第n台服务器的顶点集合,weightn表示服务器集群中第n台服务器的顶点权值集合,Mn表示服务器集群中第n台服务器中顶点的数量,
Figure BDA0002916176350000035
表示服务器集群中第n台服务器的顶点数据集中第t个顶点数据,
Figure BDA0002916176350000036
表示服务器集群中第n台服务器的顶点数据集中第t个顶点,t∈[1,Mn];
作为优选,步骤2所述的候选活跃顶点集为:
Figure BDA0002916176350000037
j∈[1,H]
其中,Vcandinate表示候选活跃顶点集,H表示候选活跃顶点集中活跃顶点的数量,V表示图数据集的顶点数据集,
Figure BDA0002916176350000041
表示候选活跃顶点集中第s个活跃顶点即图数据集中第ks个顶点,候选活跃顶点集中第j个活跃顶点的权值为
Figure BDA00029161763500000416
Figure BDA0002916176350000042
步骤2所述在候选活跃顶点集结合源服务器负载判定选取活跃顶点为:
步骤2所述的源服务器为:若
Figure BDA0002916176350000043
属于netn,则Sn是顶点
Figure BDA0002916176350000044
的源服务器,n∈[1,N]
其中,N为服务器集群中服务器的数量,
Figure BDA0002916176350000045
表示服务器集群中第n台服务器的顶点集合,Mn表示服务器集群中第n台服务器中顶点的数量,
Figure BDA0002916176350000046
表示服务器集群中第n台服务器的顶点数据集中第t个顶点,t∈[1,Mn];
步骤2所述源服务器负载判定为:
根据源服务器公式进行判定,条件为真,说明Sn的负载处于正常区间,将
Figure BDA0002916176350000047
作为活跃顶点;
所述的源服务器公式为:
Figure BDA0002916176350000048
其中,W(Sn)表示服务器集群中第n台服务器上候选活跃顶点的权值的总和;
Figure BDA0002916176350000049
其中,
Figure BDA00029161763500000410
表示候选活跃顶点
Figure BDA00029161763500000411
的权值,即
Figure BDA00029161763500000412
的访问频次,且
Figure BDA00029161763500000413
是属于netn
Φ表示服务器节点的不平衡程度,范围为[1,2],Ω代表着全部服务器的平均活动权重,Φ和Ω定义如下:
Figure BDA00029161763500000414
Figure BDA00029161763500000415
步骤2所述的活跃顶点集为:
Figure BDA0002916176350000051
j∈[1,K]
其中,VActive表示活跃顶点集,K表示活跃顶点集中活跃顶点的数量,V表示图数据集的顶点数据集,
Figure BDA0002916176350000052
表示活跃顶点集中第j个活跃顶点即图数据集中第kj个顶点,活跃顶点集中第j个活跃顶点的权值为
Figure BDA0002916176350000053
Figure BDA0002916176350000054
步骤2所述计算服务器集群中每个服务器的评分为:
Figure BDA0002916176350000055
Figure BDA0002916176350000056
表示活跃顶点集中第j个活跃顶点指向第n个服务器的关联边的权值和:
Figure BDA0002916176350000057
其中,
Figure BDA0002916176350000058
表示图数据集中第kj个顶点与服务器集群中第n台服务器的顶点数据集中第t个顶点之间的边的权值,即
Figure BDA0002916176350000059
Figure BDA00029161763500000510
之间的边的访问频次,其中顶点
Figure BDA00029161763500000511
属于netn,当顶点
Figure BDA00029161763500000512
和顶点
Figure BDA00029161763500000513
之间不存在边时,
Figure BDA00029161763500000514
的值为0;
Figure BDA00029161763500000515
n∈[1,N]
其中,N为服务器集群中服务器的数量,Mn表示服务器集群中第n台服务器中顶点的数量,
Figure BDA00029161763500000516
表示服务器集群中第n台服务器的顶点数据集中第t个顶点,t∈[1,Mn];
W(Sn)表示服务器集群中第n台服务器上候选活跃顶点的权值的总和;
Figure BDA00029161763500000517
其中,
Figure BDA00029161763500000518
表示图数据集中第nt个顶点的权值,即
Figure BDA00029161763500000519
的访问频次,且
Figure BDA00029161763500000520
是属于netn
SUMn表示服务器集群中第n个服务器上候选活跃顶点的数量,通过统计netn中候选活跃顶点的数量得到;
步骤2所述的服务器分数为:
Figure BDA0002916176350000061
其中,
Figure BDA0002916176350000062
表示活跃顶点
Figure BDA0002916176350000063
在服务器节点Spi上使用打分函数获取的分数值;
结合服务器分数和对应的服务器节点我们组成一个服务器评分信息为:
Figure BDA0002916176350000064
其中,
Figure BDA0002916176350000065
表示一个评分表项,由一个分数值和对应的服务器节点组成,
Figure BDA0002916176350000066
表示活跃顶点
Figure BDA0002916176350000067
在服务器节点
Figure BDA0002916176350000068
上使用打分函数获取的分数值,
Figure BDA0002916176350000069
表示服务器节点;
步骤2所述目标服务器评分列表为:
Figure BDA00029161763500000610
其中
Figure BDA00029161763500000611
表示活跃顶点
Figure BDA00029161763500000612
在全部服务器上的评分表项集合,且该集合是根据每个表项中的分数值从大到小进行排序的;
步骤2所述目标服务器负载情况判定为:
通过进行依次遍历目标服务器列表
Figure BDA00029161763500000613
并使用目标服务器公式,当公式为真且目标服务器
Figure BDA00029161763500000614
不等于源服务器Sk时,此时的服务器
Figure BDA00029161763500000615
确定为最终的目标服务器;
所述的目标服务器公式为:
Figure BDA00029161763500000616
其中,
Figure BDA00029161763500000617
表示服务器节点
Figure BDA00029161763500000618
上全部候选活跃顶点的权值的总和;
Figure BDA00029161763500000619
其中,
Figure BDA00029161763500000620
表示图数据集中第nt个顶点的权值,即
Figure BDA00029161763500000621
的访问频次,且
Figure BDA00029161763500000622
是属于
Figure BDA0002916176350000071
Φ表示服务器节点的不平衡程度,范围为[1,2],Ω代表着全部服务器的平均活动权重,Φ和Ω定义如下:
Figure BDA0002916176350000072
Figure BDA0002916176350000073
步骤2所述每个活跃顶点的目标迁移服务器为:
Figure BDA0002916176350000074
其中
Figure BDA0002916176350000075
表示给定的打分函数,且Sk!=Sn,Sn表示活跃顶点
Figure BDA0002916176350000076
的原目标服务器;
作为优选,步骤3所述通过可配置的阈值判定活跃顶点集中活跃顶点是否为高读顶点,具体为:
Figure BDA00029161763500000717
其中,
Figure BDA0002916176350000077
表示活跃顶点
Figure BDA0002916176350000078
的权值,
Figure BDA0002916176350000079
表示当前顶点
Figure BDA00029161763500000710
的副本数目,N表示服务器节点的总数目,θ为自定义的阈值;
步骤3所述通过最大复制因子动态调整活跃顶点的副本数目及对应的活跃顶点数据为:
首先,添加对应的迁移目标服务器
Figure BDA00029161763500000711
中活跃顶点
Figure BDA00029161763500000712
的数据,若活跃顶点集中活跃顶点为高读顶点,则则副本数目fv加一;若活跃顶点集中活跃顶点不为高读顶点,删除服务器集群中源服务器即Sn对应的活跃顶点即
Figure BDA00029161763500000713
的数据,然后通过进一步判定活跃顶点的副本数目是否大于最大复制因子,具体为:
Figure BDA00029161763500000714
表示活跃顶点的副本数目大于最大复制因子,则删除最低访问服务器节点中活跃顶点
Figure BDA00029161763500000715
的数据,同时副本数目fv减1;
所述最低访问服务器节点的定义为:
Figure BDA00029161763500000716
其中
Figure BDA0002916176350000081
表示顶点
Figure BDA0002916176350000082
在服务器节点Si的权值;
所述最低访问服务器节点指的是:
一个活跃顶点可能在不同服务器节点存在副本,每个副本中的权值是不同的,选择顶点权值最低对应的服务器节点。
本发明利用工作负载动态变化的特性,通过实际测试自适应调整分布式图顶点的初始位置,采取流式分配策略评估,从而减少了用户数据查询时的边割数目,提高了查询效率,保证了查询的低延迟和高吞吐量。
附图说明
图1:是本发明实施例的自适应图分割和复制方法的流程图。
图2:是本发明实施例的动态图分割流程图。
图3:是本发明实施例的动态复制流程图。
具体实施方式
本发明主要基于计算机图形拓扑学,考虑动态图特性和用户工作负载特性,提出的一种自适应分布式图数据分割和复制的实验方法及系统。本方法充分考虑了不同用户在不同的工作负载的情形下,通过自适应调整图顶点的存储位置已达到用户在单次查询中尽可能少的访问多个服务器节点,提高查询效率,保证查询的低延迟和高吞吐量。通过本发明获得的结果更加科学,更加精确。
本发明提供的方法能够用计算机软件技术实现流程。参见图1,实施例集群分布式图数据分割和复制为例对本发明的流程进行一个具体的阐述,如下:
一种基于工作负载驱动的分布式图数据分割和复制方法,包含以下步骤:
步骤1,通过多个顶点、边构建图数据集,将多个顶点的数据及其关联边数据通过哈希表的方法分别存储至多台服务器中,多台服务器通过环状方式构成服务器集群,得到服务器集群中每台服务器的顶点数据集;
步骤1所述图数据集为:
G(V,E)
V={vi}
E={ei,j},i∈[1,L],j∈[1,L]
其中,L=1000表示图数据集中顶点的数量,V=1000表示图数据集中顶点集合,E=10000表示图数据集中边集合,vi表示图数据集中第i个顶点,ei,j表示图数据集中第i个顶点与第j个顶点之间的边,nodei表示图数据集中第i个顶点的数据,ki,j表示图数据集中第i个顶点与第j个顶点之间边的属性;
步骤1所述服务器集群为:
[S1,S2,…,SN]
其中,Sn表示服务器集群中第n台服务器;
通过一个可配置的复制因子Fmin=2,将所述服务器集群每台服务器的顶点数据集通过环状的方式依次拷贝到其他服务器节点;
步骤1所述服务器集群中每台服务器的顶点数据集为:
datan
n∈[1,N],L>N
Figure BDA0002916176350000091
Figure BDA0002916176350000092
步骤1所述服务器集群中每台服务器的顶点集合为:
Figure BDA0002916176350000093
步骤1所述服务器集群中每台服务器节点的顶点权值集合为:
Figure BDA0002916176350000094
其中,N=10为服务器集群中服务器的数量,datan表示服务器集群中第n台服务器的顶点数据集,netn表示服务器集群中第n台服务器的顶点集合,weightn表示服务器集群中第n台服务器的顶点权值集合,Mn表示服务器集群中第n台服务器中顶点的数量,
Figure BDA0002916176350000095
表示服务器集群中第n台服务器的顶点数据集中第t个顶点数据,
Figure BDA0002916176350000096
表示服务器集群中第n台服务器的顶点数据集中第t个顶点,t∈[1,Mn];
实施具体的实施过程说明如下:
图数据集是由RDF三元组数据构成,每个实体由主体,预测和客体三个部分主成,部分数据如下表1所示:表中的第一列和第三列分别为图两端的顶点,而第二列则是连接两个顶点的边的标记。
Figure BDA0002916176350000097
Figure BDA0002916176350000101
表1
首先对全部subject和object进行转换为数字类型,每一个图顶点存在唯一对应的整数值,也就是哈希值,然后使用简单的哈希策略,例如一致性哈希法,把每个顶点均匀的分布在服务器集群节点S上,比如说存在10个服务器节点,1000个图顶点,那么平均每个服务器节点保存了100个图顶点。我们采用以节点为中心的数据分割方法,将每个源顶点及其关联边分配到同一个分区中,也就是说我们在每个服务器节点Si中保数据的源顶点和相关联的边。最后把每个顶点的关联边数据保存到服务器节点上。配置最低复制Fmin,例如设置Fmin=2,那么每个节点最低存在两个副本,并且Fmin值不能大于服务器集群的数目。
步骤2,结合用户输入的工作负载信息,在图数据集的顶点数据集中选择候选顶点构建候选活跃顶点集,在候选活跃顶点集结合源服务器负载判定选取活跃顶点,以构建活跃顶点集,然后活跃顶点集中每个活跃顶点依次结合服务器集群中每个服务器根据打分函数计算服务器集群中每个服务器的评分,根据每个服务器对应的评分构建目标服务器评分列表,通过目标服务器负载情况判定,确定每个活跃顶点的目标迁移服务器;
步骤2所述的候选活跃顶点集为:
Figure BDA0002916176350000102
j∈[1,H]
其中,Vcandinate表示候选活跃顶点集,H=100表示候选活跃顶点集中活跃顶点的数量,V=1000表示图数据集的顶点数据集,
Figure BDA0002916176350000103
表示候选活跃顶点集中第s个活跃顶点即图数据集中第ks个顶点,候选活跃顶点集中第j个活跃顶点的权值为
Figure BDA0002916176350000104
Figure BDA0002916176350000105
步骤2所述在候选活跃顶点集结合源服务器负载判定选取活跃顶点为:
步骤2所述的源服务器为:若
Figure BDA0002916176350000111
属于netn,则Sn是顶点
Figure BDA0002916176350000112
的源服务器,n∈[1,N]
其中,N=10为服务器集群中服务器的数量,
Figure BDA0002916176350000113
表示服务器集群中第n台服务器的顶点集合,Mn表示服务器集群中第n台服务器中顶点的数量,
Figure BDA0002916176350000114
表示服务器集群中第n台服务器的顶点数据集中第t个顶点,t∈[1,Mn];
步骤2所述源服务器负载判定为:
根据源服务器公式进行判定,条件为真,说明Sn的负载处于正常区间,将
Figure BDA0002916176350000115
作为活跃顶点;
所述的源服务器公式为:
Figure BDA0002916176350000116
其中,W(Sn)表示服务器集群中第n台服务器上候选活跃顶点的权值的总和;
Figure BDA0002916176350000117
其中,
Figure BDA0002916176350000118
表示候选活跃顶点
Figure BDA0002916176350000119
的权值,即
Figure BDA00029161763500001110
的访问频次,且
Figure BDA00029161763500001111
是属于netn
Φ表示服务器节点的不平衡程度,范围为[1,2],Ω代表着全部服务器的平均活动权重,Φ和Ω定义如下:
Figure BDA00029161763500001112
Figure BDA00029161763500001113
步骤2所述的活跃顶点集为:
Figure BDA00029161763500001114
j∈[1,K]
其中,VActive表示活跃顶点集,K=20表示活跃顶点集中活跃顶点的数量,V=1000表示图数据集的顶点数据集,
Figure BDA00029161763500001115
表示活跃顶点集中第j个活跃顶点即图数据集中第kj个顶点,活跃顶点集中第j个活跃顶点的权值为
Figure BDA00029161763500001116
Figure BDA00029161763500001117
步骤2所述计算服务器集群中每个服务器的评分为:
Figure BDA0002916176350000121
Figure BDA0002916176350000122
表示活跃顶点集中第j个活跃顶点指向第n个服务器的关联边的权值和:
Figure BDA0002916176350000123
其中,
Figure BDA0002916176350000124
表示图数据集中第kj个顶点与服务器集群中第n台服务器的顶点数据集中第t个顶点之间的边的权值,即
Figure BDA0002916176350000125
Figure BDA0002916176350000126
之间的边的访问频次,其中顶点
Figure BDA0002916176350000127
属于netn,当顶点
Figure BDA0002916176350000128
和顶点
Figure BDA0002916176350000129
之间不存在边时,
Figure BDA00029161763500001210
的值为0;
Figure BDA00029161763500001211
n∈[1,N]
其中,N=10为服务器集群中服务器的数量,Mn表示服务器集群中第n台服务器中顶点的数量,
Figure BDA00029161763500001212
表示服务器集群中第n台服务器的顶点数据集中第t个顶点,t∈[1,Mn];
W(Sn)表示服务器集群中第n台服务器上候选活跃顶点的权值的总和;
Figure BDA00029161763500001213
其中,
Figure BDA00029161763500001214
表示图数据集中第nt个顶点的权值,即
Figure BDA00029161763500001215
的访问频次,且
Figure BDA00029161763500001216
是属于netn
SUMn表示服务器集群中第n个服务器上候选活跃顶点的数量,通过统计netn中候选活跃顶点的数量得到;
步骤2所述的服务器分数为:
Figure BDA00029161763500001217
其中,
Figure BDA00029161763500001218
表示活跃顶点
Figure BDA00029161763500001219
在服务器节点
Figure BDA00029161763500001220
上使用打分函数获取的分数值;
结合服务器分数和对应的服务器节点我们组成一个服务器评分信息为:
Figure BDA0002916176350000131
其中,
Figure BDA0002916176350000132
表示一个评分表项,由一个分数值和对应的服务器节点组成,
Figure BDA0002916176350000133
表示活跃顶点
Figure BDA0002916176350000134
在服务器节点
Figure BDA0002916176350000135
上使用打分函数获取的分数值,
Figure BDA0002916176350000136
表示服务器节点;
步骤2所述目标服务器评分列表为:
Figure BDA0002916176350000137
其中
Figure BDA0002916176350000138
表示活跃顶点
Figure BDA0002916176350000139
在全部服务器上的评分表项集合,且该集合是根据每个表项中的分数值从大到小进行排序的;
步骤2所述目标服务器负载情况判定为:
通过进行依次遍历目标服务器列表
Figure BDA00029161763500001310
并使用目标服务器公式,当公式为真且目标服务器
Figure BDA00029161763500001311
不等于源服务器Sk时,此时的服务器
Figure BDA00029161763500001312
确定为最终的目标服务器;
所述的目标服务器公式为:
Figure BDA00029161763500001313
其中,
Figure BDA00029161763500001314
表示服务器节点
Figure BDA00029161763500001315
上全部候选活跃顶点的权值的总和;
Figure BDA00029161763500001316
其中,
Figure BDA00029161763500001317
表示图数据集中第nt个顶点的权值,即
Figure BDA00029161763500001318
的访问频次,且
Figure BDA00029161763500001319
是属于
Figure BDA00029161763500001320
Φ表示服务器节点的不平衡程度,范围为[1,2],Ω代表着全部服务器的平均活动权重,Φ和Ω定义如下:
Figure BDA00029161763500001321
Figure BDA00029161763500001322
步骤2所述每个活跃顶点的目标迁移服务器为:
Figure BDA0002916176350000141
其中
Figure BDA0002916176350000142
表示给定的打分函数,且Sk!=Sn,Sn表示活跃顶点
Figure BDA0002916176350000143
的原目标服务器;
实施具体的实例如下所示:
首先当服务器获取用户的工作负载信息时,面对请求的顶点v时,需要获取顶点v保存的服务器的位置,此时有三种情况:(1)当前服务器节点为v最初的服务器,并且保存着节点v,因此,请求在本地直接获取结果,(2)这是v的初始服务器,由于v的重新分配,它承载了v的查找变量。因此,请求被重定向到由查找变量引用的服务器(3)这不是v的初始服务器,先根据节点v的哈希值找到初始服务器,然后根据顶点查找变量表获取顶点v保存在那些服务器节点上。
模拟一个简单的数据动态分割方法如下,给定图初始化数据,server1保存节点v1,v2,server2保存顶点v3,v4,v5,server3保存顶点v6,L(v)值信息如下表2所示:
顶点 Server1 Server2 Server3
v1 0 2 0
v2 0 0 0
v3 1 0 2
v4 0 1 0
v5 1 1 0
v6 0 2 0
初始分区质量参数ξ为0.2,选定顶点v3。根据打分函数F,我们可以得到S3的分数值最高,然后原目标服务器S2不存在负载不足,且目标服务器S3不存在过载情形,此时可以确定将顶点v3从服务器节点S2重分配服务器节点S3。分配前后,质量参数ξ从0.2到了0.6,并且不平衡系数ф从1.8降低到了1.5,分区质量有了明显提高。
步骤3,结合活跃顶点集和对应的迁移目标服务器,步骤3所述通过可配置的阈值判定活跃顶点集中活跃顶点是否为高读顶点,若活跃顶点集中活跃顶点不为高读顶点则进一步通过最大复制因子动态调整活跃顶点的副本数目及对应的活跃顶点数据;
步骤3所述通过可配置的阈值判定活跃顶点集中活跃顶点是否为高读顶点,具体为:
Figure BDA0002916176350000151
其中,
Figure BDA0002916176350000152
表示活跃顶点
Figure BDA0002916176350000153
的权值,
Figure BDA0002916176350000154
表示当前顶点
Figure BDA0002916176350000155
的副本数目,N=10表示服务器节点的总数目,θ为自定义的阈值;
步骤3所述通过最大复制因子动态调整活跃顶点的副本数目及对应的活跃顶点数据为:
若活跃顶点集中活跃顶点不为高读顶点,删除服务器集群中第n个服务器即Sn对应的活跃顶点即
Figure BDA0002916176350000156
的数据,然后通过进一步判定活跃顶点的副本数目是否大于最大复制因子Fmax=5,具体为:
Figure BDA0002916176350000157
表示活跃顶点的副本数目大于最大复制因子,则删除最低访问服务器节点中活跃顶点
Figure BDA0002916176350000158
的数据,同时副本数目fv减1;
添加对应的迁移目标服务器
Figure BDA0002916176350000159
中活跃顶点
Figure BDA00029161763500001510
的数据,若顶点为高度顶点,则副本数目fv加一;
所述最低访问服务器节点的定义为:
Figure BDA00029161763500001511
其中
Figure BDA00029161763500001512
表示顶点
Figure BDA00029161763500001513
在服务器节点Si的权值;
所述最低访问服务器节点指的是:
一个活跃顶点可能在不同服务器节点存在副本,每个副本中的权值是不同的,选择顶点权值最低对应的服务器节点。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (4)

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
Figure FDA0002916176340000021
Figure FDA0002916176340000022
步骤1所述服务器集群中每台服务器的顶点集合为:
Figure FDA0002916176340000023
步骤1所述服务器集群中每台服务器节点的顶点权值集合为:
Figure FDA0002916176340000024
其中,N为服务器集群中服务器的数量,datan表示服务器集群中第n台服务器的顶点数据集,netn表示服务器集群中第n台服务器的顶点集合,weightn表示服务器集群中第n台服务器的顶点权值集合,Mn表示服务器集群中第n台服务器中顶点的数量,
Figure FDA0002916176340000025
表示服务器集群中第n台服务器的顶点数据集中第t个顶点数据,
Figure FDA0002916176340000026
表示服务器集群中第n台服务器的顶点数据集中第t个顶点,t∈[1,Mn]。
3.根据权利要求1所述的基于工作负载驱动的分布式图数据分割和复制方法,其特征在于,
步骤2所述的候选活跃顶点集为:
Figure FDA0002916176340000027
其中,Vcandinate表示候选活跃顶点集,H表示候选活跃顶点集中活跃顶点的数量,V表示图数据集的顶点数据集,
Figure FDA0002916176340000028
表示候选活跃顶点集中第s个活跃顶点即图数据集中第ks个顶点,候选活跃顶点集中第j个活跃顶点的权值为
Figure FDA0002916176340000029
Figure FDA00029161763400000210
步骤2所述在候选活跃顶点集结合源服务器负载判定选取活跃顶点为:
步骤2所述的源服务器为:若
Figure FDA0002916176340000031
属于netn,则Sn是顶点
Figure FDA0002916176340000032
的源服务器,n∈[1,N]
其中,N为服务器集群中服务器的数量,
Figure FDA0002916176340000033
表示服务器集群中第n台服务器的顶点集合,Mn表示服务器集群中第n台服务器中顶点的数量,
Figure FDA0002916176340000034
表示服务器集群中第n台服务器的顶点数据集中第t个顶点,t∈[1,Mn];
步骤2所述源服务器负载判定为:
根据源服务器公式进行判定,条件为真,说明Sn的负载处于正常区间,将
Figure FDA0002916176340000035
作为活跃顶点;
所述的源服务器公式为:
Figure FDA0002916176340000036
其中,W(Sn)表示服务器集群中第n台服务器上候选活跃顶点的权值的总和;
Figure FDA0002916176340000037
其中,
Figure FDA0002916176340000038
表示候选活跃顶点
Figure FDA0002916176340000039
的权值,即
Figure FDA00029161763400000310
的访问频次,且
Figure FDA00029161763400000311
是属于netn
Φ表示服务器节点的不平衡程度,范围为[1,2],Ω代表着全部服务器的平均活动权重,Φ和Ω定义如下:
Figure FDA00029161763400000312
Figure FDA00029161763400000313
步骤2所述的活跃顶点集为:
Figure FDA00029161763400000314
其中,VActive表示活跃顶点集,K表示活跃顶点集中活跃顶点的数量,V表示图数据集的顶点数据集,
Figure FDA00029161763400000315
表示活跃顶点集中第j个活跃顶点即图数据集中第kj个顶点,活跃顶点集中第j个活跃顶点的权值为
Figure FDA00029161763400000316
Figure FDA00029161763400000317
步骤2所述计算服务器集群中每个服务器的评分为:
Figure FDA0002916176340000041
Figure FDA0002916176340000042
表示活跃顶点集中第j个活跃顶点指向第n个服务器的关联边的权值和:
Figure FDA0002916176340000043
其中,
Figure FDA0002916176340000044
表示图数据集中第kj个顶点与服务器集群中第n台服务器的顶点数据集中第t个顶点之间的边的权值,即
Figure FDA0002916176340000045
Figure FDA0002916176340000046
之间的边的访问频次,其中顶点
Figure FDA0002916176340000047
属于netn,当顶点
Figure FDA0002916176340000048
和顶点
Figure FDA0002916176340000049
之间不存在边时,
Figure FDA00029161763400000410
的值为0;
Figure FDA00029161763400000411
其中,N为服务器集群中服务器的数量,Mn表示服务器集群中第n台服务器中顶点的数量,
Figure FDA00029161763400000412
表示服务器集群中第n台服务器的顶点数据集中第t个顶点,t∈[1,Mn];
W(Sn)表示服务器集群中第n台服务器上候选活跃顶点的权值的总和;
Figure FDA00029161763400000413
其中,
Figure FDA00029161763400000414
表示图数据集中第nt个顶点的权值,即
Figure FDA00029161763400000415
的访问频次,且
Figure FDA00029161763400000416
是属于netn
SUMn表示服务器集群中第n个服务器上候选活跃顶点的数量,通过统计netn中候选活跃顶点的数量得到;
步骤2所述的服务器分数为:
Figure FDA00029161763400000417
其中,
Figure FDA00029161763400000418
表示活跃顶点
Figure FDA00029161763400000419
在服务器节点
Figure FDA00029161763400000420
上使用打分函数获取的分数值;
结合服务器分数和对应的服务器节点我们组成一个服务器评分信息为:
Figure FDA0002916176340000051
其中,
Figure FDA0002916176340000052
表示一个评分表项,由一个分数值和对应的服务器节点组成,
Figure FDA0002916176340000053
表示活跃顶点
Figure FDA0002916176340000054
在服务器节点
Figure FDA0002916176340000055
上使用打分函数获取的分数值,
Figure FDA0002916176340000056
表示服务器节点;
步骤2所述目标服务器评分列表为:
Figure FDA0002916176340000057
其中
Figure FDA0002916176340000058
表示活跃顶点
Figure FDA0002916176340000059
在全部服务器上的评分表项集合,且该集合是根据每个表项中的分数值从大到小进行排序的;
步骤2所述目标服务器负载情况判定为:
通过进行依次遍历目标服务器列表
Figure FDA00029161763400000510
并使用目标服务器公式,当公式为真且目标服务器
Figure FDA00029161763400000511
不等于源服务器Sk时,此时的服务器
Figure FDA00029161763400000512
确定为最终的目标服务器;
所述的目标服务器公式为:
Figure FDA00029161763400000513
其中,
Figure FDA00029161763400000521
表示服务器节点
Figure FDA00029161763400000522
上全部候选活跃顶点的权值的总和;
Figure FDA00029161763400000514
其中,
Figure FDA00029161763400000515
表示图数据集中第nt个顶点的权值,即
Figure FDA00029161763400000516
的访问频次,且
Figure FDA00029161763400000517
是属于
Figure FDA00029161763400000518
Φ表示服务器节点的不平衡程度,范围为[1,2],Ω代表着全部服务器的平均活动权重,Φ和Ω定义如下:
Figure FDA00029161763400000519
Figure FDA00029161763400000520
步骤2所述每个活跃顶点的目标迁移服务器为:
Figure FDA0002916176340000061
其中
Figure FDA0002916176340000062
表示给定的打分函数,且Sk!=Sn,Sn表示活跃顶点
Figure FDA0002916176340000063
的原目标服务器。
4.根据权利要求1所述的基于工作负载驱动的分布式图数据分割和复制方法,其特征在于,
步骤3所述通过可配置的阈值判定活跃顶点集中活跃顶点是否为高读顶点,具体为:
Figure FDA0002916176340000064
其中,
Figure FDA0002916176340000065
表示活跃顶点
Figure FDA0002916176340000066
的权值,
Figure FDA0002916176340000067
表示当前顶点
Figure FDA0002916176340000068
的副本数目,N表示服务器节点的总数目,θ为自定义的阈值;
步骤3所述通过最大复制因子动态调整活跃顶点的副本数目及对应的活跃顶点数据为:
首先,添加对应的迁移目标服务器
Figure FDA0002916176340000069
中活跃顶点
Figure FDA00029161763400000610
的数据,若活跃顶点集中活跃顶点为高读顶点,则则副本数目fv加一;若活跃顶点集中活跃顶点不为高读顶点,删除服务器集群中源服务器即Sn对应的活跃顶点即
Figure FDA00029161763400000611
的数据,然后通过进一步判定活跃顶点的副本数目是否大于最大复制因子,具体为:
Figure FDA00029161763400000612
表示活跃顶点的副本数目大于最大复制因子,则删除最低访问服务器节点中活跃顶点
Figure FDA00029161763400000613
的数据,同时副本数目fv减1;
所述最低访问服务器节点的定义为:
Figure FDA00029161763400000614
其中
Figure FDA00029161763400000615
表示顶点
Figure FDA00029161763400000616
在服务器节点Si的权值;
所述最低访问服务器节点指的是:
一个活跃顶点可能在不同服务器节点存在副本,每个副本中的权值是不同的,选择顶点权值最低对应的服务器节点。
CN202110101657.7A 2021-01-26 2021-01-26 一种基于负载驱动的分布式图数据分割和复制方法 Expired - Fee Related CN112765177B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110101657.7A CN112765177B (zh) 2021-01-26 2021-01-26 一种基于负载驱动的分布式图数据分割和复制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110101657.7A CN112765177B (zh) 2021-01-26 2021-01-26 一种基于负载驱动的分布式图数据分割和复制方法

Publications (2)

Publication Number Publication Date
CN112765177A true CN112765177A (zh) 2021-05-07
CN112765177B CN112765177B (zh) 2022-04-29

Family

ID=75707437

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110101657.7A Expired - Fee Related CN112765177B (zh) 2021-01-26 2021-01-26 一种基于负载驱动的分布式图数据分割和复制方法

Country Status (1)

Country Link
CN (1) CN112765177B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114298713A (zh) * 2022-03-03 2022-04-08 浙商银行股份有限公司 一种联盟链分片方法、装置及存储介质
US11907255B2 (en) 2022-03-04 2024-02-20 Oracle International Corporation Access-frequency-based entity replication techniques for distributed property graphs with schema

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105681052A (zh) * 2016-01-11 2016-06-15 天津大学 一种用于数据中心分布式文件存储的节能方法
CN106202175A (zh) * 2016-06-24 2016-12-07 四川大学 面向大图分割的分布式动态图管理系统
CN107807983A (zh) * 2017-10-30 2018-03-16 辽宁大学 一种支持大规模动态图数据查询的并行处理框架及设计方法
CN108632903A (zh) * 2017-03-20 2018-10-09 中国移动通信集团浙江有限公司 无线网络负载均衡方法和装置
US20190235742A1 (en) * 2018-01-29 2019-08-01 Servicenow, Inc. Distributed Editing and Versioning for Graphical Service Maps of a Managed Network
CN111309976A (zh) * 2020-02-24 2020-06-19 北京工业大学 一种面向收敛型图应用的GraphX数据缓存方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105681052A (zh) * 2016-01-11 2016-06-15 天津大学 一种用于数据中心分布式文件存储的节能方法
CN106202175A (zh) * 2016-06-24 2016-12-07 四川大学 面向大图分割的分布式动态图管理系统
CN108632903A (zh) * 2017-03-20 2018-10-09 中国移动通信集团浙江有限公司 无线网络负载均衡方法和装置
CN107807983A (zh) * 2017-10-30 2018-03-16 辽宁大学 一种支持大规模动态图数据查询的并行处理框架及设计方法
US20190235742A1 (en) * 2018-01-29 2019-08-01 Servicenow, Inc. Distributed Editing and Versioning for Graphical Service Maps of a Managed Network
CN111309976A (zh) * 2020-02-24 2020-06-19 北京工业大学 一种面向收敛型图应用的GraphX数据缓存方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
夏文: "数据备份系统中冗余数据的高性能消除技术研究", 《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》 *
钟鸣,王盛,刘梦赤: "一种大规模图数据上已知项搜索的优化方法", 《计算机研究与发展》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114298713A (zh) * 2022-03-03 2022-04-08 浙商银行股份有限公司 一种联盟链分片方法、装置及存储介质
US11907255B2 (en) 2022-03-04 2024-02-20 Oracle International Corporation Access-frequency-based entity replication techniques for distributed property graphs with schema

Also Published As

Publication number Publication date
CN112765177B (zh) 2022-04-29

Similar Documents

Publication Publication Date Title
CN112765177B (zh) 一种基于负载驱动的分布式图数据分割和复制方法
CN108600321A (zh) 一种基于分布式内存云的图数据存储方法和系统
US9774676B2 (en) Storing and moving data in a distributed storage system
CN108897761A (zh) 一种聚簇存储方法及装置
Dai et al. IOGP: An incremental online graph partitioning algorithm for distributed graph databases
US20230385353A1 (en) Spatial search using key-value store
CN113778683A (zh) 一种基于神经网络的Handle标识体系解析负载均衡方法
Gao et al. An efficient ring-based metadata management policy for large-scale distributed file systems
Tian et al. A survey of spatio-temporal big data indexing methods in distributed environment
CN117076466B (zh) 一种针对大型档案数据库的快速数据索引方法
JPH07160557A (ja) データベースアクセス処理方法
Elmeiligy et al. An efficient parallel indexing structure for multi-dimensional big data using spark
US9292559B2 (en) Data distribution/retrieval using multi-dimensional index
CN112699134A (zh) 基于图剖分的分布式图数据库的存储与查询方法
US20180060236A1 (en) Method and systems for master establishment using service-based statistics
Malensek et al. Autonomously improving query evaluations over multidimensional data in distributed hash tables
Sakouhi et al. An overview of recent graph partitioning algorithms
CN110166279B (zh) 一种非结构化云数据管理系统的动态布局方法
Akdogan et al. Cost-efficient partitioning of spatial data on cloud
KR102054068B1 (ko) 그래프 스트림에 대한 실시간 분산 저장을 위한 분할 방법 및 분할 장치
CN110659286A (zh) 基于弱平衡空间树动态空间索引方法及其存储介质、装置
Li et al. A partition model and strategy based on the Stoer–Wagner algorithm for SaaS multi-tenant data
Sakouhi et al. Hammer lightweight graph partitioner based on graph data volumes
CN110597809A (zh) 一种支持树状数据结构的一致性算法系统及其实现方法
CN117591608B (zh) 基于分布式哈希的云原生数据库数据分片方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20220429

CF01 Termination of patent right due to non-payment of annual fee