[发明专利]一种适用于社会网络图的数据存储方法及系统有效
申请号: | 201310279445.3 | 申请日: | 2013-07-04 |
公开(公告)号: | CN103345508A | 公开(公告)日: | 2013-10-09 |
发明(设计)人: | 曲直;薛继龙;杨智;代亚非 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 冯艺东 |
地址: | 100871 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 适用于 社会 网络图 数据 存储 方法 系统 | ||
技术领域
本项发明属于云存储领域,具体设计了一种适用于社会网络图的数据存储方法及系统。
背景技术
随着人人网、Facebook、微博等社会网络的不断发展,越来越多的UGC(User Generated Content)数据被用户发布到社会网络中,社会网络中的数据呈爆炸性增长态势,为各大互联网公司带来了严峻挑战。
为了应对日益膨胀的数据,出于容错和负载均衡等的需求,现有的网站架构使用传统的分布式技术,采用水平扩展方式,使用简单的哈希、一致性散列或DHT技术将数据分布在多台服务器中。这种数据放置方式的好处是均匀、一致,容易维护,然而却忽略了社会网络的数据访问模式。
社会网络的好友关系或Follow关系组成了一张巨大的图。与传统网站的访问模式不同,在社会网络中,一个用户访问的数据通常是其周围一度好友的数据。以社会网络中的新鲜事系统为例,一个获取好友新鲜事的请求往往涉及到一个用户几百个一度好友的上千条数据,若采用传统的分布式技术,这些数据将分布在整个服务器集群中。此时,为了响应该请求,必须访问集群中的几乎所有服务器,使得服务器间的通信代价陡然增加,该请求的处理时间也将取决于最后一个服务器访问完成的时间。复杂的社会化关系与访问模式为服务器水平扩展后的性能带来了不确定性,同时增加了运维成本。
针对一般图处理,目前提出的有METIS算法和基于社区检测的切分算法。这类图切分算法的目的是使各分区之间跨边数尽可能小。这些算法是有问题的:首先,社会网络图与一般图不同,它顶点平均度数高,连接紧密,直径很小,符合Power-law特性,研究证明这样的图很难切分,切分后效果与简单哈希相似,无法用于实时系统。其次,在生产环境中,社会网络是在频繁变化的,而这些算法每次都要对全图进行重新切分,无法满足生产环境要求的实时性。第三,这些算法对输入敏感,图结构的微小变化会引起切分结果的巨大变动,由此引起的迁移代价会极大影响系统性能,在实时系统中是无法忍受的。
发明内容
为了改善社会网络中的用户体验,减小服务器运维成本,本发明设计了一种适用于社会网络图的数据存储方法及系统,可以增量反映社会网络图结构的变化,减少用户请求所涉及的服务器数量,进而减少服务器间的通信代价,加快请求的处理速度,增加集群吞吐。
为实现上述目的,本发明采用的技术方案如下:
一种适用于社会网络图的数据存储方法,其步骤包括:
1)以边表或邻接表形式读取社会网络图的图结构信息;
2)根据所述图结构信息,将一个顶点v分裂为至多k个子顶点每个子顶点拥有该顶点v的所有顶点数据和相应的边上的数据,并满足:
其中,π(v)为顶点v的邻居顶点;
3)对于图中尚未分配到分区中的每一条边,先尝试将其分配到一个分区中,此时不产生跨分区的边;若该分配不成功,则产生一条跨分区的边。
进一步地,采用DHT技术索引和定位顶点的位置。
进一步地,在所有N个分区P={p1,p2…pn}中,设顶点v的当前所在分区集合为P(v);对于图中尚未分配到分区中的每一条边e=<u,v>,从一个分区子集中取出一个负载最轻的分区进行放置,对于P′的取值依次匹配如下规则,当有一条规则成功匹配时,停止处理之后的所有规则:
1)若则P′=P;
2)若则P′=P(u);
3)若则P′=P(v);
4)若则P′=Puv;
5)若P′=P(u)∪P(v);对于计算结果t:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310279445.3/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置