一种基于超图分割的社交用户数据优化放置方法与流程

文档序号:11517837阅读:208来源:国知局
本发明涉及社交网络、大数据和分布式存储领域,尤其涉及一种社交网络存储系统中基于超图分割的社交用户数据优化放置方法。
背景技术
::如今在线社交网络(onlinesocialnetworks,简称osns)如facebook,twitter和微信等已经成为最热门的互联网应用之一。以facebook为例,2016年初其月度活跃用户数已达到15.9亿,相当于近四分之一的世界人口都在用facebook作为社交工具在互联网上进行交流。在线社交网络之所以如此受欢迎,除了互联网的普及之外,更为重要的是它能够将人们的社交关系和社交活动投射到网络空间,从而让交流变得更加方便、快捷和高效,尤其对于那些地域上相距较远的用户。伴随在线社交网络的蓬勃发展,用户数目不断增加,用户的数据量也在急剧增长。面对pb甚至eb级的大数据(bigdata),任何集中存储技术都无法满足如此大规模数据的存储需求,必须采用分布式存储技术将用户数据分散地存储在众多的存储服务器之上。近年来,分布式键值存储(key-valuestores)应运而生,它正是分布式存储技术在大数据时代延续和发展。目前,大多数社交网络服务提供商均基于键值存储技术来构建存储系统,其中知名的系统包括谷歌文件系统(googlefilesystem,简称gfs)及其开源实现项目hadoop分布式文件系统(hadoopdistributedfilesystem,简称hdfs),亚马逊的高性能键值存储系统dynamo及facebook开发的其开源实现项目cassandra等。如图1所示,gfs利用主节点作为统一的元数据服务器(meta-dataserver,简称mds)存储和管理数据及其副本的元数据信息,数据则划分成若干块通过哈希分散存储于块存储服务器中,系统默认的数据块大小为64mb,数据块具体存放的位置由哈希值决定。数据访问请求首先到达主节点查找元数据获得想要访问数据的位置、句柄等信息,然后直接根据地址访问块存储服务器。图2给出亚马逊键值存储系统dynamo的数据放置示意图,该结构将系统节点按照分布式哈希表(distributedhashtable,简称dht)构建在一个闭环空间内,每个节点根据哈希值负责存储和管理一部分数据,系统无统一的主节点,访问请求不再需要先访问主节点,使得高并发访问量被分摊到系统中所有节点,避免了性能瓶颈和单点失效问题。对于在线社交网络而言,用户在交互过程中将频繁地访问彼此的数据,如用户经常浏览好友发布的信息并对此适时地发表一些评论,这些操作都涉及到对社交用户数据的读写。现有健值存储系统采用哈希方式,用户数据存储位置由哈希值随机确定,哈希使得任意用户及其好友的数据分散存储在多台服务器上,用户交互操作需要服务器间通信,随着用户量快速增长,数据中心内通信量急剧增加,而巨大的内部通信量会导致网络拥塞、数据访问延迟增加,降低系统可扩展性。针对现有健值存储系统中哈希方法带来的高通信量,本发明提供一种基于超图分割的社交用户数据优化放置方法,将社交网络用户交互关系建模为超图,利用超图分割解决用户数据放置问题,以降低数据中心内通信量,同时保持服务器间负载均衡。技术实现要素:为解决上述技术问题,本发明的目的是提供一种基于超图分割的社交用户数据优化放置方法,将社交网络用户交互关系建模为超图,利用超图分割解决用户数据放置问题,以降低数据中心内通信量,同时保持服务器间负载均衡。本发明的基于超图分割的社交用户数据优化放置方法,用于社交网络存储系统中,包括步骤:步骤1、将社交网络模型化为一副超图g=(v,e),其中顶点集v表示所有社交用户集合,边集e表示社交用户间交互关系集合;步骤2、用多层方法对所述步骤1中生成的超图进行划分,划分成n个子图,其中n为用于存储社交网络用户数据的服务器的数量;步骤3、将所述步骤2中获得的n个子图与数据中心内n个服务器进行一对一映射。进一步的,所述步骤1中社交网络模型构建方法为:将社交网络中每个用户作为超图g的一个顶点,超图g的每条边e由两个以上顶点表示,称为超边,每次交互中所有参与交互的用户共同构成一条超边,每条超边ei附带一个权值ri,权值ri表示超边ei对应交互所产生的通信量。进一步的,所述步骤2中,用cut表示割值,计算超图划分割值的方法为:首先,计算超边割值,当一个超边ei被分割成ti个部分,则ei的割值为:cut(ei)=(ti-1)ri(1)表示分割后的通信量为分割前的(ti-1)倍;然后,对所有被分割的超边的割值求和作为超图划分的割值,即进一步的,所述步骤2中多层划分过程为:步骤201、对原超图g逐步粗化,粗化方法是从原超图中每次找出最大独立超边集,将属于超边集的一组顶点合并在一起,每个合并后的顶点集都将作为第一层粗化图中的一个新的顶点,从而得到一个规模较原超图更小的超图g1;再利用同样的方法对超图g1粗化,依次粗化下去直到得到超图gm,其顶点数量为n的整数倍;步骤202、对步骤201中得到的超图gm进行划分,先划分成2个部分,找出所有划分中割值最小的,且保证划分后的负载均衡小于预先设定的阈值lb*,再按照同样的方法依次对上一轮划分的子图进一步划分,直到最终超图gm被划分成n个子超图为止;步骤203、对步骤202中得到的划分结果去粗化,根据步骤201中粗化过程逐层超图顶点间的映射关系,做反向的映射,将步骤202中得到的n个子超图逐层反向映射为原超图g的n个子超图。进一步的,所述步骤2中,负载均衡lb的计算方法为:其中n为划分的子图数目,li和li分别表示子图pi和pj的负载,分别用pi和pj包含的用户数衡量。进一步的,所述步骤3中,数据中心内通信量的计算方法为:首先,对于任一对服务器x和y,从服务器x到y的访问请求所产生的通信量rxy为:其中sx表示服务器x上存储的用户集合,ru表示用户u的访问通信量,函数c(u,y)用来判断服务器y上是否存储用户u的好友的数据,若是,则其值取1,否则为0;其次,针对树型数据中心拓扑结构,根据服务器x和y所处位置确定二者之间通信距离dxy,即经过的交换机数目:其中pac表示接入层交换机接入服务器的端口数,pag表示汇聚层接入下层的端口数;最后,数据中心内通信量t表示为:其中n表示数据中心内服务器的集合。进一步的,所述步骤3中的映射过程如下:步骤301、根据所述步骤2中划分出的n个子图,计算每一对子图间通信量,计算公式如下:其中pi和pj表示任一对子图,ru和rv分别表示用户u和v的访问通信量,函数c(u,pj)和c(v,pi)分别表示用户u的好友是否在子图pj内和用户v的好友是否在子图pi内,若是,则其值取1,否则为0;步骤302、将所有子图对根据步骤301计算的结果进行非升序排列,并依次放入队列q;步骤303、初始化未分配服务器指针empty指向第一台服务器,开始第一轮子图到服务器的映射,进入步骤304;步骤304、如果是第一轮映射,则从队列q依次取出m个子图对,其中m满足选中的子图对中子图的数目记为[m],使得[m]=pac或pac+1,将[m]个子图从empty指向的服务器开始依次映射,并更新empty指针,如果不是第一轮分配则进入步骤305;步骤305、从队列q中找出所有子图对,满足子图对中的一个子图已经映射到和empty所指服务器同属一个接入交换机的服务器,从这些子图对中找出对应通信量最小的子图对,并将该子图对中未映射的子图与empty所指服务器做映射;步骤306、若队列q不为空,则进入步骤304,否则,完成子图到服务器映射。借由上述方案,本发明至少具有以下优点:与现有技术相比,本发明的基于超图分割的社交用户数据优化放置方法,包括三个步骤:构建基于超图的社交网络模型、超图划分和子图到服务器映射。本发明利用超图中超边能够准确描述社交网络中多用户交互行为,根据用户交互行为放置用户数据,可以极大地降低用户交互过程中产生的通信量,优化数据放置的同时能够保持服务器间负载均衡。本发明能够根据社交网络用户交互行为优化用户数据在各服务器上的放置,保持服务器间负载均衡,降低数据中心内通信量。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。附图说明图1谷歌文件系统gfs架构图;图2亚马逊高性能键值存储系统数据放置示意图;图3树型数据中心网络拓扑结构;图4数据优化放置方法流程图;图5子图到服务器映射实例;图6仿真实验在不同负载均衡阈值下的数据中心内部通信量比较图;图7仿真实验在不同服务器规模下的数据中心内部通信量比较图。具体实施方式下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。下面结合附图,对本发明的技术方案进行详细的说明。基于超图分割的社交用户数据优化放置方法,其目标是降低数据中心内通信量。本发明所述方法的流程图如图4所示,包括以下步骤:步骤1)将社交网络模型化为一副超图g=(v,e),其中顶点集v表示所有社交用户集合,边集e表示社交用户间交互关系集合;步骤2)用多层方法对步骤1)生成的超图进行划分,划分成n个子图,其中n为用于存储社交网络用户数据的服务器的数量;步骤3)将步骤2)获得的n个子图与数据中心内n个服务器进行一对一映射。进一步:所述的步骤1)中社交网络模型构建方法为:将社交网络中每个用户作为超图g的一个顶点,超图g的每条边e由两个以上顶点表示,称为超边,每次交互中所有参与交互的用户共同构成一条超边,多用户参与的交互是社交网络中最常见的一种交互,超边能够刻画这种类型的交互。每条超边ei附带一个权值ri,表示超边ei对应交互所产生的通信量。进一步:所述步骤2)中,计算超图划分割值(cut)的方法为:首先,计算超边割值,当一个超边ei被分割成ti个部分,则ei的割值为:cut(ei)=(ti-1)ri(1)表示分割后的通信量为分割前的(ti-1)倍。然后,对超图划分的割值等于所有被分割的超边的割值之和,即进一步:所述步骤2)的多层划分过程为:步骤201)对原超图g逐步粗化,粗化方法是从原超图中每次找出最大独立超边集,将属于超边集的一组顶点合并在一起,每个合并后的顶点集都将作为第一层粗化图中的一个新的顶点,从而得到一个规模较原超图更小的超图g1。再利用同样的方法对超图g1粗化,依次粗化下去直到得到超图gm,其顶点数量为n的整数倍,比如100倍;步骤202)对步骤201)得到的超图gm进行划分,先划分成2个部分,找出所有划分中割值最小的,且保证划分后的负载均衡小于预先设定的阈值lb*,再按照同样的方法依次对上一轮划分的子图进一步划分,直到最终超图gm被划分成n个子超图为止;步骤203)对步骤202)得到的划分结果去粗化,根据步骤201)中粗化过程逐层超图顶点间的映射关系,做反向的映射,将步骤202)得到的n个子超图逐层反向映射为原超图g的n个子超图。进一步:所述步骤2)中,负载均衡lb的计算方法为:其中n为划分的子图数目,li和li分别表示子图pi和pj的负载,分别用pi和pj包含的用户数衡量。进一步:步骤3)中,数据中心内通信量的计算方法为:首先,对于任一对服务器x和y,从服务器x到y的访问请求所产生的通信量rxy为:其中sx表示服务器x上存储的用户集合,ru表示用户u的访问通信量,函数c(u,y)用来判断服务器y上是否存储用户u的好友的数据,若是,则其值取1,否则为0。其次,对于如图3所示的树型数据中心拓扑结构,根据服务器x和y所处位置确定二者之间通信距离dxy,即经过的交换机数目:其中pac表示接入层交换机接入服务器的端口数,pag表示汇聚层接入下层的端口数。最后,数据中心内通信量t可表示为:其中n表示数据中心内服务器的集合。进一步:如图5所示实例,步骤3)的映射过程如下:步骤301)根据步骤2)所划分出的n个子图,计算每一对子图间通信量,计算公式如下:其中pi和pj表示任一对子图,ru和rv分别表示用户u和v的访问通信量,函数c(u,pj)和c(v,pi)分别表示用户u的好友是否在子图pj内和用户v的好友是否在子图pi内,若是,则其值取1,否则为0;步骤302)将所有子图对根据步骤301)计算结果进行非升序排列,并依次放入队列q,;步骤303)初始化未分配服务器指针empty指向第一台服务器,开始第一轮子图到服务器的映射,进入步骤304);步骤304)如果是第一轮映射,则从队列q依次取出m个子图对,其中m满足选中的子图对中子图的数目记为[m],使得[m]=pac或pac+1,将[m]个子图从empty指向的服务器开始依次映射,并更新empty指针。如果不是第一轮分配则进入步骤305);步骤305)从队列q中找出所有子图对,满足子图对中的一个子图已经映射到和empty所指服务器同属一个接入交换机的服务器,从这些子图对中找出对应通信量最小的子图对,并将该子图对中未映射的子图与empty所指服务器做映射;步骤306)若队列q不为空,则进入步骤304),否则,完成子图到服务器映射。为了验证本方法的有效性,通过仿真实验提供一具体实施例。实验做如下设置:社交网络数据集由网络爬虫程序对facebook抓取获得,该数据集包含124.1万用户注册名、好友列表和用户发帖等。数据中心内包含1152台服务器即n=1152,服务器按照树型结构组织网络拓扑,其中接入层、汇聚层和核心层交换机的数目分别为96、12和4,pac=12,pag=8。哈希方法将用户数据随机存储在服务器上,是目前主要采用的方法,在仿真实验中实现了该方法用于比较。除此以外,metis作为经典的图分割算法,可用于实现对社交网络的划分,在实验中一并实现并与我们所提方法进行比较,实验结果如图6和图7所示。图6对比三种方法在不同负载均衡阈值下所产生的通信量,为了便于观察,此处用哈希方法的通信量对所有方法的通信量进行规格化。随着阈值的增加,阈值对放置的限制逐渐放松,使得通信量随之下降,哈希方法由于未做任何优化,故通信量始终最高且不受阈值影响,我们所提方法可以获得更低的通信量。图7对比了在不同服务器规模下的三种方法产生的通信量,实验结果表明无论在何种服务器规模下我们所提方法均可以获得更低的通信量,原因在于超图划分可以更好地将经常交互的用户划分在一个子图,而子图到服务器匹配则可以将通信量较大的子图对映射到彼此更近的服务器上。以上所述仅是本发明的优选实施方式,并不用于限制本发明,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1