基于多跳协作的分布式存储方法、装置及电子设备与流程

文档序号:11237098阅读:1079来源:国知局
基于多跳协作的分布式存储方法、装置及电子设备与流程

本发明涉及分布式存储技术领域,特别是涉及基于多跳协作的分布式存储方法、装置及电子设备。



背景技术:

lot(internetofthings,物联网)将存储容量和计算能力有限的用户联系到一起,用户之间能够通过lot相互通信并实现资源的共享。lot中设备收集到的数据量较大且具有多样化,在此前提下缓存被视为保证较高信息传输质量的有效解决方案。在lot网络架构中,缓存的信息能够在移动终端或其他智能设备间通过d2d(device-to-device,设备到设备通信)进行传输,从而减轻了通信基础设施,例如ap(accesspoint,访问接入点)或bs(basestation,基站)的通信压力,并且能够有效提高频谱及能量的利用率,降低接入时延及减少回程损耗。

在实际lot的通信过程中,用户的移动性可能会导致用户携带的移动设备离开当前小区,这样会造成缓存在该移动设备中的数据失效,为了保证d2d通信中数据的有效性,现有技术中采用分布式存储的方法,将待转发的数据进行分组并随机缓存到多个移动设备(节点)中,当其中的节点失效时,随机选取一个节点来代替失效的节点,通过其他未失效的节点,恢复失效节点中的数据至随机选取的节点上。但是,采用随机选取一个节点来代替失效的节点,选取的节点的稳定性差且容易失败,这样会导致待转发数据的失效,现有的分布式存储方案中待转发数据的丢失率高,通信的可靠性差。



技术实现要素:

本发明实施例的目的在于提供一种基于多跳协作的分布式存储方法、装置及电子设备,以实现提高利用d2d通信时待转发数据的有效率,提高通信的可靠性。具体技术方案如下:

为达上述目的,本发明实施例提供了一种基于多跳协作的分布式存储方法,包括:

当第一节点集合中的节点失效时,获取预先确定的阈值数量,其中,所述第一节点集合为所述当前小区内缓存有内容分片的所有节点的集合,所述内容分片包含待转发数据的部分内容,所述阈值数量为恢复失效的节点所缓存的内容分片所需的节点数;

在所述当前小区中除所述第一节点集合中的节点外的其他节点中,选取能够与大于或等于所述阈值数量的第一节点集合中的节点进行有效通信的所有节点,作为第二节点集合;

根据所述第二节点集合中的每个节点与所述当前小区的关联程度,在所述第二节点集合中选取缓存节点;

在有效通信范围内,选取所述第一节点集合中的所述阈值数量个节点,恢复所述失效的节点所缓存的内容分片至所述缓存节点。

为达上述目的,本发明实施例提供了一种基于多跳协作的分布式存储装置,包括:

阈值数量获取模块,用于当第一节点集合中的节点失效时,获取预先确定的阈值数量,其中,所述第一节点集合为所述当前小区内缓存有内容分片的所有节点的集合,所述内容分片包含待转发数据的部分内容,所述阈值数量为恢复失效的节点所缓存的内容分片所需的节点数;

节点集合确定模块,用于在所述当前小区中除所述第一节点集合中的节点外的其他节点中,选取能够与大于或等于所述阈值数量的第一节点集合中的节点进行有效通信的所有节点,作为第二节点集合;

缓存节点确定模块,用于根据所述第二节点集合中的每个节点与所述当前小区的关联程度,在所述第二节点集合中选取缓存节点;

内容分片恢复模块,用于在有效通信范围内,选取所述第一节点集合中的所述阈值数量个节点,恢复所述失效的节点所缓存的内容分片至所述缓存节点。

为达上述目的,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现所述基于多跳协作的分布式存储方法。

为达上述目的,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现所述基于多跳协作的分布式存储方法。

本发明实施例提供的基于多跳协作的分布式存储方法、装置及电子设备,当第一节点集合中的节点失效时,获取预先确定的阈值数量;在所述当前小区中除所述第一节点集合中的节点外的其他节点中,选取在有效通信范围内,能够与大于或等于所述阈值数量的第一节点集合中的节点进行有效通信的所有节点,作为第二节点集合;根据所述第二节点集合中的每个节点与所述当前小区的关联程度,在所述第二节点集合中选取缓存节点;在有效通信范围内,选取所述第一节点集合中的所述阈值数量个节点,恢复所述失效的节点所缓存的内容分片至所述缓存节点。充分考虑了用户的移动性,可以提高利用d2d通信时待转发数据的有效率,提高通信的可靠性。当然,实施本发明的任一产品或方法必不一定需要同时达到以上的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的存储内容分片的原始节点选取方法的流程示意图;

图2为本发明实施例的基于多跳协作的分布式存储方法的流程示意图;

图3为本发明实施例的通信场景中基础通信设备与发送数据请求的节点的第一种位置关系图;

图4为本发明实施例的通信场景中基础通信设备与发送数据请求的节点的第二种位置关系图;

图5为本发明实施例的通信场景中基础通信设备与发送数据请求的节点的第三种位置关系图;

图6为本发明实施例的通信场景中基础通信设备与发送数据请求的节点的第四种位置关系图;

图7为本发明实施例的数据传输成功概率的曲线图;

图8为本发明实施例的计算时间的曲线图;

图9为本发明实施例的基于多跳协作的分布式存储装置的示意图;

图10为本发明实施例的电子设备的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在lot网络架构中,若当前小区中的一个节点缓存有待转发数据,由于节点移动、能耗、存储空间及其他原因,导致该节点不能继续为当前小区中的节点提供待转发数据,则称该节点失效。例如,用户(用户随身携带节点)的移动性使得节点间的接触变得复杂,不能够保证待转发数据的有效传输,当缓存有待转发数据的节点离开当前小区时,会导致该节点失效,并且缓存有待转发数据的节点由于存储空间及耗能等原因,在该节点中存储的待转发数据删除或丢失时,同样会导致节点失效,为解决此问题,本发明实施例采用冗余缓存的分布式存储方法,在一个节点失效后,通过其它节点恢复失效节点中的内容。

参见图1,图1为本发明实施例的存储内容分片的原始节点选取方法的流程示意图,包括:

s101,获取并根据当前小区中基站的通信覆盖范围、多跳协作的最大通信半径、第一数值和预先确定的存在概率,计算出待转发数据的分组份数及阈值数量,其中,第一数值为预设的缓存待转发数据的节点的数量,存在概率为第一时间后第八节点仍然处于当前小区中的概率,第一时间为任意时间,第八节点为当前小区中的任意节点。

本发明实施例中的当前小区是指应用本发明实施例的基于多跳协作的分布式存储方法进行通信的区域,当前小区可以与通信基础设备所覆盖的通信范围相同,也可以不同,此处不做具体限定。第一数值为预设的数值,根据具体的冗余缓存的方式进行确定。例如,当采用ec(erasurecodes,纠删码)进行分布式存储时,在一个ec6/10(至多有4个节点失效,原始文件仍可恢复)的分布式存储环境中,将第一数值的设定为10或更大。

存在概率根据用户与当前小区的关联程度及经过的时间进行计算,根用户与当前小区的关联程度正相关,与时间负相关。一个节点的关联程度标识了该节点与当前小区中除该节点外的其他节点的通信状况及社交因素,在计算存在概率时考虑了社交因素,得到的存在概率更加准确。多跳协作系统根据存在概率,计算分组份数及阈值数量,充分考虑了用户的移动性,计算出的分组份数及阈值数量的可靠度更高。

可选的,在s101之前,该方法还包括:

步骤一,获取当前小区中用户间的社交关系,确定每个用户离开当前小区的概率。

在不考虑当前小区中各用户间的社交因素时,用户进出当前小区的概率服从泊松过程,将某个节点离开当前小区的概率表示为μ,场景中节点满足m/m/∞队列模型。当考虑到用户间的社交因素时,将节点i(用户i)与节点j(用户j)之间的社交关系表示为sij,则可以将用户i离开当前小区的离开率表示为:其中,u为当前小区中所有节点的集合。sij取值范围为0≤sij≤1,根据用户i与用户j间的社交关联进行设定,用户i与用户j间的社交关联越紧密,sij的值越大。例如用户i的通信录中有l个好友,用户j的通信录中有k个好友,用户i与用户j通信录中由j个相同的好友,则用户i与用户j之间的社交关系可以表示为其中,k、l、j均为正整数。

步骤二,根据每个用户离开当前小区的概率,计算每个用户对应的节点的存在概率。

节点i在当前小区中停留的时间ti服从指数分布则δ时间后,节点i仍然存在于当前小区中的概率可以表示为:

多跳协作系统可以为一种设备,包括:处理器、存储器、通信接口和总线;处理器、存储器和通信接口通过总线连接并完成相互间的通信;存储器存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行基于多跳协作的分布式存储方法。

多跳协作系统还可以为一种应用程序,用于在运行时执行基于多跳协作的分布式存储方法。

多跳协作系统还可以为一种应用于终端或通信基础设施的存储介质,用于存储可执行代码,可执行代码用于执行基于多跳协作的分布式存储方法。

多跳协作系统还可以为上述设备、应用程序及存储介质中任意的结合。

s102,根据分组份数,将待转发数据进行分组,得到分组后的待转发数据。

在本发明实施例中,为防止待转发数据的失效,采用分布式存储方式。同时为了节约各节点的存储资源,多跳协作系统不采用直接保存待转发数据副本的方法,而是根据预设的算法,将待转发数据分成多个数据片段。例如利用ec码(erasurecoding,纠删码)或其他冗余存储编码的计算方法,将待转发数据进行分组。

s103,将分组后的待转发数据进行编码,得到多组内容分片。

多跳协作系统根据阈值数量,将分组后的待转发数据按照预设的编码方式编码为多组内容分片,例如在利用纠删码的算法进行编码时,将分组后的待转发数据编码成为第一数值的数量的内容分片。

s104,在当前小区中选取第一数值的数量的节点,作为原始节点。

多跳协作系统在当前小区中均匀选取第一数值数量的节点,作为缓存内容分片的原始节点。还可以按照节点存储空间剩余量,选取剩余量排名前第一数值数量的节点,或按照多跳协作通信范围的,选取通信范围排名前第一数值数量的节点,作为原始节点。当然也可以随机选取第一数值的数量的节点,此处不做具体限定,具体的选取方法可以根据实际通信情况进行设定。

s105,将内容分片分别缓存到原始节点中,得到第一节点集合。

多跳协作系统将各内容分片随机分别缓存到各原始节点中,缓存有内容分片的所有节点构成第一节点集合。第一节点集合中的每个节点只缓存一个内容分片,这是因为若一个节点中同时缓存同一待转发数据的两个及以上的内容分片,当该节点失效时,会对该待转发数据的回复造成较大影响。

在本发明实施例中,根据存在概率计算分组份数及阈值数量进而将待转发数据编码为多组内容分片,考虑了用户的移动性,可以提高利用d2d通信时待转发数据的有效率,提高通信的可靠性。

参见图2,图2为本发明实施例的基于多跳协作的分布式存储方法的流程示意图,包括:

s201,当第一节点集合中的节点失效时,获取预先确定的阈值数量,其中,第一节点集合为当前小区内缓存有内容分片的所有节点的集合,内容分片包含待转发数据的部分内容,阈值数量为恢复失效的节点所缓存的内容分片所需的节点数。

在实际应用中,由于用户的移动性,用户携带的节点(终端)可能会离开当前小区,或者由于节点电量耗尽、用户主动关闭d2d通信功能及节点清理存储空间等原因,会造成节点失效。当第一节点集合中的节点失效时,多跳协作系统获取阈值数量,以方便后续确定失效的节点的替代节点。阈值数量是根据存在概率计算出的,一个节点的存在概率标识时间δ后该节点仍然存在于当前小区中的概率,考虑了用户的移动性,提高通信的可靠性。

s202,在当前小区中除第一节点集合中的节点外的其他节点中,选取在有效通信范围内,能够与大于或等于阈值数量的第一节点集合中的节点进行有效通信的所有节点,作为第二节点集合。

两个节点间d2d通信的有效通信距离是有限的,同样基于多跳协作的设备间通信的有效通信距离也是有限的,这是因为随着跳数的增加(数据转发次数的增加),数据的信令负载、时延及噪声等因素将变得不可接受。多跳协作系统根据当前小区中个节点的通信状况,选取能够与大于或等于阈值数量的缓存有内容分片的节点进行有效通信的所有节点,作为第二节点集合。保证了第二节点集合中的每个节点都能够成功恢复失效的节点上的内容分片。

s203,根据第二节点集合中的每个节点与当前小区的关联程度,在第二节点集合中选取缓存节点。

多跳协作系统会在第二节点集合中,选取与当前小区关联程度最高的节点,作为缓存节点。一个节点的关联程度标识了该节点与当前小区中除该节点外的其他节点的通信状况及社交因素,缓存节点与当前小区的关联程度高,缓存节点中存储的内容分片的有效性就越高,利用d2d通信时通信的可靠性就越高。

s204,在有效通信范围内,选取第一节点集合中的阈值数量个节点,恢复离开当前小区的节点所缓存的内容分片至缓存节点。

多跳协作系统在选取第一节点集合中的阈值数量个节点时,可以为在第一节点集合中随机选取阈值数量个能够与缓存节点进行有效通信的节点。还可以计算出第一节点集合中的每个节点向缓存节点传输数据的传输成本,选取前阈值数量个传输成本最小的节点,以节约传输成本。

在本发明实施例中,阈值数量是根据存在概率计算出来的,一个节点的存在概率标识了第一时间后,该节点仍然停留在当前小区的概率。根据阈值数量最终确定的缓存节点代替失效的节点,提高了利用d2d通信时待转发数据的有效率,提高通信的可靠性。并且在确定缓存节点代替失效的节点,考虑了第二节点集合中的每个节点与当前小区的关联程度,充分考虑可节点失效的情况,确定的缓存节点的节点失效率低,数据传输成功的概率高,提高了利用d2d通信时待转发数据的有效率,提高通信的可靠性。

可选的,在本发明实施例中根据第二节点集合中的每个节点与当前小区的关联程度,在第二节点集合中选取缓存节点,包括:

步骤一,分别获取第二节点集合中的每个节点与当前小区中的节点建立有效通信链路的数目,作为第二节点集合中的节点的中心度。

多跳协作系统会根据第二节点集合中每个节点的多跳协作的有效范围和节点间传输数据成功的概率,确定出第二节点集合中的每个节点与当前小区中的节点能够建立的有效通信链路的数目,将有效通信链路的数目,作为对应的第二节点集合中的节点的中心度。有效通信链路是指该链路中每一跳数据传输均满足物理约束及社交约束,物理约束是指节点间的通信距离不超过d2d通信的最大传输距离,且数据传输的信号噪声比必须大于预设的信噪比阈值。社交约束是指,节点间成功传输数据的概率要大于预设的传输成功率阈值。

步骤二,选取第二节点集合中中心度最大的节点,作为缓存节点。

节点i与节点j间直接进行d2d通信,需要满足节点i与节点j间的距离不能超过d2d通信的最大通信距离,且数据传输的信号噪声比必须大于预设的信噪比阈值,同时考虑到用户的移动性及用户间的社交关系,节点间通信链路成功传输数据的概率要大于预设的传输成功率阈值。传输。其中,信噪比阈值为符合本发明实施例的任意数值,例如设定为13db或更大,14db或更大。传输成功率阈值为符合本发明实施例的任意数值,例如设定为0.5或更大,0.65或更大。

在本发明实施例中,将有效通信链路的数目作为第二节点集合中的节点的中心度,中心度越高,则当前小区中节点从缓存节点下载待转发数据的概率越高。将中心度最大的节点作为缓存节点,充分考虑了当前小区中的通信状况,提高了缓存节点中存储的内容分片的利用率。

可选的,在本发明实施例中根据第二节点集合中的每个节点与当前小区的关联程度,在第二节点集合中选取缓存节点,包括:

步骤一,获取并根据能够直接进行d2d设备到设备通信的两个节点间需要传输的数据的大小、有效通信时间、传输功率及信道情况,计算传输成本及传输完成概率,其中,传输完成概率标识当前小区中的两个节点间能够完成数据传输的概率。

信道状况包括信道的带宽、噪声强度、传输功率及信道增益。考虑到用户的移动性,用户随身携带的节点在直接进行d2d通信时,可能会存在超过d2d有效通信距离的情况。传输完成概率为在有效通信时间内,通信相邻的两个节点间能够完成传输需要传输的数据的概率。在本发明实施例中通过传输完成概率,充分考虑了节点失效的可能,能够增大数据传输成功的概率。

步骤二,根据传输成本及传输完成概率,分别以第一节点集合中的每个节点为一个顶点,分别以第二节点集合中的每个节点为另一个顶点构建二分图。

二分图的构建,明确了传输路径的两个端点,便于计算,方便后续传输路径的选择。

步骤三,根据传输完成概率及动态规划算法dynamicprogramming算法,分别确定第一节点集合中的每个节点与第二节点集合中的每个节点间的传输路径。

若相邻节点间的传输完成概率大于或等于预设的传输成功阈值,则将该传输完成概率作为该相邻节点间的路径的权值;若相邻节点间的传输完成概率小于传输成功阈值,则另该相邻节点间的路径的权值为0,其中,传输成功率阈值为符合本发明实施例的任意数值,例如设定为0.5或更大,0.55或更大。利用dp算法(dynamicprogramming,动态规划算法),分别确定二分图中两个节点间权值乘积最大的路径,作为这两个节点间的传输路径。

在传输完成概率小于传输成功阈值时,令权值为0,可以有效避免因个别节点间d2d传输的传输完成概率低,而影响整条通信的情况,提高了数据传输成功的概率,保证了通信的可靠性。

步骤四,根据传输成本分别确定每条传输路径的权值,通过最大匹配算法kuhn-munkres算法得到权值之和最小的最短路径的匹配。

综合利用d2d下载数据的传输成本及从bs下载数据的传输成本,作为传输路径的权值,通过km算法kuhn-munkres算法,得到权值之和最小的最短路径的匹配,即以第二节点集合中的一个节点为端点的阈值数量条路径的权值的和最小。同时考虑利用d2d下载数据的传输成本及从bs下载数据的传输成本,传输成本的考虑更加全面,能够节约数据传输过程中的能耗。

步骤五,根据权值之和最小的最短路径的匹配,选取缓存节点。

在本发明实施例利用kuhn-munkres算法获取边的权值最小的最短路径,以选取缓存节点,在最小化传输成本节约传输能耗的同时,充分考虑了节点失效的情况,提高了通信的可靠性。

可选的,在本发明实施例中根据第二节点集合中的每个节点与当前小区的关联程度,在第二节点集合中选取缓存节点,包括:

步骤一,获取并根据能够直接进行d2d设备到设备通信的两个节点间需要传输的数据的大小、有效通信时间、传输功率及信道情况,计算传输成本及传输完成概率。

考虑到用户的移动性,用户随身携带的节点在直接进行d2d通信时,可能会存在超过d2d有效通信距离的情况。传输完成概率为在有效通信时间内,通信相邻的两个节点间能够完成传输需要传输的数据的概率。在本发明实施例中通过传输完成概率,充分考虑了节点失效的可能,能够增大数据传输成功的概率。

步骤二,根据存在概率及传输完成概率,确定能够直接进行d2d通信的两个节点间的边的权值,其中,边的权值标识能够直接进行d2d通信的两个节点间未能完成传输需要传输的数据的概率。

在相邻的两个节点进行数据传输的过程中,无论是这两个节点间的通信距离超过有效通信距离,还是这两个节点中存在离开当前小区的节点,数据传输均失败。因此在本发明实施例中同时考虑了存在概率及传输完成概率,充分考虑了用户的移动性,提高了数据传输的成功率。

步骤三,根据动态规划算法dynamicprogramming算法,分别确定第一节点集合中的每个节点与第二节点集合中的每个节点间的最短路径。

当然此处还可以根据其他的路径算法来确定第一节点集合中的每个节点与第二节点集合中的每个节点间的最短路径,例如,dijkstra算法、floyd算法及shortestpathfasteralgorithm算法。

步骤四,根据最短路径、存在概率、传输完成概率及传输成本,分别确定第一节点集合中的每个节点与第二节点集合中的每个节点间相互的偏好度。

在数据传输的过程中,第二节点集合中的节点偏好的为传输成功率高的节点,而第一节点集合中的节点偏好的为传输成本低的节点。因此,分别根据每条最短路径中各节点的存在概率及节点间的传输完成概率,来确定第二节点集合中的每个节点对第一节点集合中的每个节点的偏好度;分别根据每条最短路径中节点间的传输成本来确定第一节点集合中的每个节点对第二集合中的每个节点的偏好度。在本发明实施中分别根据第一节点集合及第二节点集合中各节点的不同需求,确定第一节点集合中的每个节点与第二节点集合中的每个节点间相互的偏好度,偏好度更加准确。

步骤五,将第二节点集合中的每个节点均视为阈值数量个节点,得到第三节点集合。

在内容分片修复的过程中,替代失效节点的节点需要从阈值数量个第一节点集合的节点中下载数据,以恢复内容分片,因此在建立一对一对应关系之前,需要将第二节点集合中的每个节点均视为阈值数量个节点,得到第三节点集合。

步骤六,根据偏好度通过预设算法,建立第三节点集合中的每个节点与第一节点集合中的每个节点间的一对一对应关系。

若第三节点集合中的节点多于第一节点集合中的节点,则需要进行节点删除:随机删除第二节点集合中的一个节点,并将第二节点集合中剩余的每个节点均视为阈值数量个节点,得到新的第三节点集合。若新的第三节点集合中的节点数仍然多于第一节点集合中的节点数,则重复上述节点删除过程直至第三节点集合中的节点数小于或等于所述第一节点集合中的节点数。采用此种节点删除的方法,能够保证第二节点集合中被匹配的节点可以匹配阈值数量个第一节点集合中的节点。

步骤七,根据一对一对应关系,确定缓存节点。

根据建立好的一对一对应关系中,在第二节点集合中选取一个符合匹配规则的节点,作为缓存节点。该匹配规则是指,在一对一对应关系中第二节点集合中的一个节点对应了阈值数量个第一节点集合中的节点。在第二节点集合中选取一个符合匹配规则的节点,作为缓存节点,可以为在第二节点集合中随机选取一个符合匹配规则的节点,作为缓存节点;也可以为在符合匹配规则的节点中选取传输成本之和最小的节点,作为缓存节点。

在本发明实施例中,通过建立一对一对应关系,在减少传输成本节约通信资源的同时,提高了数据下载成功的概率,提高利用d2d通信时待转发数据的有效率,提高通信的可靠性。

可选的,在本发明实施例中根据偏好度通过预设算法,建立第三节点集合中的每个节点与第一节点集合中的每个节点间的一对一对应关系,包括:

根据偏好度通过分布式匹配算法gale-shapley算法或动态匹配算法rothandvandevate算法,建立第三节点集合中的每个节点与第一节点集合中的每个节点间的一对一对应关系。

在本发明实施例中,通过分布式匹配算法gale-shapley算法(盖尔-沙普利算法)或动态匹配算法rothandvandevate算法,来建立一对一对应关系,给出了一对一对应关系的确定方法,为根据一对一对应关系确定缓存节点提供了前提。

可选的,在本发明实施例中根据偏好度通过rothandvandevate算法,建立待选择节点集合中的每个节点与每个缓存有内容分片的节点间的对应关系,包括:

步骤a,获取第三节点集合中的每个节点与第一节点集合中的每个节点间的初始对应关系。

此处的初始对应关系为符合本发明实施例的任意对应关系,初始对应关系可以为随机建立的一对一的关系,也可以为通过gale-shapley算法、kuhn-munkres算法或其他资源最优匹配算法建立的一对一的关系,其中,在初始对应关系中,单独存在的节点可以看做是根该节点自身一对一匹配的节点,其偏好度相互均为零。

可选的,在步骤a之前,该方法还包括:

当第三节点集合中的节点的数目大于第一节点集合中节点的数目时,在第三节点集合中选取与第一节点集合中节点数目相同数量的节点,随机与第一节点集合中的节点建立一对一对应的初始对应关系。

用c(c为正整数)表示第一节点集合中节点的数目,用d表示阈值数量,在第二节点集合中任意选取(c/d向下取整)个第二节点集合中的节点,并将这个节点均视为d个节点,作为首选节点,从第三节点集合中选取首选节点,并随机选取剩下的个节点,建立与第一节点集合中节点的对应关系。

在本发明实施例中,给出了建立初始对应关系的具体方法,保证节点间的一对一对应。

步骤b,根据偏好度,判断初始对应关系中的节点对是否满足预设条件,其中,初始对应关系中的节点对为第一节点集合与第三节点集合间已建立一对一对应的两个节点,预设条件指第三节点对第四节点的偏好度高于第三节点对第一节点的偏好度,且第四节点对第三节点的偏好度高于第四节点对第五节点的偏好度,第一节点及第四节点为第一节点集合中的任意节点,第三节点及第五节点为第三节点集合中的任意节点,且第一节点与第三节点为初始对应关系中的同一节点对中的节点,第四节点与第五节点为初始对应关系中的同一节点对中的节点,将第三节点与第四节点组成的节点对称为破坏对。

步骤c,在初始对应关系中的所有节点对均不满足预设条件时,输出初始对应关系作为一对一对应关系。

步骤d,在初始对应关系中存在满足预设条件的节点对时,获取第三节点与第四节点,作为破坏对集合。

步骤e,在初始对应关系的基础上,根据破坏对集合,构建第二对应关系。

在初始对应关系的基础上,将破坏对集合中的破坏对作为一对一的节点,将初始对应关系中与破坏对中节点一对一对应的节点,根据偏好度进行匹配:若初始对应关系中与破坏对中节点一对一对应的节点间相互存在偏好度(即这两个节点间能够进行有效通信),则匹配为新的一对一对应的节点;若初始对应关系中与破坏对中节点一对一对应的节点间不存在偏好度(即这两个节点间不能进行有效通信),则将这两个节点作为单独的节点(视为节点与该节点自身进行匹配)得到第二对应关系。在本发明实施例中,不能进行有效通信的节点间不进行匹配,防止因通信链路失效而造成的数据传输失败。

步骤f,根据偏好度,判断第二对应关系中的节点对是否满足预设条件。

步骤g,在第二对应关系中的所有节点对均不满足预设条件时,输出第二对应关系作为一对一对应关系。

步骤h,在第二对应关系中存在满足预设条件的节点对时,判断第二对应关系中满足预设条件的节点对中的节点,是否存在于破坏对集合中。

步骤i,在第二对应关系中满足预设条件的节点对中的节点,均不存在于破坏对集合中时,选取第二对应关系中的任意破坏对,作为新的节点对,更新第二对应关系。

步骤j,根据偏好度,判断第二对应关系中的节点对是否满足预设条件。

步骤k,在第二对应关系中的节点对均不满足预设条件时,输出第二对应关系作为一对一对应关系。

步骤l,在第二对应关系中存在满足预设条件的节点对时,选取第二对应关系中的任意破坏对,作为新的节点对,更新第二对应关系,返回步骤j继续执行。

步骤m,在第二对应关系中满足预设条件的节点对中的第六节点存在于破坏对集合中时,在第二对应关系中满足预设条件的节点对中选取第七节点,根据第六节点与第七节点组成的节点对,更新第二对应关系,其中,第七节点对第六节点的偏好度,大于破坏对集合中的节点对第六节点的偏好度,第六节点为第一节点集合中的节点,且第七节点为第三节点集合中的节点;或第七节点为第一节点集合中的节点,且第六节点为第三节点集合中的节点。

步骤n,将第七节点加入到破坏对集合中,并返回步骤f继续执行。

在本发明实施例中,给出了rothandvandevate算法的具体实现步骤,保证了一对一对应关系的建立,在保证数据有效传输的基础上,能够节约能量。

本发明中的编码方式为符合本发明实施例的任意分布式编码方式。在众多的分布式编码方式中,较为常用的为纠删码。根据不同的要求,纠删码有不同的编码方式(如里所码及喷泉码),但都具有相同的编码参数,可以表示为(n,kf,df),即待转发数据f被分成kf(分组份数)份并编码成第一数值n份,存在n个原始节点上,每个节点上存有的内容分片大小为αf。当有节点请求待转发数据f时,该节点可通过连接n个原始节点中的任意kf个节点来获取f,每个原始节点传输大小αf的内容。当有原始节点失效时,需要选择一个新的缓存节点并连接阈值数量df个现有的原始节点/缓存节点,来修复出失效的节点上缓存的f的内容分片,每个原始节点/缓存节点传输的内容大小为βf。下面以纠删码为例,详细阐述本发明基于多跳协作的分布式存储方法,应用纠删码进行编码的具体实施例。

在一个基础通信设备(例如ap或bs)的有效通信半径为rcell的单蜂窝场景中,所有节点的集合为所有缓存有流行内容节点的集合为h,为当前小区中缓存的所有的流行内容(至少包括待转发数据)。将n个存储有待转发数据f的节点的集合表示为hf,请求f的请求节点集合为rf,并定义为第h个缓存节点上存有的所有内容的集合。

在实际通信场景中,一般情况下节点请求数据的时间是随机的,且服从独立分布。用w表示节点请求的平均到达率,令wj为第j次请求发生的瞬时时间,即:wj等于j次请求间隔(指数分布)的总时间。因此,wj服从爱尔兰分布,即:因此,在δ时间内,节点发生j次请求的概率为:

数据的流行度服从zipf分布,因此,流行度排名第i的数据被请求的概率可以表示为其中,γ表示数据的相对流行度的分布。γ的值越大表示分布越集中,即越流行的数据被节点请求的次数越多。中元素的个数。

定义在δ时间后的失效节点集合为那么需要修复的数据的集合可以表示为此时,对待转发数据f,未失效的缓存有f的内容分片的节点的数量表示为xf,则未失效的缓存有f的内容分片的节点的组合一共有种可能,则缓存有f的内容分片的未失效的节点的集合可以表示为:

当缓存有流行数据的节点失效时,需要找到一个新的节点代替失效的节点来缓存流行数据。以缓存有待转发数据f的内容分片的节点为例,在修复f的内容分片的过程中,需要选取df个缓存有f的内容分片的节点,并从每个选取的节点中下载大小为βf的数据。将能够成为新的缓存节点的备选节点集合表示为其中,中的节点可以没有缓存任何流行数据,也可以缓存有除f外的其他流行数据。

表示将失效节点l中的f的内容分片修复到节点i上的概率,且

其中,

表示内修复时节点i从节点h中下载数据的概率,且

其中,

由多跳协作的通信特点可知,在进行d2d通信时最多可以通过a跳来进行内容传输,用表示修复f的内容分片时,从节点h到节点i的传输路径(包含收发节点及中继节点),且其中,表示为修复f的内容分片时,从节点h到节点i的传输过程中选择的中继节点的集合,且当时,表示数据直接从节点h传输到节点i;当时,表示数据的传输路径为:h→r1→…→rq→i。

在实际应用场景中,既要考虑到节点i与节点j间直接进行d2d通信的物理通信条件,即需要满足节点i与节点j间的距离不能超过dmax,且数据传输的信号噪声比必须大于预设的信噪比阈值又要考虑到用户的移动性及用户间的社交关系,节点间通信链路成功传输数据的概率要大于预设的传输成功率阈值θmin。其中的数值为符合本发明实施例的任意数值,例如设定为13db或更大,14db或更大。θmin的数值为符合本发明实施例的任意数值,例如设定为0.5或更大,0.65或更大。

因此,在修复f的内容分片时,将节点i能够进行有效通信的下一跳节点的集合表示为:

修复过程中,将节点i能够从节点h下载数据成功的概率表示为:

即当从节点h到新缓存节点i之间至少存在一条可行的传输路径,使得

因此,节点i成功连接到df个节点来修复f的内容分片的概率为:

节点i与节点j间距离小于dmax的时间tij服从参数为τij的指数分布,其概率分布函数为当节点i向节点j传输大小为m的数据时,成功传输概率为:

计算可得

其中,b为信道带宽,为噪声强度,pi,j为节点i到节点j的传输链路的传输功率,gi,j为节点i与节点j之间的信道增益,服从瑞利分布。

在内容分片修复过程中,每个缓存有f的内容分片的节点向新的缓存节点传输的内容的大小均为βf,由上述公式(2)可得,在内容分片修复时,节点i向节点j传输大小为βf的数据成功的概率为:

则节点h通过多跳协作向节点i传输大小为βf数据成功的概率为:

其中,

表示中的元素个数,表示中的第j个元素。

同时将内容分片修复过程中节点a向节点b传输数据βf的传输成本表示为:

其中,pa,b为节点a到节点b的传输链路的传输功率,ga,b为节点a与节点b之间的信道增益,服从瑞利分布,即ga,b服从均值为γa,b的指数分布,ga,b~exp(γa,b)。然而,上述成本的计算难以计算得到闭式解,因此,利用其下边界进行问题松弛,即

表示节点i修复f的内容分片时,选择的df个缓存有f的内容分片的节点集合:

因此,节点i从选择的df条修复链路都能成功下载大小为βf的数据概率为:

则节点i能成功f的内容分片的概率最终可以表示为:

在节点i从缓存有f的内容分片的节点中下载待转发数据f时,需要选取kf个缓存有f的内容分片的节点,并从每个选取的节点中下载大小为αf的数据。与上述修复f的内容分片的过程类似,节点a从节点b下载大小为αf的数据的成本为:

节点i从节点h下载f的内容分片的概率表示为:

其中,

表示下载f时,从节点h到节点i的传输路径,则

其中,表示为节点i下载f时,从节点h到节点i的传输过程中选择的中继节点的集合。

在下载待转发数据f时,将节点i能够进行有效通信的下一跳节点的集合表示为:

在内容下载过程中,将节点i能够从节点h下载数据成功的概率表示为:

即当从节点h到节点i之间至少存在一条可行的传输路径:

使得

节点i成功连接到kf个节点来下载f的概率为:

由上述公式(2)可得,在待转发数据下载时,节点i向节点j传输数据αf成功的概率为:

因此,节点h通过多跳协作向节点i传输大小为αf的数据成功的概率为:

其中,表示中的元素个数,表示中的第j个元素。

表示节点i下载f时,选择的kf个缓存有f的内容分片的节点集合:

因此,节点i从选择的kf条链路都能成功下载大小为αf的数据的概率为:

则节点i能成功下载f的概率最终可以表示为:

本发明的目的在于最大化待转发数据f下载成功的概率及修复f的内容分片成功的概率。当考虑到当前小区中所有的缓存的流行内容时,内容分片修复成功的平均概率为:

为新的缓存节点。将流行内容集合中的流行度排名第r的数据表示为流行内容服从zipf分布,则被请求,且在δ时间内被所有节点总共请求j次的概率可以表示为其中,prδ(x)表示在间隔δ内节点产生x次请求的概率,表示排名r的内容被请求的可能性,将流行内容下载的平均成功概率可以表示为:

因此,目标优化函数可以表示为:

参见图3至图6,在一个基础通信设备(例如ap或bs)的有效通信半径为rcell的单蜂窝场景中,将基础通信设备的有效通信范围作为当前小区。对于一个距离蜂窝中心o1的距离为x(0≤x≤rcell)的节点,其中,节点所在的位置为o2,多跳协作的有效通信半径为admax,a为多跳协作的最大有效转发次数,dmax为d2d通信的最大有效通信距离。则该节点多跳协作的通信范围与当前小区的重叠区域存在如下情况。

如图3所示,当admax≥rcell,且admax-rcell≥x时,重叠区域的面积可以表示为:其中,scom(x)为重叠区域的面积。

如图4所示,当admax<rcell,且rcell-admax≥x时,重叠区域的面积可以表示为:scom(x)=π·(admax)2,其中,scom(x)为重叠区域的面积。

如图5所示,当admax<rcell,且rcell-admax<x≤rcell时,重叠区域的面积可以表示为:

其中,scom(x)为重叠区域的面积。

如图6所示,当rcell<admax,且admax-rcell<x≤rcell时,重叠区域的面积可以表示为:

其中,scom(x)为重叠区域的面积。

为了保证场景中待转发数据的有效性,需要保证在节点多跳协作通信的范围与当前小区的重叠面积最小时,仍然能满足至少有阈值数量个缓存有内容分片的节点能与该节点进行有效通信。即当节点在场景中服从随机分布时,需要满足在重叠范围内有个缓存有待转发数据的节点。

考虑到用户间的社交关系,每个节点离开当前小区的概率均不相同,因此对于节点i,在δ时间后,其有效通信范围内存在的缓存有待转发数据的节点的个数可以表示为:其中,ph(δ)为δ时间后节点h仍然存在于当前小区中的概率,由上述公式(1)获取。hf为此时节点i有效通信范围内缓存有待转发数据的节点的集合。

通过第一预设算法,得到的kf与df,其中,rf为请求待转发数据的节点的集合。

可选的,第一预设算法包括:

第一步,初始化k'f。

初始化k'f,其中,

第二步,根据当前的k'f,计算kf与df。

当应用mds(maximumdistanceseparable)编码方案时,kf=k'f,df=kf。

在应用msr(minimumstorageregenerating)编码方案时,当时,df=2kf-1=n-1;当时,kf=k'f,df=2k'f-1。

在应用mbr(minimumbandwidthregenerating)编码方案时,kf=k'f,df=n-1。

第三步,根据当前的kf与df,计算αf与βf。

当应用mds编码方案时,αf=βf=f/kf。

在应用msr编码方案时,当df≥2kf-1时,αf=f/kf,

在应用mbr编码方案时,

第四步,确定在有效通信范围内,能够成功向节点i传输待转发数据f的内容分片的节点的集合。

在内容下载过程(下载待转发数据f)中,对任意一个请求节点i,将能与节点i在a跳内(包含所有小于等于a跳的情况)成功传输f的内容分片的节点的个数(使得的协作者的个数)表示为kf,i,因此经过δ时间后,距离蜂窝中心的距离为x的请求节点i在可靠通信范围内能连接上的缓存有f的内容分片的节点个数为:

因此,k'f等于f的请求节点的最小即更新(若有请求节点无法与任何缓存有f的内容分片的节点进行连接,则令该请求节点从基站下载f,不考虑其)。

第五步,若更新后的k'f小于kf,则令更新的后k'f为初始化k'f,返回第二步继续执行,若更新后的k'f大于或等于kf,则输出kf和df。

根据输出的kf和df,将待转发数据f利用纠删码编码成n组内容分片,并分布式存储到n个节点中。

在本发明实施例中,在计算kf和df时,考虑了节点的移动性及各节点间的社交联系,能够减少请求f的节点在下载完f前,缓存有f的内容分片的节点失效的概率。

当缓存有f的内容分片的节点失效时,需要进行内容分片修复,即利用新的缓存节点来代替该失效的节点。为了保证待转发数据f的稳定性和可靠性,新选择的缓存节点上不能已存储有f的内容分片,即:选择的新的缓存节点i必须满足其中,为所有节点的集合,为缓存有f的内容分片的所有节点的集合。这是因为,若f的多个内容分片缓存在同一个节点上,若该节点失效,将对f的稳定性和可靠性造成较大影响。

此外,在允许进行多跳数据传输的前提下,当最多允许进行a跳数据传输时,新选择的缓存节点必须满足:存在至少df个缓存有f的内容分片的节点能在a跳之内通过有效链路将f中的数据传输到该新的缓存节点上。

因此,当修复一个失效节点上的f的内容分片时,待选则的新的节点的集合为:

中存在多个节点时,可以根据当前小区中节点的中心度来选择新的缓存节点,其中,节点的中心度为在同时考虑物理因素和社交关联的情况下,该节点能与其他节点建立有效通信链路的数目。

中选取中心度最大的节点作为新的缓存节点,即:

当缓存有待转发数据的内容分片的节点到新的缓存节点间,存在多条可行的传输路径时,将选择传输成本最小的路径。

在本发明实施例中,将有效通信链路的数目作为缓存有待转发数据的内容分片的节点的中心度,中心度越高当前小区中节点从缓存节点下载待转发数据的概率越高。将中心度最大的节点作为缓存节点,充分考虑了当前小区中的通信状况,提高了缓存节点中存储的内容分片的利用率。

在本发明实施例中为了解决多跳协作传输路径的选择问题,可以采用集中式匹配算法进行优化,利用二分图进行匹配。因为内容下载过程和内容分片修复过程只是边的权值的定义以及利用d2d进行数据传输匹配成功的边的个数不同,其他数学过程均相同,因此以内容分片修复的过程为例。

步骤一,构建二分图。

二分图的两个节点集合分别是当前小区内缓存有内容分片的所有节点的第一节点集合及能够与大于或等于阈值数量的第一节点集合中的节点进行有效通信的所有节点的第二节点集合(中的任意节点i均能至少和中的阈值数量个节点在a跳内通过有效链路进行通信连接,即)。

步骤二,给二分图边赋予权值。

在构建的二分图中,节点i和节点j之间边的权值为节点i通过多跳协作传输数据到节点j的传输成本wij。

为确定wij,首先要确定节点i和节点j间的多跳协作的传输路径。构造一个加权图g,包含当前小区中的所有节点,任意两个节点之间存在边,节点a和节点b之间的边的权值表示为zab,令(为在内容分片修复时,节点a向节点b传输f中的数据成功的概率),若节点a和节点b之间的边的权值则令节点a和节点b之间边的权值zab=0。然后根据任意用户间边的权值采用dynamicprogramming算法找到节点i和节点j之间的最优路径使得中所有的边的权值之积最大。

在确定二分图两端节点i和节点j之间的传输路径后,将节点i和节点j的边的权值变更为其中,为从节点到节点i经过多跳协作传输f中数据的成功概率,为节点h通过d2d多跳协作给节点i传输f中数据的传输成本,表示节点i从bs获取f中数据的成本。至此,二分图构建完毕。

步骤三,采用km算法(kuhn-munkres算法)得到最小权值之和的匹配。

得到最小权值之和的匹配对应的中的节点,作为新的缓存节点。

在本发明实施例中,根据数据成功的概率确定节点间的最优路径,保证了通信的可达,将总的传输成本作为二分图两端点间边的权值,采用km算法得到最小权值之和的匹配,进而确定新的缓存节点,可以降低传输成本。

在本发明实施例中为了解决多跳协作传输路径的选择问题,还提供了分布式匹配算法。

步骤一,构建第一节点集合中节点与第三节点集合中节点的匹配。

对于内容分片修复过程而言,将第一节点集合表示为由于待选取的缓存节点修复内容分片需要连接df个缓存有f的内容分片的节点,因此,待选取的缓存节点与缓存有f的内容分片的节点之间的匹配是一个1-df的匹配问题。所以,将第二节点集合中的每个节点均扩展为df个,得到第三节点集合使得该匹配变为一个1-1匹配。相应的,在内容下载过程中,为将每个数据请求节点均视为kf个节点的集合,为缓存有内容分片的节点的集合。对于内容分片修复过程而言,还是对于内容下载过程而言,多跳协作传输路径的选择均可以等效为基于之间的1-1匹配问题。

我们定义一个匹配函数φ:使得

是集合中的第i个元素,是集合中的第j个元素,φ是一个一对一的稳定匹配。

对于任意的节点希望能够有效可靠的获取数据,即数据传输的成功率要高。对于任意的节点希望能够尽可能的节约能量,即传输成本低。

以修复f的内容分片的过程为例,将从的完整多跳传输路径表示为则,根据以下步骤得到:

将当前小区中任意两个节点,节点i和节点j之间边的权值表示为其中pi(δ)为经过δ时间后,节点i仍然存在于当前小区中的概率,为内容分片修复过程中节点i向节点j传输f中数据的传输成功概率。

根据节点间的权值zij,采用dynamicprogramming算法得到之间的最优路径使得路径中每一跳边的权值之和最小。

在得到从的完整传输路径之后,的偏好度可衡量为:

表示中的元素个数,表示路径中的第i个用户。通过将矩阵的列按降序排列,得到中的节点对中的节点的偏好度列表。相应的,的喜好程度可表示为:

为修复f的内容分片时,节点a给节点b传输f中数据时一跳的传输成本。同样通过将矩阵的列按降序排列,得到中的节点对中的节点的偏好度列表。

在得到中节点及中节点相互的偏好度之后,可以通过gale-shapley算法(thegale-shapleyalgorithm,盖尔-沙普利算法)得到中节点及中节点的一对一稳定匹配,作为一对一对应关系。

当然在得到中节点及中节点相互的偏好度之后,可以通过rothandvandevate算法得到中节点及中节点的一对一稳定匹配,作为一对一对应关系。

应用rothandvandevate算法,首先要对blockingpair破坏对进行定义。对于集合中的节点i和集合中的节点j来说,如果φ(i)≠j(φ(i)表示节点i当前匹配的对象),且相对于φ(i),节点i更偏好节点j,相对于φ(j)(φ(j)表示节点j当前匹配的对象),节点j更偏好节点i,那么节点i和节点j就构成破坏对。

在rothandvandevate算法中,任意节点可以与自身匹配,且对自身的偏好度为0。如果一个匹配中不存在破坏对,那么该匹配就是稳定的。

将集合和集合之间的初始匹配表示为mi,nj分别表示集合中的第i个节点和集合中的第j个节点。

步骤一,判断是否稳定。

令q=0。

如果不是稳定的,确定中的一对破坏对(mq,nq),则基于该破坏对构成新的匹配使得令a(q)=(mq,nq)。

如果是稳定的,那么输出算法结束。

步骤二,当不是稳定的,则在中寻找所有破坏对(mq+1,nq+1)

步骤三,如果中对所有破坏对(mq+1,nq+1)而言,存在一个破坏对(mq+1,nq+1),其中mq+1被包含在a(q)中,那么从所有的破坏对(m,nq+1)中,选择nq+1,使其最偏好的对象为mq+1,并构成破坏对(mq+1,nq+1),得到新的匹配集合使得令a(q+1)=a(q)∪{nq+1};

1)如果在中,mq+1没有被匹配,那么a(q+1)中就不会包含中的破坏对

2)如果在中,mq+1被匹配,那么在a(q+1)中,可能存在的破坏对(mq+2,nq+2),且满足且a(q+1)中包含mq+2和nq+2,那么从所有破换对中选择nq+2,使得mq+2是nq+2最偏好的伙伴。将mq+2和nq+2匹配,得到新的匹配集合

重复步骤三的过程,直到得到匹配r>q,使得的破坏对不存在集合a(r)当中,那么即为稳定匹配。

步骤四,如果中对所有破坏对(mq+1,nq+1)而言,mq+1都不包含在a(q)中,但是存在一个破坏对(mq+1,nq+1),其中nq+1被包含在a(q)当中,那么交换m和n的角色,并重新步骤三中的步骤。

步骤五,如果中所有破坏对(mq+1,nq+1)中的元素均不存在a(q)当中,那么选择任意破坏对(mq+1,nq+1)来构成且定义a(q+1)=a(q)∪{mq+1,nq+1}。因此a(q+1)中包含a(q),且不包含中的破坏对。重复这个过程,直到中不存在破坏对,即达到稳定匹配。

在本发明实施例中,无论是通过集中式的km算法,还是利用分布式的gale-shapley算法及rothandvandevate算法,均可以得到一对一的稳定匹配。在采用km算法和gale-shapley算法时,若其中任意一个节点失效,需要重新对所有的节点再次进行匹配,采用rothandvandevate算法每次迭代消除不稳定的匹配对,最终将得到稳定匹配集合,相比于km算法和gale-shapley算法,可以减少计算的复杂度。

参见图7,图7为本发明实施例的数据传输成功概率的曲线图。其中,曲线701为采用km算法的曲线,曲线702为采用gale-shapley算法的曲线,曲线703为采用rothandvandevate算法的曲线。横轴代表运行时间,单位为秒,纵轴为数据传输成功的概率。可知,采用km算法时的数据传输成功率略高于采用用gale-shapley算法及rothandvandevate算法时的数据传输成功率。

参见图8,图8为本发明实施例的计算时间的曲线图。其中,曲线801为采用km算法的曲线,曲线802为采用gale-shapley算法的曲线,曲线803为采用rothandvandevate算法的曲线。横轴为运行时间单位为秒,纵轴为计算时间,单位为秒。随着运行时间的增加,三种算法的计算时间均阶段性的增加,这是因为随着时间的增加,离开当前小区的节点的数目开始增多,运算程度变得复杂,当一段时间后每秒离开当前小区的节点的数目区域稳定,计算时间也相对趋于稳定。由图8可知,rothandvandevate算法的计算时间明显小于km算法与gale-shapley算法的计算时间,计算复杂度更低。

参见图9,图9为本发明实施例的基于多跳协作的分布式存储装置的示意图,包括:

阈值数量获取模块901,用于当第一节点集合中的节点失效时,获取预先确定的阈值数量,其中,第一节点集合为当前小区内缓存有内容分片的所有节点的集合,内容分片包含待转发数据的部分内容,阈值数量为恢复失效的节点所缓存的内容分片所需的节点数。

节点集合确定模块902,用于在当前小区中除第一节点集合中的节点外的其他节点中,选取能够与大于或等于阈值数量的第一节点集合中的节点进行有效通信的所有节点,作为第二节点集合。

缓存节点确定模块903,用于根据第二节点集合中的每个节点与当前小区的关联程度,在第二节点集合中选取缓存节点。

内容分片恢复模块904,用于在有效通信范围内,选取第一节点集合中的阈值数量个节点,恢复失效的节点所缓存的内容分片至缓存节点。

在本发明实施例中,阈值数量是根据存在概率计算出来的,一个节点的存在概率标识了第一时间后,该节点仍然停留在当前小区的概率。根据阈值数量最终确定的缓存节点代替失效的节点,提高了利用d2d通信时待转发数据的有效率,提高通信的可靠性。并且在确定缓存节点代替失效的节点,考虑了第二节点集合中的每个节点与当前小区的关联程度,充分考虑可节点失效的情况,确定的缓存节点的失效率低,数据传输成功的概率高提高了利用d2d通信时待转发数据的有效率,提高通信的可靠性。

可选的,在本发明实施例中,该基于多跳协作的分布式存储装置还包括:

数值计算模块,用于获取并根据当前小区中基站的通信覆盖范围、多跳协作的最大通信半径、第一数值和预先确定的存在概率,计算出待转发数据的分组份数及阈值数量,其中,第一数值为预设的缓存待转发数据的节点的数量,存在概率为第一时间后第八节点仍然处于当前小区中的概率,第一时间为任意时间,第八节点为当前小区中的任意节点。

数据分组模块,用于根据分组份数,将待转发数据进行分组,得到分组后的待转发数据。

数据编码模块,用于根据阈值数量,将分组后的待转发数据进行编码,得到多组内容分片。

原始节点选取模块,用于在当前小区中选取第一数值的数量的节点,作为原始节点。

缓存配置模块,用于将内容分片分别缓存到原始节点中。

在本发明实施例中,根据存在概率计算分组份数及阈值数量进而将待转发数据编码为多组内容分片,考虑了用户的移动性,可以提高利用d2d通信时待转发数据的有效率,提高通信的可靠性。

可选的,在本发明实施例中,该基于多跳协作的分布式存储装置还还包括:

离开概率确定模块,用于获取当前小区中用户间的社交关系,确定每个用户离开当前小区的概率。

存在概率计算模块,用于根据每个用户离开当前小区的概率,计算每个用户对应的节点的存在概率。

在本发明实施例中,给出了存在概率的具体计算方法,考略了用户的移动性,计算出的存在概率准确,可以提高利用d2d通信时待转发数据的有效率,提高通信的可靠性。

可选的,在本发明实施例中,缓存节点确定模块903,包括:

中心度计算子模块,用于分别获取第二节点集合中的每个节点与当前小区中的节点建立有效通信链路的数目,作为第二节点集合中的节点的中心度。

第一缓存节点选取子模块,选取第二节点集合中中心度最大的节点,作为缓存节点。

在本发明实施例中,将有效通信链路的数目作为第二节点集合中的节点的中心度,中心度越高当前小区中节点从缓存节点下载待转发数据的概率越高。将中心度最大的节点作为缓存节点,充分考虑了当前小区中的通信状况,提高了缓存节点中存储的内容分片的利用率。

可选的,在本发明实施例中,缓存节点确定模块903,包括:

第一成本计算子模块,用于获取并根据能够直接进行d2d设备到设备通信的两个节点间需要传输的数据的大小、有效通信时间、传输功率及信道情况,计算传输成本及传输完成概率,其中,传输完成概率标识当前小区中的两个节点间能够完成数据传输的概率。

二分图构建子模块,用于根据传输成本及传输完成概率,分别以第一节点集合中的每个节点为一个顶点,分别以第二节点集合中的每个节点为另一个顶点构建二分图。

第一路径计算子模块,用于根据传输完成概率及动态规划算法dynamicprogramming算法,分别确定第一节点集合中的每个节点与第二节点集合中的每个节点间的传输路径。

km算法子模块,用于根据传输成本分别确定每条传输路径的权值,通过最大匹配算法kuhn-munkres算法得到权值之和最小的最短路径的匹配。

第二缓存节点选取子模块,用于根据权值之和最小的最短路径的匹配,选取缓存节点。

在本发明实施例利用kuhn-munkres算法获取边的权值最小的最短路径,以选取缓存节点,在最小化传输成本节约传输能耗的同时,充分考虑了节点失效的情况,提高了通信的可靠性。

可选的,在本发明实施例中,缓存节点确定模块903,包括:

第二成本计算子模块,用于获取并根据能够直接进行d2d设备到设备通信的两个节点间需要传输的数据的大小、有效通信时间、传输功率及信道情况,计算传输成本及传输完成概率。

权值计算子模块,用于根据存在概率及传输完成概率,确定能够直接进行d2d通信的两个节点间的边的权值,其中,边的权值标识能够直接进行d2d通信的两个节点间未能完成传输需要传输的数据的概率。

第二路径计算子模块,用于根据动态规划算法dynamicprogramming算法,分别确定第一节点集合中的每个节点与第二节点集合中的每个节点间的最短路径。

偏好度确定子模块,用于根据最短路径、存在概率、传输完成概率及传输成本,分别确定第一节点集合中的每个节点与第二节点集合中的每个节点间相互的偏好度。

第三节点集合获取子模块,用于将第二节点集合中的每个节点均视为阈值数量个节点,得到第三节点集合。

一对一对应关系建立子模块,用于根据偏好度通过预设算法,建立第三节点集合中的每个节点与第一节点集合中的每个节点间的一对一对应关系。

第三缓存节点选取子模块,用于根据一对一对应关系,确定缓存节点。

在本发明实施例中,通过建立一对一对应关系,在减少传输成本节约通信资源的同时,提高了数据下载成功的概率,提高利用d2d通信时待转发数据的有效率,提高通信的可靠性。

可选的,在本发明实施例中,根据偏好度通过预设算法,一对一对应关系建立子模块,具体用于:

根据偏好度通过分布式匹配算法gale-shapley算法或动态匹配算法rothandvandevate算法,建立第三节点集合中的每个节点与第一节点集合中的每个节点间的一对一对应关系。

在本发明实施例中,通过分布式匹配算法gale-shapley算法(盖尔-沙普利算法)或动态匹配算法rothandvandevate算法,来建立一对一对应关系,给出了一对一对应关系的确定方法,为根据一对一对应关系确定缓存节点提供了前提。

可选的,在本发明实施例中,一对一对应关系建立子模块,包括:

初始对应关系获取单元,用于获取第三节点集合中的每个节点与第一节点集合中的每个节点间的初始对应关系。

预设条件第一判定单元,用于根据偏好度,判断初始对应关系中的节点对是否满足预设条件,其中,初始对应关系中的节点对为第一节点集合与第三节点集合间已建立一对一对应的两个节点,预设条件指第三节点对第四节点的偏好度高于第三节点对第一节点的偏好度,且第四节点对第三节点的偏好度高于第四节点对第五节点的偏好度,第一节点及第四节点为第一节点集合中的任意节点,第三节点及第五节点为第三节点集合中的任意节点,且第一节点与第三节点为初始对应关系中的同一节点对中的节点,第四节点与第五节点为初始对应关系中的同一节点对中的节点,将第三节点与第四节点组成的节点对称为破坏对。

第一输出单元,用于在初始对应关系中的所有节点对均不满足预设条件时,输出初始对应关系作为一对一对应关系。

破换对确定单元,用于在初始对应关系中存在满足预设条件的节点对时,获取第三节点与第四节点,作为破坏对集合。

第二对应关系确定单元,用于在初始对应关系的基础上,根据破坏对集合,构建第二对应关系。

预设条件第二判定单元,用于根据偏好度,判断第二对应关系中的节点对是否满足预设条件。

第二输出单元,用于在第二对应关系中的所有节点对均不满足预设条件时,输出第二对应关系作为一对一对应关系。

破换对判定单元,用于在第二对应关系中存在满足预设条件的节点对时,判断第二对应关系中满足预设条件的节点对中的节点,是否存在于破坏对集合中。

第二对应关系第一更新单元,用于在第二对应关系中满足预设条件的节点对中的节点,均不存在于破坏对集合中时,选取第二对应关系中的任意破坏对,作为新的节点对,更新第二对应关系。

预设条件第三判定单元,用于根据偏好度,判断第二对应关系中的节点对是否满足预设条件。

第三输出单元,用于在第二对应关系中的节点对均不满足预设条件时,输出第二对应关系作为一对一对应关系。

第二对应关系第二更新单元,用于在第二对应关系中存在满足预设条件的节点对时,选取第二对应关系中的任意破坏对,作为新的节点对,更新第二对应关系,返回预设条件第三判定单元继续执行。

第二对应关系第三更新单元,用于在第二对应关系中满足预设条件的节点对中的第六节点存在于破坏对集合中时,在第二对应关系中满足预设条件的节点对中选取第七节点,根据第六节点与第七节点组成的节点对,更新第二对应关系,其中,第七节点对第六节点的偏好度,大于破坏对集合中的节点对第六节点的偏好度,第六节点为第一节点集合中的节点,且第七节点为第三节点集合中的节点;或第七节点为第一节点集合中的节点,且第六节点为第三节点集合中的节点。

返回执行单元,用于将第七节点加入到破坏对集合中,并返回预设条件第二判定单元继续执行。

在本发明实施例中,给出了rothandvandevate算法的具体实现步骤,保证了一对一对应关系的建立,在保证数据有效传输的基础上,能够节约能量。

参见图10,图10为本发明实施例的电子设备的示意图,包括:

处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信,

存储器1003,用于存放计算机程序;

处理器1001,用于执行存储器1003上所存放的程序时,实现如下步骤:

当第一节点集合中的节点失效时,获取预先确定的阈值数量,其中,第一节点集合为当前小区内缓存有内容分片的所有节点的集合,内容分片包含待转发数据的部分内容,阈值数量为恢复失效的节点所缓存的内容分片所需的节点数;

在当前小区中除第一节点集合中的节点外的其他节点中,选取能够与大于或等于阈值数量的第一节点集合中的节点进行有效通信的所有节点,作为第二节点集合;

根据第二节点集合中的每个节点与当前小区的关联程度,在第二节点集合中选取缓存节点;

在有效通信范围内,选取第一节点集合中的阈值数量个节点,恢复失效的节点所缓存的内容分片至缓存节点。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明实施例的电子设备中,阈值数量是根据存在概率计算出来的,一个节点的存在概率标识了第一时间后,该节点仍然停留在当前小区的概率。根据阈值数量最终确定的缓存节点代替失效的节点,提高了利用d2d通信时待转发数据的有效率,提高通信的可靠性。并且在确定缓存节点代替失效的节点,考虑了第二节点集合中的每个节点与当前小区的关联程度,充分考虑可节点失效的情况,确定的缓存节点的失效率低,数据传输成功的概率高提高了利用d2d通信时待转发数据的有效率,提高通信的可靠性。

本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种基于多跳协作的分布式存储方法的方法步骤。

在本发明实施例的存储介质中,阈值数量是根据存在概率计算出来的,一个节点的存在概率标识了第一时间后,该节点仍然停留在当前小区的概率。根据阈值数量最终确定的缓存节点代替失效的节点,提高了利用d2d通信时待转发数据的有效率,提高通信的可靠性。并且在确定缓存节点代替失效的节点,考虑了第二节点集合中的每个节点与当前小区的关联程度,充分考虑可节点失效的情况,确定的缓存节点的失效率低,数据传输成功的概率高提高了利用d2d通信时待转发数据的有效率,提高通信的可靠性。

对于装置/电子设备/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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