一种基于双层自我中心网络的存储节点选择方法与流程

文档序号:11879057阅读:401来源:国知局
一种基于双层自我中心网络的存储节点选择方法与流程

本发明涉及一种基于双层自我中心网络的存储节点选择方法,属于分布式存储技术领域。



背景技术:

在业界频繁出现用户隐私泄露事件的背景下,2008年,学术界的研究人员提出分布式在线社交网络的概念,分布式在线社交网络与集中式在线社交网络的唯一区别是其将数据存储在客户端,绕过服务器,直接在用户之间流转。由于用户随时可能与系统断开\连接,为了保证用户数据的可用性,每个用户需要选择一组存储节点辅助其进行数据存储,存储节点选择的合理与否将直接影响着分布式在线社交网络的可用性和访问效率。

现有的分布式在线社交网络数据存储节点选择方法,主要依据用户社交属性和节点运行情况,并且采用统一的副本因子数。依据用户社交属性的方法,通过计算出的用户间的社交关系强度和社交网络结构特征来选择存储节点,其主要代表有最大化信任方法和最大化可信连接方法。最大化信任方法将在线朋友中具有最高关系强度的节点选作存储节点,最大化可信连接方法中,首先依据联系频率将用户分为邓巴朋友和非邓巴朋友,将与邓巴朋友间的连接称为可信连接,与非邓巴朋友间的连接称为非可信连接,然后定义用户y相对于用户n的可信连接集合TCS(y,n)={y}∪{x|x∈df(y)∩df(n)∧x.isOnline()},其中df(y)和df(n)分别表示用户y和用户n的邓巴朋友集;定义未覆盖可信连接集合UTCS(y,n)=TCS(y,n)-{x|PoS*(n)∈df(x)},其中PoS*(n)表示用户n现有的在线存储节点;定义连接收益CGn(y)=∑j∈UTCS(y,n)fjn,其中fjn为估算出的节点j联系节点n的存储节点的频率,最后选择具有最大连接收益的节点作为节点n的存储节点。

依据节点运行情况的方法,通过对节点可用时间进行匹配或节点负载情况等节点运行情况来选择存储节点,其主要代表有可用性驱动的数据放置方法中采用的存储节点选择算法、最小化数据传输数量方法、最小化更新传播延迟方法等。可用性驱动的数据放置方法中,采用的存储节点选择算法考虑到选中的朋友节点的当前状态和将来的可用性。该方法中选择存储节点包括两个步骤:首先选择当前时刻在线且具有空闲的资源,并且在未来的tr时间段内具有较高可用性的节点作为候选节点;然后从筛选出的候选节点中采用启发式算法选择数据存储节点,启发式算法中依据节点运行情况的包括:负载均衡算法Balance和最小数据可用性维护开销算法Mincost,Balance算法从所有候选节点中,选择具有最低负载的k个节点作为存储节点,Mincost算法从所有候选节点中,选择预测在线时间最长的k个节点作为存储节点。最小化数据传输数量方法需要估算在线用户在其断开连接前的在线时间长度,然后采用贪心策略选择在线的并且更有可能继续保持连接状态的邓巴朋友作为存储节点。最小化更新传播延迟方法对拟选定的存储节点集的在线时间情况整体进行考虑,计算出其更新传播的延迟,选择更新传播延迟最小的一组节点作为存储节点。

综上所述,现有的分布式在线社交网络存储节点选择算法中大多数依据用户社交属性和节点运行情况进行存储节点的选择,忽略了不同节点数据的访问热度具有明显差异这一特性,易导致热点数据访问效率低下的问题。



技术实现要素:

本发明所要解决的技术问题是提供一种基于所设计的双层自我中心网络,结合用户节点的可用性、节点位置信息和节点间关系强度,实现存储节点选择的基于双层自我中心网络的存储节点选择方法。

本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于双层自我中心网络的存储节点选择方法,用于在分布式在线社交网络中,针对目标节点u选择在线存储节点,构成对应目标节点u的目标节点在线存储节点集合OPS(u),实现目标节点u上数据的分布式存储,包括如下步骤:

步骤001.获得社交网络中与目标节点u存在直接社交关系的所有节点,并获得各个节点分别与目标节点u之间的社交关系,构成目标节点社交信息网络,然后进入步骤002;

步骤002.根据目标节点u的经纬度地理坐标,在地图上标记获得目标节点位置;并在地图上,以目标节点位置为中心建立正六边形,且正六边形中心与各顶点之间的距离为预设长度;接着在地图上,分别以该正六边形的各条边作为公共边,分别建立与该正六边形相邻、且尺寸相同的各个正六边形,以此类推,针对每一个正六边形,建立与其共边、且尺寸相同的相邻正六边形,直至完全覆盖地图,由此获得完整覆盖地图的各个正六边形区域,再将目标节点u映射到地图上目标节点位置所在的正六边形区域,获得目标节点社交信息网络中目标节点u与地图上目标节点位置所在正六边形区域的映射关系,然后进入步骤003;

步骤003.分别针对目标节点社交信息网络中除目标节点u之外的其余各个节点,将节点映射到其经纬度地理坐标在地图上所在位置对应的正六边形区域,由此获得目标节点社交信息网络中除目标节点u之外其余各个节点分别与地图上各个正六边形区域的映射关系,并结合目标节点社交信息网络中目标节点u与地图上目标节点位置所在正六边形区域的映射关系,构成目标节点位置信息网络,然后进入步骤004;

步骤004.以目标节点社交信息网络作为下层网络,目标节点位置信息网络作为上层网络,构建双层自我中心网络DEN(u),然后进入步骤005;

步骤005.根据双层自我中心网络DEN(u)里目标节点社交信息网络中目标节点u分别与各个节点之间的社交关系,获得目标节点u的出度值OutDu,以及目标节点u的入度值InDu,并根据该出度值OutDu和该入度值InDu,获得目标节点u的副本因子大小Copyu,然后进入步骤006;

步骤006.根据双层自我中心网络DEN(u)里目标节点社交信息网络中目标节点u分别与各个节点之间的社交关系,获得所有与目标节点u之间存在双向社交关系的节点,构成目标节点可信节点集合TPS(u),接着判断目标节点在线存储节点集合OPS(u)是否为空集,是则将目标节点u加入到目标节点在线存储节点集合OPS(u)当中,再进入步骤007;否则直接进入步骤007;其中,

步骤007.判断目标节点在线存储节点集合OPS(u)中节点的数量是否小于目标节点u的副本因子大小Copyu,是则进入步骤008;否则目标节点u选择目标节点在线存储节点集合OPS(u)中的各个节点,实现目标节点u上数据的分布式存储,针对目标节点u上数据的存储节点选择过程结束;

步骤008.判断目标节点在线存储节点集合OPS(u)是否能保证目标节点数据u上可用性达到100%,是则进入步骤010;否则进入步骤009;

步骤009.针对目标节点可信节点集合TPS(u)中不属于目标节点在线存储节点集合OPS(u)的各个节点,获得各个节点分别假设作为目标节点在线存储节点集合OPS(u)中节点时,目标节点u相对于目标节点在线存储节点集合OPS(u)的可用性收益,并选出其中最大可用性收益所对应的假设节点,将其作为目标节点在线存储节点集合OPS(u)中的节点,然后返回步骤007;

步骤010.根据目标节点位置信息网络中包括目标节点在内,各个节点与地图上各个正六边形区域的映射关系,获得目标节点在线存储节点集合OPS(u)中所有节点映射到地图上的所有正六边形区域,构成正六边形覆盖区域集合,同时,获得目标节点可信节点集合TPS(u)中所有节点映射到地图上的所有正六边形区域,构成可信正六边形区域集合,再判断正六边形覆盖区域集合是否与可信正六边形区域集合相等,是则进入步骤012;否则进入步骤011;

步骤011.针对可信正六边形区域集合中不属于正六边形覆盖区域集合的各个正六边形区域,选择映射最多目标节点社交信息网络中节点的正六边形区域,作为候选正六边形区域,并在候选正六边形区域所映射目标节点可信节点集合TPS(u)中的各个节点中,随机选择一个节点,作为目标节点在线存储节点集合OPS(u)中的节点,然后返回步骤007;

步骤012.针对目标节点可信节点集合TPS(u)中不属于目标节点在线存储节点集合OPS(u)的各个节点,获得各个节点分别与目标节点u之间的社交关系强度,并选出其中最大社交关系强度所对应的节点,将其作为目标节点在线存储节点集合OPS(u)中的节点,然后返回步骤007。

作为本发明的一种优选技术方案:所述步骤005中,根据所获出度值OutDu和入度值InDu,采用如下公式,获得目标节点u的副本因子大小Copyu

式中,Copymin_lim表示节点副本因子大小的预设最低限制,Copymax_lim表示节点副本因子大小的预设最高限制,Numsmall_world表示社交网络中节点拥有与之具有社交关系的节点数的众数。

作为本发明的一种优选技术方案:所述步骤008中,根据如下公式,获得目标节点在线存储节点集合OPS(u)中节点的数据可用性Ableu,然后判断目标节点在线存储节点集合OPS(u)中节点的数据可用性Ableu是否达到100%;

<mrow> <msub> <mi>Able</mi> <mi>u</mi> </msub> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>t</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>y</mi> <mo>&Element;</mo> <mi>O</mi> <mi>P</mi> <mi>S</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo> </mrow> </mrow> </munder> <mrow> <mo>(</mo> <msub> <mi>p</mi> <mrow> <mi>y</mi> <mo>,</mo> <mi>t</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> <mi>m</mi> </mfrac> </mrow>

式中,Ay={py,1,…py,t,…py,m},Ay表示节点y在预设周期T内各个预设时间段Δt内的在线频率的集合,m表示预设周期T内预设时间段Δt的个数;py,t表示节点y在预设周期T内第t个预设时间段Δt内的在线频率,timey,t表示节点y在预设周期T内第t个预设时间段Δt的在线时间长度。

作为本发明的一种优选技术方案:所述步骤009中,针对目标节点可信节点集合TPS(u)中不属于目标节点在线存储节点集合OPS(u)的各个节点,采用如下公式,获得各个节点分别假设作为目标节点在线存储节点集合OPS(u)中节点时,目标节点u相对于目标节点在线存储节点集合OPS(u)的可用性收益availability_lucre(yca,OPS(u));

<mrow> <mi>a</mi> <mi>v</mi> <mi>a</mi> <mi>i</mi> <mi>l</mi> <mi>a</mi> <mi>b</mi> <mi>i</mi> <mi>l</mi> <mi>i</mi> <mi>t</mi> <mi>y</mi> <mo>_</mo> <mi>l</mi> <mi>u</mi> <mi>c</mi> <mi>r</mi> <mi>e</mi> <mrow> <mo>(</mo> <msub> <mi>y</mi> <mrow> <mi>c</mi> <mi>a</mi> </mrow> </msub> <mo>,</mo> <mi>O</mi> <mi>P</mi> <mi>S</mi> <mo>(</mo> <mi>u</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>t</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>y</mi> <mo>&Element;</mo> <mrow> <mo>(</mo> <mi>O</mi> <mi>P</mi> <mi>S</mi> <mo>(</mo> <mi>u</mi> <mo>)</mo> <mo>&cup;</mo> <mo>{</mo> <msub> <mi>y</mi> <mrow> <mi>c</mi> <mi>a</mi> </mrow> </msub> <mo>}</mo> <mo>)</mo> </mrow> </mrow> </munder> <mrow> <mo>(</mo> <msub> <mi>p</mi> <mrow> <mi>y</mi> <mo>,</mo> <mi>t</mi> </mrow> </msub> <mo>)</mo> </mrow> <mo>-</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>t</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>y</mi> <mo>&Element;</mo> <mi>O</mi> <mi>P</mi> <mi>S</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo> </mrow> </mrow> </munder> <mrow> <mo>(</mo> <msub> <mi>p</mi> <mrow> <mi>y</mi> <mo>,</mo> <mi>t</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> <mi>m</mi> </mfrac> </mrow>

式中,yca表示假设作为目标节点在线存储节点集合OPS(u)中的节点,Ay={py,1,…py,t,…py,m},Ay表示节点y在预设周期T内各个预设时间段Δt内的在线频率的集合,m表示预设周期T内预设时间段Δt的个数;py,t表示节点y在预设周期T内第t个预设时间段Δt内的在线频率,timey,t表示节点y在预设周期T内第t个预设时间段Δt的在线时间长度。

作为本发明的一种优选技术方案:所述步骤012中,针对目标节点可信节点集合TPS(u)中不属于目标节点在线存储节点集合OPS(u)的各个节点,采用如下公式,计算获得各个节点分别与目标节点u之间的社交关系强度TieStrengthy,u

<mrow> <msub> <mi>TieStrength</mi> <mrow> <mi>y</mi> <mo>,</mo> <mi>u</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <msub> <mi>Contact</mi> <mrow> <mi>y</mi> <mo>,</mo> <mi>u</mi> </mrow> </msub> </mrow> <mrow> <mi>P</mi> <mi>e</mi> <mi>r</mi> <mi>i</mi> <mi>o</mi> <mi>d</mi> </mrow> </mfrac> </mrow>

式中,Contacty,u表示在预设统计时长Period内节点y访问目标节点u的时间总和。

本发明所述一种基于双层自我中心网络的存储节点选择方法采用以上技术方案与现有技术相比,具有以下技术效果:

(1)本发明所设计基于双层自我中心网络的社交存储节点选择方法,针对分布式在线社交网络,充分考虑节点的活动个性化、节点间关联性强等特点,从单个用户节点的视角来对局部的社交网络进行建模,构建双层自我中心网络,除了对节点关系、节点活动情况进行记录以外,其上层节点对用户的朋友聚集位置信息进行提取,以方便以此为依据进行存储节点的选择;

(2)本发明所设计基于双层自我中心网络的社交存储节点选择方法中,考虑到单一策略难以提高系统整体的性能,采用基于双层自我中心网络的存储节点选择方法,以一定标准依次根据节点的可用性、节点位置信息和节点间的关系强度选择存储节点,能够在最大程度保证数据可用性的情况下,提高数据访问性能;

(3)本发明所设计基于双层自我中心网络的社交存储节点选择方法中,依据计算出的节点社交影响力来确定各节点数据副本因子大小,如大“V”用户的影响力较大,因此计算出其数据副本因子较大,热点数据的访问效率得到明显的提升。

附图说明

图1是本发明所设计基于双层自我中心网络的存储节点选择方法的流程示意图;

图2是基于本发明所设计具体实施例中的双层自我中心网络的示意图。

具体实施方式

下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。

针对现有技术所存在的上述不足之处,本发明提供了一种基于双层自我中心网络的存储节点选择方法,充分考虑节点个性化特点,建立了双层自我中心网络,从单个用户的视角来对局部的社交网络进行建模,在此基础上依据计算出的节点社交影响力来确定各节点数据副本因子大小,然后根据节点的可用性、节点位置信息和节点间的关系强度选择存储节点,保证数据可用性最大化的同时提高热点数据的访问效率。

如图1所示,本发明所设计的一种基于双层自我中心网络的存储节点选择方法,用于在分布式在线社交网络中,针对目标节点u选择在线存储节点,构成对应目标节点u的目标节点在线存储节点集合OPS(u),实现目标节点u上数据的分布式存储,在实际的应用过程当中,具体包括如下步骤:

步骤001.获得社交网络中与目标节点u存在直接社交关系的所有节点,并获得各个节点分别与目标节点u之间的社交关系,构成目标节点社交信息网络,然后进入步骤002。

其中,与目标节点u存在直接社交关系的所有节点,包括与目标节点u之间存在直接的单向的关注关系,或者双向的好友关系。

步骤002.根据目标节点u的经纬度地理坐标,在地图上标记获得目标节点位置;并在地图上,以目标节点位置为中心建立正六边形,且正六边形中心与各顶点之间的距离为预设长度;接着在地图上,分别以该正六边形的各条边作为公共边,分别建立与该正六边形相邻、且尺寸相同的各个正六边形,以此类推,针对每一个正六边形,建立与其共边、且尺寸相同的相邻正六边形,直至完全覆盖地图,由此获得完整覆盖地图的各个正六边形区域,再将目标节点u映射到地图上目标节点位置所在的正六边形区域,获得目标节点社交信息网络中目标节点u与地图上目标节点位置所在正六边形区域的映射关系,然后进入步骤003。

步骤003.分别针对目标节点社交信息网络中除目标节点u之外的其余各个节点,将节点映射到其经纬度地理坐标在地图上所在位置对应的正六边形区域,由此获得目标节点社交信息网络中除目标节点u之外其余各个节点分别与地图上各个正六边形区域的映射关系,并结合目标节点社交信息网络中目标节点u与地图上目标节点位置所在正六边形区域的映射关系,构成目标节点位置信息网络,然后进入步骤004。

步骤004.以目标节点社交信息网络作为下层网络,目标节点位置信息网络作为上层网络,构建双层自我中心网络DEN(u),然后进入步骤005。

步骤005.根据双层自我中心网络DEN(u)里目标节点社交信息网络中目标节点u分别与各个节点之间的社交关系,获得目标节点u的出度值OutDu,以及目标节点u的入度值InDu,并根据该出度值OutDu和该入度值InDu,采用如下公式,获得目标节点u的副本因子大小Copyu,然后进入步骤006。

式中,Copymin_lim表示节点副本因子大小的预设最低限制,实际应用中,通常设置为2,Copymax_lim表示节点副本因子大小的预设最高限制,Numsmall_world表示社交网络中节点拥有与之具有社交关系的节点数的众数,在实际应用中,可以根据“邓巴定律”,默认值设置为150。

步骤006.根据双层自我中心网络DEN(u)里目标节点社交信息网络中目标节点u分别与各个节点之间的社交关系,获得所有与目标节点u之间存在双向社交关系的节点,构成目标节点可信节点集合TPS(u),接着判断目标节点在线存储节点集合OPS(u)是否为空集,是则将目标节点u加入到目标节点在线存储节点集合OPS(u)当中,再进入步骤007;否则直接进入步骤007;其中,

步骤007.判断目标节点在线存储节点集合OPS(u)中节点的数量是否小于目标节点u的副本因子大小Copyu,是则进入步骤008;否则目标节点u选择目标节点在线存储节点集合OPS(u)中的各个节点,实现目标节点u上数据的分布式存储,针对目标节点u上数据的存储节点选择过程结束。

步骤008.根据如下公式,获得目标节点在线存储节点集合OPS(u)中节点的数据可用性Ableu,然后判断目标节点在线存储节点集合OPS(u)是否能保证目标节点数据u上可用性达到100%,是则进入步骤010;否则进入步骤009。

<mrow> <msub> <mi>Able</mi> <mi>u</mi> </msub> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>t</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>y</mi> <mo>&Element;</mo> <mi>O</mi> <mi>P</mi> <mi>S</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo> </mrow> </mrow> </munder> <mrow> <mo>(</mo> <msub> <mi>p</mi> <mrow> <mi>y</mi> <mo>,</mo> <mi>t</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> <mi>m</mi> </mfrac> </mrow>

式中,Ay={py,1,…py,t,…py,m},Ay表示节点y在预设周期T内各个预设时间段Δt内的在线频率的集合,m表示预设周期T内预设时间段Δt的个数;py,t表示节点y在预设周期T内第t个预设时间段Δt内的在线频率,timey,t表示节点y在预设周期T内第t个预设时间段Δt的在线时间长度。

步骤009.针对目标节点可信节点集合TPS(u)中不属于目标节点在线存储节点集合OPS(u)的各个节点,调用最大化可用性的方法,采用如下公式,获得各个节点分别假设作为目标节点在线存储节点集合OPS(u)中节点时,目标节点u相对于目标节点在线存储节点集合OPS(u)的可用性收益availability_lucre(yca,OPS(u)),并选出其中最大可用性收益所对应的假设节点,将其作为目标节点在线存储节点集合OPS(u)中的节点,然后返回步骤007。

<mrow> <mi>a</mi> <mi>v</mi> <mi>a</mi> <mi>i</mi> <mi>l</mi> <mi>a</mi> <mi>b</mi> <mi>i</mi> <mi>l</mi> <mi>i</mi> <mi>t</mi> <mi>y</mi> <mo>_</mo> <mi>l</mi> <mi>u</mi> <mi>c</mi> <mi>r</mi> <mi>e</mi> <mrow> <mo>(</mo> <msub> <mi>y</mi> <mrow> <mi>c</mi> <mi>a</mi> </mrow> </msub> <mo>,</mo> <mi>O</mi> <mi>P</mi> <mi>S</mi> <mo>(</mo> <mi>u</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>t</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>y</mi> <mo>&Element;</mo> <mrow> <mo>(</mo> <mi>O</mi> <mi>P</mi> <mi>S</mi> <mo>(</mo> <mi>u</mi> <mo>)</mo> <mo>&cup;</mo> <mo>{</mo> <msub> <mi>y</mi> <mrow> <mi>c</mi> <mi>a</mi> </mrow> </msub> <mo>}</mo> <mo>)</mo> </mrow> </mrow> </munder> <mrow> <mo>(</mo> <msub> <mi>p</mi> <mrow> <mi>y</mi> <mo>,</mo> <mi>t</mi> </mrow> </msub> <mo>)</mo> </mrow> <mo>-</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>t</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>y</mi> <mo>&Element;</mo> <mi>O</mi> <mi>P</mi> <mi>S</mi> <mrow> <mo>(</mo> <mi>u</mi> <mo>)</mo> </mrow> </mrow> </munder> <mrow> <mo>(</mo> <msub> <mi>p</mi> <mrow> <mi>y</mi> <mo>,</mo> <mi>t</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> <mi>m</mi> </mfrac> </mrow>

式中,yca表示假设作为目标节点在线存储节点集合OPS(u)中的节点。

步骤010.根据目标节点位置信息网络中包括目标节点在内,各个节点与地图上各个正六边形区域的映射关系,获得目标节点在线存储节点集合OPS(u)中所有节点映射到地图上的所有正六边形区域,构成正六边形覆盖区域集合,同时,获得目标节点可信节点集合TPS(u)中所有节点映射到地图上的所有正六边形区域,构成可信正六边形区域集合,再判断正六边形覆盖区域集合是否与可信正六边形区域集合相等,是则进入步骤012;否则进入步骤011。

步骤011.针对可信正六边形区域集合中不属于正六边形覆盖区域集合的各个正六边形区域,调用覆盖好友聚集位置的方法,选择映射最多目标节点社交信息网络中节点的正六边形区域,作为候选正六边形区域,并在候选正六边形区域所映射目标节点可信节点集合TPS(u)中的各个节点中,随机选择一个节点,作为目标节点在线存储节点集合OPS(u)中的节点,然后返回步骤007。

步骤012.针对目标节点可信节点集合TPS(u)中不属于目标节点在线存储节点集合OPS(u)的各个节点,采用如下公式,计算获得各个节点分别与目标节点u之间的社交关系强度TieStrengthy,u,并选出其中最大社交关系强度所对应的节点,将其作为目标节点在线存储节点集合OPS(u)中的节点,然后返回步骤007。

<mrow> <msub> <mi>TieStrength</mi> <mrow> <mi>y</mi> <mo>,</mo> <mi>u</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <msub> <mi>Contact</mi> <mrow> <mi>y</mi> <mo>,</mo> <mi>u</mi> </mrow> </msub> </mrow> <mrow> <mi>P</mi> <mi>e</mi> <mi>r</mi> <mi>i</mi> <mi>o</mi> <mi>d</mi> </mrow> </mfrac> </mrow>

式中,Contacty,u表示在预设统计时长Period内节点y访问目标节点u的时间总和,在实际应用中,预设统计时长Period可以具体设计为7天、30天或168小时等。

基于上述所设计基于双层自我中心网络的存储节点选择方法,在具体的实施例中,首先按设计步骤构建出双层自我中心网络,如图2所示,其中,下层的目标节点社交信息网络中,节点1为目标节点,下层目标节点社交信息网络中的节点2、3、5、6是与目标节点1具有直接社交关系的各个节点,下层目标节点社交信息网络中各个节点内四格矩形中的数字表示该节点在各时间段内的可用性,例如目标节点1中四格矩形的数字都为1,因此,表示目标节点1一直在线,而节点2的四格矩形中的数字为:(0.2,0.8,0.8,1),表示在00:00-06:00时间段内节点的可用性为0.2,在06:00-12:00时间段内节点的可用性为0.8,在12:00-18:00时间段内节点的可用性为0.8,在18:00-23:56时间段内节点的可用性为1;并且各个节点之间带箭头的边表示节点之间的好友关系,其上的数字表示节点所对应用户之间的关系强度;上层目标节点位置信息网络中的三个节点位置表示下层目标节点社交信息网络中五个节点的位置信息。上下层间的边表示下层节点与上层节点间的映射关系。

然后计算目标节点1的影响力大小,以此为依据计算其副本因子Copy1。在双层自我中心网络DEN(1)中,目标节点1的出度OutD1=4,入度InD1=3,副本因子最低限制Copymin_lim=2,因此,目标节点1的副本因子Copy1=2。因此,在图2中节点1括号内的数字为2表示该目标节点的副本因子数。

接着判断目标节点在线存储节点集合OPS(1)是否为空集,是则将目标节点1加入到目标节点在线存储节点集合OPS(1)当中,否则不做任何操作;接下来,由于|OPS(1)|<Copy1,因此需要从目标节点可信节点集合TPS(1)中选择新的节点,作为目标节点在线存储节点集合OPS(1)中的节点。由于目标节点1本身各时间段内的可用性都达到1,即可以保证目标节点1的数据可用性达到100%,因此此例中不采用最大化可用性的方法选择存储节点。由于目标节点在线存储节点集合OPS(1)中节点对应的正六边形覆盖区域集合不与可信正六边形区域集合相等,因此调用覆盖好友聚集位置的方法,选择存储节点。因此选择节点3作为节点1的存储节点。由于|OPS(1)|=Copy1,因此不再需要选择新的节点作为存储节点。

实际情况中,当目标节点1的数据可用性未达到100%时,需要调用最大化可用性的存储节点选择方法,例如当目标节点1的四格矩形中的数字修改为(0.2,0.8,0.8,1)时,目标节点1本身加入到OPS(1)后,在选择第二个存储节点时,将选择节点2、3、6中能够产生最高可用性收益的节点加入到OPS(1)中,由于availability_lucre(6,OPS(1))=0.3为最高可用性收益,因此选择节点6加入到OPS(1)。

实际情况中,当目标节点1本身加入到OPS(1)后,数据可用性达到100%,如果目标节点1的好友都聚集在一个位置上时,UCLP(1)=φ,在选择第二个节点时,则需采用基于关系强度的方法选择存储节点,选择节点2、3、6中与节点1的关系强度最大的节点加入到OPS(1)中,如图2所示,给出目标节点1出边的权值为计算后的关系强度值,TieStrength6,1=0.4为最大关系强度,因此选择节点6加入到OPS(1)。

上述技术方案所设计基于双层自我中心网络的存储节点选择方法,针对分布式在线社交网络,充分考虑节点的活动个性化、节点间关联性强等特点,从单个用户节点的视角来对局部的社交网络进行建模,构建双层自我中心网络,除了对节点关系、节点活动情况进行记录以外,其上层节点对用户的朋友聚集位置信息进行提取,以方便以此为依据进行存储节点的选择;而且考虑到单一策略难以提高系统整体的性能,采用基于双层自我中心网络的存储节点选择方法,以一定标准依次根据节点的可用性、节点位置信息和节点间的关系强度选择存储节点,能够在最大程度保证数据可用性的情况下,提高数据访问性能;不仅如此,依据计算出的节点社交影响力来确定各节点数据副本因子大小,如大“V”用户的影响力较大,因此计算出其数据副本因子较大,热点数据的访问效率得到明显的提升。

上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

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