CN114375565B - 一种文件块下载方法及装置 - Google Patents
一种文件块下载方法及装置 Download PDFInfo
- Publication number
- CN114375565B CN114375565B CN202080024741.7A CN202080024741A CN114375565B CN 114375565 B CN114375565 B CN 114375565B CN 202080024741 A CN202080024741 A CN 202080024741A CN 114375565 B CN114375565 B CN 114375565B
- Authority
- CN
- China
- Prior art keywords
- node
- storage
- storage node
- storage nodes
- downloading
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
本发明提供了一种文件块下载方法,在P2P网络中,索引节点根据请求节点发送的下载请求,向请求节点发送选取出的预选存储节点,再由请求节点从预选存储节点和存储节点列表中的各个存储节点构成的存储节点集合中选择用于下载目标文件块的目标存储节点。本发明所提供的文件下载方法通过以存储节点列表中的存储节点为基础,迭代选择目标存储节点,可以令选择的目标存储节点越来越接近存储有目标文件块的全部存储节点中性能最优的全局最优存储节点,即得到全局最优解,从而提高文件块的下载效率和下载质量。
Description
技术领域
本发明主要涉及网络通信技术领域,尤其涉及一种文件块下载方法及装置。
背景技术
随着高速互联网的普及、个人计算机计算和存储能力的提升,对等计算(Peer toPeer,P2P)技术逐渐得到广泛应用。互联网用户通过P2P技术可以有效地利用互联网中散布的大量具有存储功能的网络节点,将文件分布到所有网络节点上,各网络节点可以利用其空闲的存储空间,执行存储任务,从而达到海量存储的目的。当文件被存储至P2P网络中后,用户在该P2P网络中的某一网络节点上请求下载该文件时,就需要基于该P2P网络的存储原理来下载文件。
通常,一个文件会被拆分为多个文件块后存储至P2P网络中,因此,用于下载文件的过程,相当于多次下载该文件的文件块的过程。用户在P2P网络中的请求节点上下发下载目标文件块的下载请求之后,可以通过P2P网络中的索引节点找到存储有目标文件块的全部存储节点,此时,请求节点同时向各个存储节点发起下载请求,当在某一个存储节点完成下载过程时,该下载请求执行完毕。可见,这种文件下载的方法会造成大量带宽资源的浪费。为了降低带宽资源的占用率,可以先对各个存储节点进行性能测试,并选出性能最优的存储节点作为执行下载请求的目标。但是,对大量的存储节点的性能测试会耗费大量的时间和开销,这样,反而会降低文件块的下载速度。
发明内容
本申请提供了一种文件块下载方法及装置,以提高文件的下载速度。
第一方面,本发明提供了一种文件块下载方法,应用于P2P网络,所述P2P网络包括请求节点和索引节点,所述方法包括:所述索引节点接收所述请求节点发送的下载请求,所述下载请求用于下载目标文件块;所述索引节点根据所述下载请求获取子分布式散列表DHT中与所述目标文件块对应的全部存储节点,所述子DHT为所述P2P网络对应的DHT中存储于所述索引节点的部分DHT;所述索引节点从所述全部存储节点中选取多个预选存储节点;所述索引节点将所述多个预选存储节点发送至所述请求节点;所述请求节点获取存储节点列表,所述存储节点列表中的存储节点用于与所述预选存储节点共同构成存储节点集合;所述请求节点基于所述存储节点集合下载所述目标文件块。
通常,索引节点可以采取随机选取的方式从所述全部存储节点中选取多个预选存储节点。这样,通过以存储节点列表中的存储节点为基础,迭代选择目标存储节点,可以令选择的目标存储节点越来越接近存储有目标文件块的全部存储节点中性能最优的全局最优存储节点,即得到全局最优解,从而提高文件块的下载效率和下载质量。
第二方面,本发明提供了一种文件块下载方法,应用于P2P网络中的索引节点,所述方法包括:接收请求节点发送的下载请求,所述下载请求用于下载目标文件块;根据所述下载请求获取子分布式散列表DHT中与所述目标文件块对应的全部存储节点,所述子DHT为所述P2P网络对应的DHT中存储于所述索引节点的部分DHT;从所述全部存储节点中选取多个预选存储节点;将所述多个预选存储节点发送至所述请求节点。
通常,索引节点可以采取随机选取的方式从所述全部存储节点中选取多个预选存储节点。这样,索引节点可以随机挑选出一部分存储节点供请求节点从中选择合适的存储节点来下载目标文件块,从而缩小请求节点检测存储节点性能的数量及时间,提高目标文件块下载速度。
在一种实现方式中,如果所述索引节点不存在与所述目标文件块对应的存储节点,则将所述下载请求发送至相邻索引节点,并由所述相邻索引节点获取与所述目标文件块对应的全部存储节点,其中,所述相邻索引节点为所述P2P网络中与所述索引节点具有指定算法关系的索引节点。
这样,可以保证请求节点能够获得与目标文件块对应的存储节点,从而保证目标文件块的可下载性。
在一种实现方式中,所述将所述多个预选存储节点发送至所述请求节点包括:生成局部DHT,所述局部DHT包括所述多个预选存储节点;将所述局部DHT发送至所述请求节点。
这样,索引节点可以以局部DHT的形式将预选存储节点发送给请求节点,保证这些预选存储节点的节点信息的完整性和规范性,便于请求节点后续对预选存储节点进行性能检测。
在一种实现方式中,在所述将所述局部存储节点列表发送至所述请求节点之后,所述方法还包括:清空所述局部DHT中的存储节点。
这样,索引节点可以在下一次收到下载请求时,在局部DHT中写入对应的预选存储节点,避免与上一下载请求对应的预选存储节点混淆。
第三方面,本发明提供了一种文件块下载方法,应用于P2P网络中的请求节点,所述方法包括:接收索引节点发送的预选存储节点,所述预选存储节点为从子分布式散列表DHT中与目标文件块对应的全部存储节点中选取的存储节点,所述子DHT为所述P2P网络对应的DHT中存储于所述索引节点的部分DHT;获取所述请求节点的存储节点列表,所述存储节点列表中的存储节点用于与所述预选存储节点共同构成存储节点集合;基于所述存储节点集合下载所述目标文件块。
这样,请求节点可以对各个预选存储节点的性能进行检测,并从中选择性能最优的部分预选存储节点来下载目标文件块,从而减少并行下载目标文件块的存储节点的数量,提高用于下载目标文件块的存储节点的质量。同时,每一个目标文件块的下载过程中,均会以请求节点中的存储节点列表中的存储节点以及预选存储节点共同构成的存储节点集合作为目标存储节点的选择基础,基于上述迭代过程,可以保证即使下载每一个目标文件块的目标存储节点只是全部存储节点中的部分存储节点,也可以实现整体文件下载过程均对应性能最优的存储节点,即收敛于全局最优解的效果,从而提高文件的下载效率和质量。
在一种实现方式中,所述存储节点列表中的存储节点为上一文件块下载操作后选取的预设性能指标符合预设性能指标范围,且存储有所述目标文件块的存储节点。
这样,可以将存储节点列表中的存储节点作为迭代的基础,以提高所确定的目标存储节点与全局存储节点中性能最优的存储节点的贴合度。
在一种实现方式中,在所述获取所述请求节点的存储节点列表之前,所述方法还包括:检测是否存在所述存储节点列表;如果不存在所述存储节点列表,则由所述预选存储节点构成存储节点集合。
这样,对于下载首个目标文件块,由于其不存在存储节点列表,因此,只需对预选存储节点进行性能测试即可。
在一种实现方式中,所述基于所述存储节点集合下载所述目标文件块包括:测试所述存储节点集合中各存储节点的预设性能指标;获取至少一个测试结果符合预设性能指标阈值的目标存储节点的节点信息;根据所述目标存储节点的节点信息下载所述目标文件块。
这样,可以根据需要从存储节点集合中选取性能符合标准的一个或者多个存储节点作为目标存储节点,以下载目标文件块。
在一种实现方式中,如果获取多个测试结果符合预设性能指标阈值的目标存储节点的节点信息,则根据所述预选存储节点的数量以及所述存储节点列表中存储节点的数量确定所述目标存储节点的数量。
这样,为了进一步提高用于下载目标文件块的存储节点的质量,可以选择多个目标存储节点并行下载。
在一种实现方式中,在下载所述目标文件块之后,所述方法还包括:从所述存储节点集合中选取存储节点,所选取的存储节点为所述存储节点集合中预设性能指标的排名大于或者等于预设排名的存储节点;利用所述选取的存储节点更新所述存储节点列表中的存储节点。
这样,为了在迭代的过程中优化最优存储节点,因此,需要在每一次下载目标文件块之后,对最优存储节点列表进行更新,以提高最优存储节点列表中各最优存储节点的性能。
在一种实现方式中,所述预设性能指标为传输时延、往返时延、可用带宽中的一种或者几种的组合。
这样,可以根据实际需要,选择合适的一种或者几种性能指标来测试存储节点的性能。
第四方面,本发明提供了一种索引节点,所述索引节点包括:接收器、处理器、存储器和发送器,所述接收器、所述处理器、所述存储器和所述发送器耦合;所述处理器调用所述存储器中的程序指令,以使所述索引节点执行如下方法:接收请求节点发送的下载请求,所述下载请求用于下载目标文件块;根据所述下载请求获取子分布式散列表DHT中与所述目标文件块对应的全部存储节点,所述子DHT为所述P2P网络对应的DHT中存储于所述索引节点的部分DHT;从所述全部存储节点中选取多个预选存储节点;将所述多个预选存储节点发送至所述请求节点。
通常,索引节点可以采取随机选取的方式从所述全部存储节点中选取多个预选存储节点。这样,索引节点可以挑选出一部分存储节点供请求节点从中选择合适的存储节点来下载目标文件块,从而缩小请求节点检测存储节点性能的数量及时间,提高目标文件块下载速度。
在一种实现方式中,所述索引节点所执行的方法还包括:如果所述索引节点不存在与所述目标文件块对应的存储节点,则将所述下载请求发送至相邻索引节点,并由所述相邻索引节点获取与所述目标文件块对应的全部存储节点,其中,所述相邻索引节点为所述P2P网络中与所述索引节点具有指定算法关系的索引节点。
这样,可以保证请求节点能够获得与目标文件块对应的存储节点,从而保证目标文件块的可下载性。
在一种实现方式中,所述索引节点所执行的方法还包括:生成局部DHT,所述局部DHT包括所述多个预选存储节点;将所述局部DHT发送至所述请求节点。
这样,索引节点可以以局部DHT的形式将预选存储节点发送给请求节点,保证这些预选存储节点的节点信息的完整性和规范性,便于请求节点后续对预选存储节点进行性能检测。
在一种实现方式中,所述索引节点所执行的方法还包括:在所述将所述局部存储节点列表发送至所述请求节点之后,清空所述局部DHT中的存储节点。
这样,索引节点可以在下一次收到下载请求时,在局部DHT中写入对应的预选存储节点,避免与上一下载请求对应的预选存储节点混淆。
第五方面,本发明提供了一种请求节点,所述请求节点包括:接收器、处理器、存储器和发送器,所述接收器、所述处理器、所述存储器和所述发送器耦合;所述处理器调用所述存储器中的程序指令,以使所述请求节点执行如下方法:接收索引节点发送的预选存储节点,所述预选存储节点为从子分布式散列表DHT中与目标文件块对应的全部存储节点中选取的存储节点,所述子DHT为所述P2P网络对应的DHT中存储于所述索引节点的部分DHT;获取所述请求节点的存储节点列表,所述存储节点列表中的存储节点用于与所述预选存储节点共同构成存储节点集合;基于所述存储节点集合下载所述目标文件块。
这样,请求节点可以对各个预选存储节点的性能进行检测,并从中选择性能最优的部分预选存储节点来下载目标文件块,从而减少并行下载目标文件块的存储节点的数量,同时,提高用于下载目标文件块的存储节点的质量。同时,每一个目标文件块的下载过程中,均会以上一目标文件块的下载过程对应的存储节点作为目标存储节点的选择基础,基于上述迭代过程,可以保证即使下载每一个目标文件块的目标存储节点只是全部存储节点中的部分存储节点,也可以实现整体文件下载过程均对应性能最优的存储节点,即收敛于全局最优解的效果,从而提高文件的下载效率和质量。
在一种实现方式中,所述存储节点列表中的存储节点为上一文件块下载操作后选取的预设性能指标符合预设性能指标范围,且存储有所述目标文件块的存储节点。
在一种实现方式中,所述请求节点所执行的方法还包括:在所述获取所述请求节点的存储节点列表之前,检测是否存在所述存储节点列表;如果不存在所述存储节点列表,则由所述预选存储节点构成存储节点集合。
这样,对于下载首个目标文件块,由于其不存在最优存储节点列表,因此,只需对预选存储节点进行性能测试即可。
在一种实现方式中,所述请求节点所执行的方法还包括:测试所述存储节点集合中各存储节点的预设性能指标;获取至少一个测试结果符合预设性能指标阈值的目标存储节点的节点信息;根据所述目标存储节点的节点信息下载所述目标文件块。
这样,可以根据需要从存储节点集合中选取性能符合标准的一个或者多个存储节点作为目标存储节点,以下载目标文件块。
在一种实现方式中,所述请求节点所执行的方法还包括:如果获取多个测试结果符合预设性能指标阈值的目标存储节点的节点信息,则根据所述预选存储节点的数量以及所述存储节点列表中存储节点的数量确定所述目标存储节点的数量。
这样,为了进一步提高用于下载目标文件块的存储节点的质量,可以选择多个目标存储节点并行下载。
在一种实现方式中,所述请求节点所执行的方法还包括:在下载所述目标文件块之后,从所述存储节点集合中选取存储节点,所选取的存储节点为所述存储节点集合中预设性能指标的排名大于或者等于预设排名的存储节点;利用所述选取的存储节点更新所述存储节点列表中的存储节点。
这样,为了在迭代的过程中优化最优存储节点,因此,需要在每一次下载目标文件块之后,对存储节点列表进行更新,以保证存储节点列表中各存储节点的性能最优。
在一种实现方式中,所述预设性能指标为传输时延、往返时延、可用带宽中的一种或者几种的组合。
这样,可以根据实际需要,选择合适的一种或者几种性能指标来测试存储节点的性能。
第六方面,本发明提供了一种P2P网络,其特征在于,包括至少一个请求节点和至少一个索引节点,其中,所述索引节点用于执行相关的文件块下载方法,所述请求节点用于执行相关的文件块下载方法。
这样,索引节点可以根据请求节点发送的下载请求,获取与目标文件块对应的存储节点,并从中随机选取多个预选存储节点发送至请求节点,以减少请求节点需要测试性能的存储节点的数量,从而提高请求节点的下载效率。进一步地,请求节点通过测试预选存储节点和最优存储节点的性能,来确定用于下载目标文件块的目标存储节点,由于每一个目标文件块的下载过程中,均会以上一目标文件块的下载过程对应的存储节点作为目标存储节点的选择基础,因此,基于上述迭代过程,可以保证及时下载每一个目标文件块的目标存储节点只是全部存储节点中的部分存储节点,也可以实现整体文件下载过程均对应性能最优的存储节点,即收敛于全局最优解的效果,从而提高文件的下载效率和质量。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种P2P网络的结构示意图;
图2为本发明实施例提供的一种P2P网络的结构示意图;
图3为本发明实施例提供的一种请求节点的结构示意图;
图4为本发明实施例提供的一种索引节点的结构示意图;
图5为本发明实施例提供的一种文件下载方法的流程示意图;
图6为本发明实施例提供的一种索引节点的子DHT的结构示意图;
图7为本发明实施例提供的一种局部DHT的结构示意图;
图8为本发明实施例提供的一种存储节点列表的结构示意图;
图9为本发明实施例提供的一种目标存储节点和全局最优存储节点的选取仿真图。
具体实施方式
图1为本发明实施例提供的一种P2P网络的结构示意图,如图1所示,P2P网络包括节点1~4,这些节点均具有存储文件块的能力,因此这些节点也可以称为存储节点,通常,一份文件会拆分成多个文件块存储于各个存储节点上,P2P网络存在一个全局DHT,用于存储文件块名称及与文件块名称对应的存储节点的节点信息,其中,文件块名称可以用资源标识符(Object ID)表示,资源标识符可以为文件块名称通过散列运算产生的一个哈希值,具有唯一性,存储节点的节点信息可以包括存储节点的索引地址、存储节点的节点标识(Node ID)等。P2P网络中的每一个存储节点上均会存储全局DHT中的一部分,可以将每个存储节点上存储的部分全局DHT称为子DHT,而每个可以通过一些特定的算法,例如Tapestry、Pastry、Chord、Kademlia等来确定文件块名称与存储节点的对应信息被存储于哪一份子DHT中,也就是被存储于哪一个存储节点上。
P2P网络中某一个或者某几个存储节点可以通过向相邻节点发起下载请求来下载目标文件块,即通过相邻节点查询目标文件块对应的存储节点,并通过目标文件块对应的存储节点的节点信息下载目标文件块。其中,发起下载请求的存储节点即为请求节点,相邻节点是指与请求节点之间具有指定算法关系的存储节点,所述指定算法通常是指用于确定文件块名称与存储节点的对应信息存储位置的算法,如图1所示,如果节点1为请求节点,那么相邻节点即为节点2。
当相邻节点接收到下载请求之后,会在本地存储的子DHT中查询与目标文件块对应的存储节点的节点信息,此时,相邻节点承担索引目标文件块的存储节点的节点信息的索引工作,因此,相邻节点又可以称为索引节点。如果相邻节点内没有目标文件块的存储节点的节点信息,那么,就需要通过该相邻节点的相邻节点来查询目标文件块的存储节点的节点信息,此时,该相邻节点的相邻节点即为索引节点,重复上述过程直至查询到目标文件块的存储节点的节点信息。可见,P2P网络中的每一个节点都可以为存储节点和索引节点,即承担存储目标文件块的工作和查询目标文件块的存储节点的节点信息的工作。
进一步地,图2为本发明实施例提供的一种P2P网络的结构示意图,可以同时由多个请求节点发起下载请求,如图2所示,同时存在请求节点1和请求节点2,并由请求节点1和请求节点2同时发起下载请求,其中,请求节点1和请求节点2可以下载相同的目标文件块;或者,请求节点1和请求节点2可以下载不同的目标文件块。
同时,索引节点可以为一个或者多个,如图1所示,如果节点2承担查询工作时,则索引节点为1个,如果节点2中无法查询到目标文件块的存储节点的节点信息时,则节点3和节点4承担查询工作,那么,索引节点为2个。如图2所示,对于请求节点1来说,当节点3和节点4承担查询工作时,请求节点1的索引节点为2个,对于请求节点2来说,当节点4承担查询工作时,请求节点2的索引节点为1个,此时,对于P2P网络来说,一共有2个索引节点。
以下实施例针对P2P网络中的某一个请求节点和与该请求节点对应的一个索引节点进行说明,对于P2P网络中存在多个请求节点和多个索引节点的情况,可以参照以下实施例中提供的方法。
图3为本发明实施例提供的一种请求节点的结构示意图,请求节点可以为计算机、手机、平板电脑、服务器、云服务器等具有数据存储、数据查询、数据处理等功能的终端设备。请求节点可以包括至少一个接收器、至少一个处理器、至少一个存储器和至少一个发送器,以图3作为示例,所述请求节点包括接收器101、处理器102、存储器103和发送器104,其中,接收器101、处理器102、存储器103和发送器104耦合,存储器103中存储有程序指令,处理器102可以通过调用存储器103中的程序指令,以使请求节点执行相关的文件下载方法,例如,生成下载请求、检测节点性能、生成最优节点列表等。
图4为本发明实施例提供的一种索引节点的结构示意图,索引节点可以为计算机、手机、平板电脑、服务器、云服务器等具有数据存储、数据查询、数据处理等功能的终端设备。索引节点可以包括至少一个接收器、至少一个处理器、至少一个存储器和至少一个发送器,以图4作为示例,所述索引节点包括接收器201、处理器202、存储器203和发送器204,其中,接收器201、处理器202、存储器203和发送器204耦合,存储器203中存储有程序指令,处理器202可以通过调用存储器203中的程序指令,以使索引节点执行相关的文件下载方法,例如,查询目标文件块的存储节点的节点信息、随机选取预选存储节点、生成局部DHT等。
在本发明实施例中所提及的接收器和发送器可以为终端设备上的通信接口,通信接口可以为一个或者多个光纤链路接口、以太网接口、微波链路接口或者铜线接口等。具体地,通信接口可以包括网络适配器(network adapter)、网卡(network interface card)、局域网接收器(LAN adapter)、网络接口控制器(network interface controller,NIC)、调制解调器(modem)等。其中,通信接口可以是独立的器件,也可以部分或者全部地集成或者封装在处理器中,成为处理器的一部分。
在本发明实施例中所提及的处理器可以包括一个或者多个处理单元,例如系统芯片(system on a chip,SoC)、中央处理器(central processing unit,CPU)、微控制器(microcontroller,MCU)、存储控制器等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
在本发明实施例中所提及的存储器可以包括一个或者多个存储单元,例如可以包括易失性存储器(volatile memory),如:动态随机存取存储器(dynamic random accessmemory,DRAM)、静态随机存取存储器(static random access memory,SRAM)等;还可以包括非易失性存储器(non-volatile memory,NVM),如:只读存储器(read-only memory,ROM)、闪存(flash memory)等。其中,不同的存储单元可以是独立的器件,也可以集成或者封装在一个或者多个处理器或者通信接口中,成为处理器或者通信接口的一部分。
图5为本发明实施例提供的一种文件下载方法的流程示意图,如图5所示,所述方法包括:
S1、请求节点向索引节点发送下载请求。
请求节点通过接收用户发起的相关操作,例如用户在请求节点中输入的文件下载指令、用户在请求节点中通过点击等操作发起的文件下载指令等,生成相应的下载请求。由上文可知,文件在P2P网络中进行存储的过程是首先将该文件拆分为多个文件块,然后再分别存储每一个文件块,由此可知,文件的下载过程,也应该是分别下载该文件的每一个文件块的过程。当请求节点接收到用户的文件下载指令之后,可以根据该下载指令对应的文件名,例如通过哈希算法计算出的文件名对应的哈希值,首先确定出该文件名对应的全部文件块的名称,这样,请求节点就可以获知用户完成文件下载过程所要下载的全部文件块,并生成关于每一个文件块的下载请求,其中,每一个文件块在下载的过程中,均可以称为目标文件块。进一步地,下载每一个文件块时都需要经历查询文件块所在的存储节点的节点信息和利用节点信息下载文件块两个过程,如果请求节点中已经存储有部分文件块,则可以通过查询请求节点自身的数据库或者文件日志等确定已经存储在本地的文件块(无需下载的文件块),请求节点仅生成关于其余文件块的下载请求即可,这样,可以有效节省文件块的查询时间和下载时间,从而可以提高文件下载的整体效率。
下载请求通常包括目标文件块的文件块名称,如上文所述的Object ID等,通常一条下载请求对应一个目标文件块。请求节点可以在一个目标文件块完成下载之后,再生成下一个需要下载的目标文件块的下载请求,也可以在接收到用户的文件下载指令之后,同时生成全部目标文件块的下载请求。其中,请求节点可以根据一定的优先级或者权重来确定优先下载哪一个文件块。
S2、索引节点接收请求节点发送的下载请求,所述下载请求用于下载目标文件块。
索引节点接收到下载请求之后,可以通过解析该下载请求,获得下载请求中包括的目标文件块的文件块名称、下载优先级等信息。
S3、索引节点根据所述下载请求获取子分布式散列表DHT中与所述目标文件块对应的全部存储节点,所述子DHT为所述P2P网络对应的DHT中存储于所述索引节点的部分DHT。
由上文可知,索引节点中存储有P2P网络对应的DHT中的部分DHT,即子DHT,图6为本发明实施例提供的一种索引节点的子DHT的结构示意图,如图6所示,子DHT包括文件块名称及与文件块名称对应的存储节点的节点信息,具体地,子DHT包括M个文件块名称以及存储节点的节点信息,其中,用Hash来标识文件块名称,用Peer来标识文件块对应的存储节点的节点标识,用add_来标识存储节点的索引地。由此,索引节点可以通过匹配目标文件块的文件块名称与子DHT中的文件块名称,判断索引节点中是否存储有与目标文件块对应的存储节点的节点信息。
在一种查询结果中,如果目标文件块的文件块名称用Hash a来标识,则图6中存在与目标文件块的文件块名称相同的文件块名称对应的存储节点分别为Peer a1、Peer a2、Peer a3、Peer z5等,假设与目标文件名的文件块名称相同的文件块名称对应的存储节点的数量为N个,则N≤M。这样,就可以从索引节点对应的子DHT中获取到与目标文件块对应的全部存储节点。
在一种查询结果中,如果目标文件块的文件块名称用Hash c来标识,则图6中显然不存在与目标文件块的文件块名称相同的文件块名称,这样也就无法从索引节点中查询到存储有目标文件块的存储节点的节点信息。此时,索引节点需要将下载请求发送至相邻节点,在相邻节点中查询目标文件块的存储节点的节点信息,其中,由于相邻节点承担了查询工作,因此,相邻节点又可以称为相邻索引节点。重复上述过程,直至某一相邻索引节点查询到目标文件块的存储节点的节点信息为止,此时,在该相邻索引节点中就可以实现上一种查询结果,即获取到与目标文件块对应的全部存储节点。
S4、索引节点从所述全部存储节点中选取多个预选存储节点。
为了可以有效减少进一步由请求节点检测性能的节点数量,因此,索引节点需要从获取到的全部存储节点中选取多个预选存储节点。例如,从上述N个存储节点中选取m个预选存储节点,其中,1≤m≤N,m的具体数量可以由用户根据经验自行设定,或者由索引节点通过相关算法设定,此处不对m的设定方法加以限定。
进一步地,为了提高后续目标存储节点与全部存储节点中性能最优的存储节点的贴合度,可以采用随机选取的方式选取预选存储节点,以降低选择的偶然性。
为了与索引节点中的子DHT加以区分,可以在子DHT中对预选存储节点进行特殊标识,例如,在预选存储节点的节点标识上添加特殊标识,或者,在子DHT中对预选存储节点所在的行进行填色等。本实施例中为了与子DHT加以区分,针对预选存储节点生成一个单独的DHT,即局部DHT。图7为本实施例提供的一种局部DHT的结构示意图,如图7所示,局部DHT至少包含m个预选存储节点的节点标识、对应的目标文件块的文件块名称,局部DHT还可以包含预选存储节点的索引地址,即局部DHT中的内容可以与预选存储节点在子DHT中对应的内容完全相同,通过复制等方式写入,也可以是预选存储节点在子DHT中的部分内容,经过选取再写入局部DHT。图7中Peer 1~Peer m中1~m代表为预选存储节点中的第几个预选存储节点,并不代表具体的节点标识。其中,局部DHT可以为一张预先设立为索引节点中的表格,当索引节点随机选取出预选存储节点之后,可以直接价格预选存储节点对应的节点标识、文件块名称、索引地址等信息写入该表格,以生成最终的局部DHT,这样,可以有效提高局部DHT的生成效率。
S5、索引节点将所述多个预选存储节点发送至所述请求节点。
索引节点可以直接根据子DHT中预选存储节点对应的节点信息,例如节点标识、索引地址等信息发送至请求节点。索引节点也可以将生成的局部DHT直接发送至请求节点,这样,不仅不容易遗漏预选存储节点的节点信息,节省从子DHT中查询预选存储节点的节点信息的时间,而且,还可以令请求节点接收到带有一定规范格式的节点信息,方便请求节点进行后续数据处理。
进一步地,如果索引节点生成了局部DHT,在索引节点向请求节点发送了局部DHT之后,可以清空局部DHT中存储节点的节点信息,这样,该索引节点如果接收到新的下载请求,就可以将对应于新的下载请求的预选存储节点的节点信息写入局部DHT,形成新的局部DHT,从而实现局部DHT的重复利用性。
S6、请求节点接收索引节点发送的预选存储节点,所述预选存储节点为从子分布式散列表DHT中与目标文件块对应的全部存储节点中随机选取的存储节点,所述子DHT为所述P2P网络对应的DHT中存储于所述索引节点的部分DHT。
请求节点可以接收到索引节点发送的对应于下载请求的预选存储节点,例如节点信息,如上例Peer 1~Peer m的节点信息,当然,如果索引节点生成了局部DHT,那么请求节点也将收到如图7所示的局部DHT,局部DHT中可以清晰地浏览到各预选存储节点的节点信息,并且可以快速准确地获取各预选存储节点的节点信息。
S7、请求节点获取存储节点列表,所述存储节点列表中的存储节点用于与所述预选存储节点共同构成存储节点集合。
S8、请求节点基于所述存储节点集合下载所述目标文件块。
S9、请求节点测试所述存储节点集合中各存储节点的预设性能指标。
请求节点接收到索引节点发送的预选存储节点之后,并非直接从全部预选存储节点中下载目标文件块,而是,需要对各个预选存储节点的性能进行测试,同时,本实施例中还需要对存储于请求节点中的存储节点列表中的各存储节点的性能进行测试,其中,上述存储节点为上一文件块下载操作后选取的预设性能指标符合预设性能指标范围,且存储有所述目标文件块的存储节点。
例如,(1)请求节点上一文件块下载操作对应的下载请求为A1,请求下载文件a中的首个文件块a1,则在下载文件块a1的过程中,索引节点会根据下载请求A1给请求节点发送m个预选存储节点的节点信息,此时,由于请求节点是下载文件a中的首个文件块,因此,请求节点中并无下载文件a中文件块的相关存储节点的记录,因此,请求节点只需要测试这m个预选存储节点的预设性能指标即可。当该文件下载操作结束后,请求节点就可以从这m个预选存储节点中选取n个性能最优的存储节点进行记录,以生成存储节点列表,其中,1≤n≤m。图8为本发明实施例提供的一种存储节点列表的结构示意图,图8中Peer 1~Peer n中1~n代表为存储节点列表中的第几个存储节点,并不代表具体的节点标识。
(2)进一步地,基于上述下载文件块a1的操作,当请求节点的当前文件块下载操作对应的下载请求为A2,请求下载文件a中的第二个文件块a2时,则在下载文件块a2的过程中,索引节点会根据下载请求A2给请求节点再次发送m个预选存储节点的节点信息,此时,请求节点不仅可以从这m个预选存储节点中下载文件块a2,还可以从上一文件块下载操作后记录的n个存储节点中下载文件块a2。因此,此时,需要综合考虑m个预选存储节点和n个存储节点的性能,并从中确定下载文件块a2的存储节点。当该文件下载操作结束后,请求节点需要从m个预选存储节点和n个存储节点的性能中再次选取n个性能最优的存储节点记录于存储节点列表中。
需要说明的是,如果P2P网络中的存储节点A中存储文件a,也就是对应存储文件a的全部文件块,那么,这些文件块对应的存储节点的节点信息均会对应存储节点A的节点信息。如果请求节点针对目标文件块a1(目标文件块a1为文件a的一个文件块)发起下载请求A,并接收到索引节点反馈的预选存储节点中包括存储节点A,且通过对各存储节点的性能测试得到多个最优存储节点,其中包括存储节点A,那么,当请求节点继续请求下载文件a中的其他文件块时,例如文件块a2,存储节点A中,包括文件块a2,因此,在请求节点下载文件块a2时,仍然可以以存储节点A作为一个下载文件块a2的存储节点,并不会存在在最优存储节点中无法下载目标文件块的问题,因此,上述用于测试性能的存储节点的范围有效。
(3)更进一步地,当请求节点继续下载文件a中的其他文件块时,则可以重复(2)中的下载过程。其中,当再次确定出n个存储节点之后,请求节点就可以利用这n个存储节点的节点信息替换存储节点列表中的节点信息,以更新存储节点列表。通常,可以用OPT_index,OPT_metric来表示存储节点列表中的存储节点,其中,OPT_index可以为存储节点对应的哈希值(节点标识),OPT_metric用于标识请求节点到该存储节点的传输路径的负载情况。
基于上述过程,当请求节点接收到索引节点发送的预选存储节点的节点信息之后,需要首先检测请求节点中是否存储有存储节点列表。在一种实现方式中,请求节点在下载文件之前,预先建立存储节点列表的表格,并在每一次下载目标文件块之后,将所选取的存储节点的节点信息写入该存储节点列表的表格中,此时,可以通过检测该表格中是否存在字符,或者是否存在关于节点信息的字符来判断请求节点中是否存储有存储节点列表,例如,当不存在字符,或者不存在与节点信息有关的字符时,判定不存在存储节点列表,那么请求节点当前文件下载操作对应下载文件中的首个文件块。在另一种实现方式中,请求节点在每一次下载目标文件块之后,将所选取的存储节点的节点信息生成一张存储节点列表。此时,可以直接检测请求节点是否存在存储节点列表。
得到存储节点集合之后,对存储节点集合中的各个存储节点进行预设性能指标测试,其中,预设性能指标可以为传输时延、往返时延、可用带宽中的一种或者几种的组合。例如,使用PING工具探测请求节点到各个存储节点的传输时延,使用IPerf工具探测请求节点到各个存储节点的可用带宽等。示例地,测试后的存储节点可以记录为Peer(Hash),Hash_metric,其中,Peer为存储节点,Hash为标识存储节点的哈希值,Hash_metric为标识请求节点到该存储节点的传输路径的负载情况。
在一种实现方式中,请求节点可以针对每一个下载请求,对存储节点集合中的每一个存储节点的性能进行测试。在一种实现方式中,请求节点也可以选择周期性的对存储节点列表中的存储节点的性能进行测试,在不需要对存储节点列表中的存储节点进行性能测试时,可以直接参考存储节点列表中记录的存储节点的性能。在一种实现方式中,请求节点也可以选择在接收到存储节点列表中存储节点发生状态变化时,对这些存储节点的性能进行测试,在不需要对存储节点列表中的存储节点进行性能测试时,可以直接参考存储节点列表中记录的存储节点的性能。
S10、请求节点获取至少一个测试结果符合预设性能指标阈值的目标存储节点的节点信息。
请求节点可以通过上述测试得到各个存储节点对应的预设性能指标的测试结果,这样,就可以根据这些测试结果,从中选取符合预设性能指标阈值的存储节点作为最终下载目标文件块的目标存储节点。
在一种实现方式中,可以从全部存储节点中选取性能最优的一个存储节点作为目标存储节点,这样,可以有效提高下载速度,并减少下载操作对各个存储节点的资源占用。
在另一种实现方式中,如果P2P网络相对不太稳定,每个存储节点可能随时退出P2P网络,那么仅选取一个目标存储节点进行下载的方式容易出现目标存储节点失效,而无法下载的问题,为了尽可能保证下载过程的可靠性,可以选择多个目标存储节点。例如,根据预选存储节点的数量和存储节点列表中存储节点的数量确定目标存储节点的数量。例如,假设P2P网络中每个存储节点失效的概率相同,均为p0,请求节点从存储节点集合中各存储节点获得下载过程的可靠性为P,请求节点可以根据下式从m个预选存储节点和存储节点列表中的n个存储节点中选取N个目标存储节点,
基于这种实现方式,请求节点可以将性能最优的N个存储节点作为目标存储节点。进一步地,在这种实现方式中,请求节点可以选取n个存储节点来更新存储节点列表,其中,n可以等于N,即直接将N个目标存储节点作为存储节点进行记录;n也可以不等于N,即选择n个性能最优的目标存储节点作为存储节点进行记录。
S11、请求节点根据所述目标存储节点的节点信息下载所述目标文件块。
在一种实现方式中,如果目标存储节点只有1个,则请求节点只需要获取该目标存储节点的索引地址,并根据索引地址下载目标文件块即可。
在一种实现方式中,如果目标存储节点有多个,则请求节点需要获取每个目标存储节点的索引地址,并根据这些索引地址分别从对应的目标存储节点下载目标文件块,其中,当请求节点从任意一个目标存储节点完成下载时,整体下载过程结束。
基于上述选取目标存储节点的过程可知,针对待下载文件中的每一个非首个下载的文件块来说,其对应的目标存储节点均是综合考虑前一文件下载操作选取出的性能最优的存储节点,和本次文件下载操作中新加入的预选存储节点的性能,进行选择的。可见,对于每一个目标文件块的下载过程都是一次迭代选取的过程,可以起到从性能优良的存储节点中选择性能更加优良的存储节点的效果,同时,由索引节点不断加入新的可选项以保证存储节点选择的可更新性,起到对目标存储节点选择范围一定的扩充性。而且,随着迭代过程,各个文件块所对应的目标存储节点会越来越接近存储有目标文件块的全部存储节点中性能最优的全局最优存储节点,即得到全局最优解。可见,对于整个文件的下载过程,本发明实施例提供的文件下载方法可以为各个文件块提供性能相对较高的目标存储节点,从而提高文件块的下载效率和下载质量。
通过上述迭代过程得到全局最优解的过程可以通过结合排队论模型及李雅普诺夫漂移函数进行证明,理论证明相关的模型参数定义如下:
N:每个文件块对应存储节点的总数,或者同一文件块最大并发的下载请求量
δi:第i个请求节点上,下载请求发出速率的均值
λj:第j个存储节点上,下载请求到达速率的均值
μj:第j个存储节点,下载速率的均值
qk(t):t时刻,第k个存储节点在本发明实施例提供的文件下载方法下所积压的请求量
q*(t):t时刻,全局最优存储节点的请求积压量
K:同一时刻,每个存储节点最大允许并发到达的下载请求数目
本模型以整体文件的下载时间为性能指标,比较全局与局部性能最优存储节点,其中,全局最优存储节点是指目标文件块对应的全部存储节点中性能最优的存储节点;局部最优性能存储节点是指目标文件块对应的目标存储节点。考察收敛速度最慢的情况:n=m=1,其中,m为预选存储节点的数量,n为下载目标文件块后记录的性能最优存储节点的数量,其中,当n=1时,请求节点记录的局部最优性能存储节点就是目标存储节点,若此时文件下载方法收敛,则其它收敛速度更快的文件下载方法也是收敛的。假设每个时间点,每个存储节点最多处理请求缓存队列中的一个文件块对应的下载请求。根据排队论模型的结果,对于任一时刻,第i个存储节点有文件块下载请求到达的概率为:
同理,第j个存储节点有下载请求被处理的概率为:
同理,任意时刻,第j个存储节点有下载请求被成功传送过来的概率为:
假设本发明实施例中不引入上一轮性能最优的存储节点的记录(n=0),则调度策略不收敛,具体证明过程如下:
考察第N个存储节点:对于任意一个请求节点,下载请求被调度到第N个存储节点的最大概率为:m/N。因此,第N个存储节点最大可能的请求到达速率为:
对于余下的N-1个存储节点,下载请求到达速率和的最小值为:
如果下式成立,根据排队论模型的结论,可以证明整个调度方案是不收敛的:
而下载请求产生和处理速率仅仅满足:
具体的均值取值分布则可以使不均匀的,因此可以找到一组输入输出速率的分布满足:
显然,满足(1)的下载请求到达和处理均值速率分布很容易构造出来,此时,前N-1个存储节点组成的子系统是不稳定的。因此整个系统也是不稳定的。所以在n=0的情况下,是不收敛的。
下面,继续证明引入了上一文件块下载操作的性能最优的存储节点的记录(n>0),整个随机下载策略是收敛于全局最优存储节点的:
构建二次李雅普诺夫函数V,通过证明该李雅普诺夫函数存在一个负期望的单步漂移,说明算法的收敛性。李雅普诺夫函数构造如下:
下证明存在ε>0,k>0使得:
E[V(t+1)-V(t)|V(t)]≤εV(t)+k
由于同一时刻每个存储节点最多容纳K个同时调度过来的下载请求,因此有:
同时,每个存储节点同一时刻最多处理一个下载请求,因此有:
q*(t)-q*(t+1)≤1 (3)
结合(2)(3)有:
考察李雅普诺夫函数的第一项,令:
有(下载请求被调度到存储节点i的概率,乘以队列差平方):
将(4)代入(5),对李雅普诺夫函数进行放缩,得到:
李雅普诺夫函数第一项的上界如下:
根据排队模型的推论有:
将(8)代入(7),进一步放缩李雅普诺夫函数,得到:
进一步整理,即有:
结合(6)与(9)可得:
接下来,定义:
则有:
由于q*(t)是全局最优存储节点,因此:q*(t)≤qi(t),进一步有:
假设n=m=1时,本发明方案下的目标存储节点没有收敛到全局最优存储节点,则必然存在t,使得当t足够大时,李雅普诺夫函数V(t)的取值极大。由于V(t)=V1(t)+V2(t),则V1(t)和V2(t)至少有一个取值极大。
因此必然存在某一个值t1,使得:
此时,将(11),(12),(13)代入(10),可得:
即存在ε>0,使得:
E[V(t+1)-V(t)|V(t)]<-ε
李雅普诺夫函数存在了一步负期望的漂移,即局部最优存储节点下载策略收敛于全局最优存储节点,与假设矛盾。因此V1(t)不会出现取值极大的情况。
假设是V2(t)出现了取值极大的情况,则说明必然存在某一个值t2,t≥t2时全队列负载状况严重,qi(t)取值极大,且在不断增大。假设此时全局最优解q*(t)取值不大,即q*(t)与qi(t)取值相差极大。由于c的取值为一个定值,则有:
同时根据完全平方式的性质,有:
将(12),(14),(15)代入(10)有:
即存在ε>0,使得:
E[V(t+1)-V(t)|V(t)]<-ε
李雅普诺夫函数存在了一步负期望的漂移,与假设矛盾。因此V2(t)不会出现取值极大的情况。
假设此时局最优存储节点q*(t)也取值极大,q*(t)与qi(t)取值相差不大。此时虽然(15)式不会成立,但必然存在t≥t3使得:
将(11),(15),(16)代入(10)可得:
即存在ε>0,使得:
E[V(t+1)-V(t)|V(t)]<-ε
李雅普诺夫函数存在了一步负期望的漂移,与假设矛盾。因此V2(t)不会出现取值极大的情况。
至此,我们排除了所有李雅普诺夫函数不收敛的情况,因此可以论证n=m=1时本方案下的局部最优存储节点是收敛于全局最优存储节点的。更进一步,对于收敛速度更快的(n,m)策略(n>1或m>1)实施例,则收敛性更强。因此本发明实施例中对于每一次文件块下载时所选取的目标存储节点是收敛于全局最优存储节点的,即收敛于全局最优解。
为了进一步说明本发明实施例的技术效果,仿真一个由50个存储节点组成的P2P存储网络,下载文件中前100个文件块的下载场景。我们分别选择全局最优存储节点(忽略性能测量的时间开销)和基于本发明实施例提供的文件下载方法中选择目标存储节点(以n=1,m=2为例),考察本发明所选择的目标存储节点下载时延和全局最优存储节点下载时延的变化,具体如图9所示。可以看到,在下载到大约第60个文件块后,本发明选择的目标存储节点和全局最优存储节点已经完全的重合。因此,本发明实施例所选择的目标存储节点可以收敛至全局最优存储节点。
通过上述验证,进一步说明了本发明实施例所提供的文件下载方法通过综合考虑前一文件下载操作选取出的性能最优的存储节点,和本次文件下载操作中新加入的预选存储节点的性能,选择最终用于下载目标文件块的目标存储节点。通过迭代过程,各个文件块所对应的目标存储节点会越来越接近存储有目标文件块的全部存储节点中性能最优的全局最优存储节点,即得到全局最优解。可见,对于整个文件的下载过程,本发明实施例提供的文件下载方法可以为各个文件块提供性能相对较高的目标存储节点,从而提高文件块的下载效率和下载质量。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (15)
1.一种文件块下载方法,其特征在于,应用于P2P网络,所述P2P网络包括请求节点和索引节点,所述方法包括:
所述索引节点接收所述请求节点发送的下载请求,所述下载请求用于下载目标文件块;
所述索引节点根据所述下载请求获取子分布式散列表DHT中与所述目标文件块对应的全部存储节点,所述子DHT为所述P2P网络对应的DHT中存储于所述索引节点的部分DHT;
所述索引节点从所述全部存储节点中随机选取多个预选存储节点;
所述索引节点将所述多个预选存储节点发送至所述请求节点;
所述请求节点接收所述多个预选存储节点;
所述请求节点获取存储节点列表,所述存储节点列表中的存储节点用于与所述预选存储节点共同构成存储节点集合,其中,所述存储节点列表中的存储节点为上一文件块下载操作后选取的预设性能指标符合预设性能指标范围,且存储有所述目标文件块的存储节点;
所述请求节点基于所述存储节点集合中各存储节点的预设性能指标的测试结果,下载所述目标文件块;
在所述请求节点下载所述目标文件块之后,还包括:
从所述存储节点集合中选取存储节点,所选取的存储节点为所述存储节点集合中预设性能指标的排名大于或者等于预设排名的存储节点;
利用所述选取的存储节点更新所述存储节点列表中的存储节点。
2.一种文件块下载方法,其特征在于,应用于P2P网络中的请求节点,所述方法包括:
接收索引节点发送的预选存储节点,所述预选存储节点为从子分布式散列表DHT中与目标文件块对应的全部存储节点中随机选取的存储节点,所述子DHT为所述P2P网络对应的DHT中存储于所述索引节点的部分DHT;
获取所述请求节点的存储节点列表,所述存储节点列表中的存储节点用于与所述预选存储节点共同构成存储节点集合,其中,所述存储节点列表中的存储节点为上一文件块下载操作后选取的预设性能指标符合预设性能指标范围,且存储有所述目标文件块的存储节点;
基于所述存储节点集合中各存储节点的预设性能指标的测试结果,下载所述目标文件块;
在下载所述目标文件块之后,还包括:
从所述存储节点集合中选取存储节点,所选取的存储节点为所述存储节点集合中预设性能指标的排名大于或者等于预设排名的存储节点;
利用所述选取的存储节点更新所述存储节点列表中的存储节点。
3.根据权利要求2所述的方法,其特征在于,在所述获取所述请求节点的存储节点列表之前,所述方法还包括:
检测是否存在所述存储节点列表;
如果不存在所述存储节点列表,则由所述预选存储节点构成存储节点集合。
4.根据权利要求2或3所述的方法,其特征在于,所述基于所述存储节点集合中各存储节点的预设性能指标的测试结果,下载所述目标文件块包括:
测试所述存储节点集合中各存储节点的预设性能指标;
获取至少一个测试结果符合预设性能指标阈值的目标存储节点的节点信息;
根据所述目标存储节点的节点信息下载所述目标文件块。
5.根据权利要求4所述的方法,其特征在于,如果获取多个测试结果符合预设性能指标阈值的目标存储节点的节点信息,则根据所述预选存储节点的数量以及所述存储节点列表中存储节点的数量确定所述目标存储节点的数量。
6.根据权利要求2或3所述的方法,其特征在于,所述预设性能指标为传输时延、往返时延、可用带宽中的一种或者几种的组合。
7.一种请求节点,其特征在于,所述请求节点包括:接收器、处理器、存储器和发送器,所述接收器、所述处理器、所述存储器和所述发送器耦合;所述处理器调用所述存储器中的程序指令,以使所述请求节点执行如下方法:
接收索引节点发送的预选存储节点,所述预选存储节点为从子分布式散列表DHT中与目标文件块对应的全部存储节点中随机选取的存储节点,所述子DHT为所述P2P网络对应的DHT中存储于所述索引节点的部分DHT;
获取所述请求节点的存储节点列表,所述存储节点列表中的存储节点用于与所述预选存储节点共同构成存储节点集合,其中,所述存储节点列表中的存储节点为上一文件块下载操作后选取的预设性能指标符合预设性能指标范围,且存储有所述目标文件块的存储节点;
基于所述存储节点集合中各存储节点的预设性能指标的测试结果,下载所述目标文件块;
在下载所述目标文件块之后,从所述存储节点集合中选取存储节点,所选取的存储节点为所述存储节点集合中预设性能指标的排名大于或者等于预设排名的存储节点;
利用所述选取的存储节点更新所述存储节点列表中的存储节点。
8.根据权利要求7所述的请求节点,其特征在于,所述请求节点所执行的方法还包括:
在所述获取所述请求节点的存储节点列表之前,检测是否存在所述存储节点列表;
如果不存在所述存储节点列表,则由所述预选存储节点构成存储节点集合。
9.根据权利要求7或8所述的请求节点,其特征在于,所述请求节点所执行的方法还包括:
测试所述存储节点集合中各存储节点的预设性能指标;
获取至少一个测试结果符合预设性能指标阈值的目标存储节点的节点信息;
根据所述目标存储节点的节点信息下载所述目标文件块。
10.根据权利要求9所述的请求节点,其特征在于,所述请求节点所执行的方法还包括:
如果获取多个测试结果符合预设性能指标阈值的目标存储节点的节点信息,则根据所述预选存储节点的数量以及所述存储节点列表中存储节点的数量确定所述目标存储节点的数量。
11.根据权利要求7或8所述的请求节点,其特征在于,所述预设性能指标为传输时延、往返时延、可用带宽中的一种或者几种的组合。
12.一种P2P网络,其特征在于,包括至少一个请求节点和至少一个索引节点,其中,所述索引节点用于接收所述请求节点发送的下载请求,所述下载请求用于下载目标文件块;
根据所述下载请求获取子分布式散列表DHT中与所述目标文件块对应的全部存储节点,所述子DHT为所述P2P网络对应的DHT中存储于所述索引节点的部分DHT;
从所述全部存储节点中随机选取多个预选存储节点;
将所述多个预选存储节点发送至所述请求节点;
所述请求节点用于执行如权利要求2-6中任一所述的方法。
13.根据权利要求12所述的P2P网络,其特征在于,如果所述索引节点不存在与所述目标文件块对应的存储节点,则所述索引节点还用于将所述下载请求发送至相邻索引节点,并由所述相邻索引节点获取与所述目标文件块对应的全部存储节点,其中,所述相邻索引节点为所述P2P网络中与所述索引节点具有指定算法关系的索引节点。
14.根据权利要求12或13所述的P2P网络,其特征在于,所述索引节点还用于:
生成局部DHT,所述局部DHT包括所述多个预选存储节点;
将所述局部DHT发送至所述请求节点。
15.根据权利要求14所述的P2P网络,其特征在于,所述索引节点还用于:
在所述将所述局部DHT发送至所述请求节点之后,清空所述局部DHT中的存储节点。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/106280 WO2022021357A1 (zh) | 2020-07-31 | 2020-07-31 | 一种文件块下载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114375565A CN114375565A (zh) | 2022-04-19 |
CN114375565B true CN114375565B (zh) | 2023-06-06 |
Family
ID=80036892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080024741.7A Active CN114375565B (zh) | 2020-07-31 | 2020-07-31 | 一种文件块下载方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114375565B (zh) |
WO (1) | WO2022021357A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553885A (zh) * | 2022-03-02 | 2022-05-27 | 上海弘玑信息技术有限公司 | 基于dht网络的存储方法及装置、电子设备、存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0303192D0 (en) * | 2003-02-12 | 2003-03-19 | Saviso Group Ltd | Methods and apparatus for traffic management in peer-to-peer networks |
US20060212584A1 (en) * | 2005-03-15 | 2006-09-21 | Qian Xiang Shi Ji (Beijing) Technology Development Co. Ltd. | Method and system for accelerating downloading of web page content by a peer-to-peer network |
BR112012010501A2 (pt) * | 2009-11-03 | 2016-03-15 | Telecom Italia Spa | método para permitir compartilhamento de arquivos de conteúdo entre nós de uma rede não hierárquica, rede não hierárquica, e, software de cliente |
CN101719936A (zh) * | 2009-12-09 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 提供文件下载服务的方法、装置及缓存系统 |
CN102195999A (zh) * | 2010-03-11 | 2011-09-21 | 中国移动通信集团公司 | 对等网络系统、获取资源的方法及相关装置 |
US20110282883A1 (en) * | 2010-03-26 | 2011-11-17 | Nec (China) Co., Ltd. | Indexing server and method therefor |
US20120011200A1 (en) * | 2010-07-06 | 2012-01-12 | Roxbeam Media Network Corporation | Method and apparatus for data storage in a peer-to-peer network |
CN102833293A (zh) * | 2011-06-17 | 2012-12-19 | 腾讯科技(深圳)有限公司 | P2sp网络中资源下载的方法及客户端 |
CN103269351A (zh) * | 2012-12-07 | 2013-08-28 | 北京奇虎科技有限公司 | 一种文件下载方法和装置 |
CN103248695A (zh) * | 2013-05-07 | 2013-08-14 | 北京奇虎科技有限公司 | 文件下载方法、系统及cdn中的服务器节点 |
CN108462755B (zh) * | 2018-03-28 | 2020-06-05 | 网宿科技股份有限公司 | 一种下载数据资源的方法和系统 |
CN109347893A (zh) * | 2018-08-09 | 2019-02-15 | 玄章技术有限公司 | 一种区块链网络的文件存储方法及装置 |
CN109376122A (zh) * | 2018-09-25 | 2019-02-22 | 深圳市元征科技股份有限公司 | 一种文件管理方法、系统及区块链节点设备和存储介质 |
CN109981751B (zh) * | 2019-03-06 | 2022-06-17 | 珠海金山网络游戏科技有限公司 | 一种文件传输方法及系统、计算机设备及存储介质 |
-
2020
- 2020-07-31 CN CN202080024741.7A patent/CN114375565B/zh active Active
- 2020-07-31 WO PCT/CN2020/106280 patent/WO2022021357A1/zh active Application Filing
Non-Patent Citations (2)
Title |
---|
侯得果 ; 庄雷 ; .基于随机性和文件块相似性的结点选择策略.计算机工程与设计.2010,(第06期),全文. * |
李治军 ; 姜守旭 ; .一种缩短下载时间优先的自适应BitTorrent激励协议.计算机学报.2012,(第07期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
WO2022021357A1 (zh) | 2022-02-03 |
CN114375565A (zh) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010188B1 (en) | Simulated data object storage using on-demand computation of data objects | |
US9910888B2 (en) | Map-reduce job virtualization | |
US10055262B1 (en) | Distributed load balancing with imperfect workload information | |
EP2721504B1 (en) | File processing method, system and server-clustered system for cloud storage | |
US10789085B2 (en) | Selectively providing virtual machine through actual measurement of efficiency of power usage | |
US8495013B2 (en) | Distributed storage system and method for storing objects based on locations | |
US9992274B2 (en) | Parallel I/O write processing for use in clustered file systems having cache storage | |
Abad et al. | Package-aware scheduling of faas functions | |
CN110798517B (zh) | 去中心化集群负载均衡方法、系统、移动终端及存储介质 | |
CN103391312B (zh) | 资源离线下载方法及装置 | |
Hassanzadeh-Nazarabadi et al. | Decentralized utility-and locality-aware replication for heterogeneous DHT-based P2P cloud storage systems | |
WO2016169237A1 (zh) | 数据处理方法及装置 | |
US20220329651A1 (en) | Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same | |
CN114375565B (zh) | 一种文件块下载方法及装置 | |
CN113676514A (zh) | 一种文件回源方法及装置 | |
CN111008873B (zh) | 一种用户确定方法、装置、电子设备及存储介质 | |
CN108304555A (zh) | 分布式地图数据处理方法 | |
CN114020218B (zh) | 混合重复数据删除调度方法及系统 | |
CN111444148A (zh) | 基于MapReduce的数据传输方法和装置 | |
CN113037791B (zh) | 运维方法和系统、计算机可读存储介质 | |
CN111857548B (zh) | 数据读取方法、装置及系统 | |
US20210185119A1 (en) | A Decentralized Load-Balancing Method for Resource/Traffic Distribution | |
Lu et al. | An asynchronous consistency algorithm in smart manufacturing cloud data centers | |
JP5690287B2 (ja) | 負荷分散プログラムおよび負荷分散装置 | |
CN114945014A (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 |