CN104994143B - 文件下载方法和装置 - Google Patents
文件下载方法和装置 Download PDFInfo
- Publication number
- CN104994143B CN104994143B CN201510345944.7A CN201510345944A CN104994143B CN 104994143 B CN104994143 B CN 104994143B CN 201510345944 A CN201510345944 A CN 201510345944A CN 104994143 B CN104994143 B CN 104994143B
- Authority
- CN
- China
- Prior art keywords
- downloading task
- task group
- group
- paper interval
- memory space
- 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
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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开是关于一种文件下载方法和装置,该方法包括:接收针对目标文件的下载请求,所述下载请求中包括文件区间标识和客户端标识,其中,所述文件区间标识指示了所述客户端标识对应的客户端需要下载的文件区间范围;确定所述文件区间标识对应的下载任务组,所述下载任务组对应所述目标文件的一段存储空间;根据各下载任务组对应的存储空间的先后位置,确定所述下载任务组的处理顺序,按照所述处理顺序获取所述下载任务组中所述文件区间标识对应的数据,并将所述数据发送给所述客户端标识指示的客户端,从而能够大大降低对磁道寻址的随机性,有利于提高文件下载的处理效率。
Description
技术领域
本公开涉及通信技术领域,尤其涉及一种文件下载方法和装置。
背景技术
互联网的快速发展已经对人们的生活产生了不可忽略的影响,人们可以通过互联网请求下载自身所需的各种文献、音频、视频等数据。当用户通过客户端从服务器上请求下载某文件时,该文件比如可以是文本文件、视频文件、音频文件等等,服务器就会读取磁盘,获取该文件并反馈给用户。
为了避免由于网络突然中断等意外情况使得用户需要重新下载完整的文件,相关技术中采用了断点续传策略,通过断点续传策略,用户可以从服务器中请求下载文件的某一个区间或称分片(range)的数据内容。比如说一个名称为file.mpg的文件,文件大小为2G,一个用户请求的是1M-2M区间的数据内容,另外一个用户请求的是1.7G-1.71G区间的数据内容,那么,磁盘的磁头一会寻址到1M位置处的磁道,一会又寻址到1.7G位置处的磁道,如果有更多的用户请求该文件的不同区间部分的数据,此时磁头将会随着用户先后请求下载不同区间的数据而随之不断进行对应磁道的寻道。
发明内容
为克服相关技术中存在的问题,本公开提供一种文件下载方法和装置。
根据本公开实施例的第一方面,提供一种文件下载方法,包括:
接收针对目标文件的下载请求,所述下载请求中包括文件区间标识和客户端标识,其中,所述文件区间标识指示了所述客户端标识对应的客户端需要下载的文件区间范围;
确定所述文件区间标识对应的下载任务组,所述下载任务组对应所述目标文件的一段存储空间;
根据各下载任务组对应的存储空间的先后位置,确定所述下载任务组的处理顺序,按照所述处理顺序获取所述下载任务组中所述文件区间标识对应的数据,并将所述数据发送给所述客户端标识指示的客户端。
在第一方面的第一种可能的实现方式中,若所述下载请求的个数为至少两个,则所述确定所述文件区间标识对应的下载任务组,包括:
确定各所述下载请求中的文件区间标识分别对应的下载任务组;
所述根据各下载任务组对应的存储空间的先后位置,确定所述下载任务组的处理顺序,按照所述处理顺序获取所述下载任务组中所述文件区间标识对应的数据,并将所述数据发送给所述客户端标识指示的客户端,包括:
若各所述下载请求中的文件区间标识分别对应的下载任务组为相同的第一下载任务组,则获取所述第一下载任务组中的各文件区间标识对应的数据,并将所述数据发送给对应的客户端标识指示的客户端;
或者,
若各所述下载请求中的文件区间标识分别对应的下载任务组为不同的各第二下载任务组,则根据所述各第二下载任务组分别对应的存储空间先后位置,确定所述各第二下载任务组的处理顺序,并按照所述处理顺序依次获取所述各第二下载任务组中的各文件区间标识对应的数据,并将所述数据发送给对应的客户端标识指示的客户端。
在第一方面的第二种可能的实现方式中,所述方法还包括:
按照存储所述目标文件的存储空间先后位置,对所述目标文件进行固定区间大小的划分,确定所述各下载任务组;
或者,
按照存储所述目标文件的存储空间先后位置,根据所述目标文件的各历史文件区间的下载频度,对所述目标文件进行划分,确定所述各下载任务组。
结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:分别根据所述各第二下载任务组内所有下载请求的接收时间,确定所述各第二下载任务组的时间权重,每个所述第二下载任务组的时间权重指示了位于该第二下载任务组中的下载请求的等待时延程度;
根据所述各第二下载任务组的时间权重,调整所述各第二下载任务组的处理顺序。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述根据所述各第二下载任务组的时间权重,调整所述各第二下载任务组的处理顺序,包括:
若所述各第二下载任务组的时间权重中的最大时间权重与最小时间权重间的差值大于或等于预设阈值,则确定所述最大时间权重所对应的第二下载任务组为优先处理组;
若第一次优先处理组中包含的第二下载任务组的个数大于第二次优先处理组中包含的第二下载任务组的个数,则确定按照存储空间位置从后到前的顺序先处理所述第一次优先处理组中的各第二下载任务组,再按照存储空间位置从前到后的顺序处理所述第二次优先处理组中的各第二下载任务组;
或者,
若所述第一次优先处理组中包含的第二下载任务组的个数小于所述第二次优先处理组中包含的第二下载任务组的个数,则确定按照存储空间位置从前到后的顺序先处理所述第二次优先处理组中的各第二下载任务组,再按照存储空间位置从前到后的顺序处理所述第一次优先处理组中的各第二下载任务组;
其中,所述第一次优先处理组中包括存储空间位于所述最大时间权重所对应的第二下载任务组之前的各第二下载任务组,所述第二次优先处理组中包括存储空间位于所述最大时间权重所对应的第二下载任务组之后的各第二下载任务组。
结合第一方面、第一方面的第一种、第二种、第三种或第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述文件区间标识包括文件区间起始位置和文件区间的区间长度;
所述确定所述文件区间标识对应的下载任务组,包括:
根据所述文件区间起始位置所位于的下载任务组,确定所述文件区间标识的所属下载任务组;
所述方法还包括:
判断所述文件区间的终止位置是否超过所属下载任务组对应的存储空间终止位置,所述文件区间的终止位置根据文件区间起始位置和区间长度确定;
若所述文件区间的终止位置超过所属下载任务组对应的存储空间终止位置,则重新确定所述文件区间标识归属于所述文件区间的终止位置所位于的下载任务组。
根据本公开实施例的第二方面,提供一种文件下载装置,包括:
接收模块,被配置为接收针对目标文件的下载请求,所述下载请求中包括文件区间标识和客户端标识,其中,所述文件区间标识指示了所述客户端标识对应的客户端需要下载的文件区间范围;
第一确定模块,被配置为确定所述文件区间标识对应的下载任务组,所述下载任务组对应所述目标文件的一段存储空间;
处理模块,被配置为根据各下载任务组对应的存储空间的先后位置,确定所述下载任务组的处理顺序,按照所述处理顺序获取所述下载任务组中所述文件区间标识对应的数据,并将所述数据发送给所述客户端标识指示的客户端。
在第二方面的第一种可能的实现方式中,所述第一确定模块中包括:
第一确定子模块,被配置为在所述下载请求的个数为至少两个时,确定各所述下载请求中的文件区间标识分别对应的下载任务组;
所述处理模块中包括:
第一处理子模块,被配置为在各所述下载请求中的文件区间标识分别对应的下载任务组为相同的第一下载任务组时,获取所述第一下载任务组中的各文件区间标识对应的数据,并将所述数据发送给对应的客户端标识指示的客户端;
或者,所述处理模块中包括:
第二处理子模块,被配置为在各所述下载请求中的文件区间标识分别对应的下载任务组为不同的各第二下载任务组时,根据所述各第二下载任务组分别对应的存储空间先后位置,确定所述各第二下载任务组的处理顺序,并按照所述处理顺序依次获取所述各第二下载任务组中的各文件区间标识对应的数据,并将所述数据发送给对应的客户端标识指示的客户端。
在第二方面的第二种可能的实现方式中,所述装置还包括:
第二确定模块,被配置为按照存储所述目标文件的存储空间先后位置,对所述目标文件进行固定区间大小的划分,确定所述各下载任务组;
或者,所述装置还包括:
第三确定模块,被配置为按照存储所述目标文件的存储空间先后位置,根据所述目标文件的各历史文件区间的下载频度,对所述目标文件进行划分,确定所述各下载任务组。
结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述装置还包括:
第四确定模块,被配置为分别根据所述各第二下载任务组内所有下载请求的接收时间,确定所述各第二下载任务组的时间权重,每个所述第二下载任务组的时间权重指示了位于该第二下载任务组中的下载请求的等待时延程度;
调整模块,被配置为根据所述各第二下载任务组的时间权重,调整所述各第二下载任务组的处理顺序。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述调整模块中包括:
第二确定子模块,被配置为在所述各第二下载任务组的时间权重中的最大时间权重与最小时间权重间的差值大于或等于预设阈值时,确定所述最大时间权重所对应的下载任务组为优先处理组;
所述调整模块中还包括:
第三确定子模块,被配置为在第一次优先处理组中包含的第二下载任务组的个数大于第二次优先处理组中包含的第二下载任务组的个数时,确定按照存储空间位置从后到前的顺序先处理所述第一次优先处理组中的各第二下载任务组,再按照存储空间位置从前到后的顺序处理所述第二次优先处理组中的各第二下载任务组;
或者,所述调整模块中还包括:
第四确定子模块,被配置为在所述第一次优先处理组中包含的第二下载任务组的个数小于所述第二次优先处理组中包含的第二下载任务组的个数时,确定按照存储空间位置从前到后的顺序先处理所述第二次优先处理组中的各第二下载任务组,再按照存储空间位置从前到后的顺序处理所述第一次优先处理组中的各第二下载任务组;
其中,所述第一次优先处理组中包括存储空间位于所述最大时间权重所对应的第二下载任务组之前的各第二下载任务组,所述第二次优先处理组中包括存储空间位于所述最大时间权重所对应的第二下载任务组之后的各第二下载任务组。
结合第二方面、第二方面的第一种、第二种、第三种或第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述文件区间标识包括文件区间起始位置和文件区间的区间长度;
所述第一确定模块中还包括:
第五确定子模块,被配置为根据所述文件区间起始位置所位于的下载任务组,确定所述文件区间标识的所属下载任务组;
所述第一确定模块中还包括:
判断子模块,被配置为判断所述文件区间的终止位置是否超过所属下载任务组对应的存储空间终止位置,所述文件区间的终止位置根据文件区间起始位置和区间长度确定;
第六确定子模块,被配置为在所述文件区间的终止位置超过所属下载任务组对应的存储空间终止位置时,重新确定所述文件区间标识归属于所述文件区间的终止位置所位于的下载任务组。
根据本公开实施例的第三方面,提供一种文件下载装置,包括:
处理器;
被配置为存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收针对目标文件的下载请求,所述下载请求中包括文件区间标识和客户端标识,其中,所述文件区间标识指示了所述客户端标识对应的客户端需要下载的文件区间范围;
确定所述文件区间标识对应的下载任务组,所述下载任务组对应所述目标文件的一段存储空间;
根据各下载任务组对应的存储空间的先后位置,确定所述下载任务组的处理顺序,按照所述处理顺序获取所述下载任务组中所述文件区间标识对应的数据,并将所述数据发送给所述客户端标识指示的客户端。
本公开的实施例提供的技术方案可以包括以下有益效果:
通过预先创建与目标文件不同文件区间的存储空间对应的各下载任务组,从而,在服务器接收到针对该目标文件的下载请求时,根据下载请求所要请求下载的文件区间标识与各下载任务组对应的存储空间的所属对应关系,确定该下载请求所对应的下载任务组。进而,基于各下载任务组对应的存储空间先后位置顺序,确定该下载请求所属下载任务组的处理顺序,按照该处理顺序读取获得该下载请求中文件区间标识对应的数据并发送给对应的客户端。由于各下载任务组的处理顺序是根据各下载任务组对应的存储空间位置的先后顺序来确定的,因此,基于各下载任务组的先后处理顺序,进行归属于各下载任务组的下载请求的对应数据读取处理,能够大大降低对磁道寻址的随机性,有利于提高文件下载的处理效率。
另外,在接收到的下载请求的个数为多个的情况下,在分别确定各下载请求中文件区间标识所对应的下载任务组之后,进一步地通过结合接收到的每个下载请求的接收时间确定每个下载任务组的时间权重。从而,基于该时间权重以及各下载任务组对应的存储空间先后位置来调整各下载任务组的处理顺序。能够兼顾客户端等待时间与磁道寻道连续性,在提高文件下载处理效率的同时,可以有效降低等待时间较长客户端的等待时延。而且,在根据文件区间标识的起始位置确定了该文件区间标识所对应的下载任务组之后,若该文件区间标识存在跨组的情况,还可以根据其终止位置重新确定所对应的下载任务组,从而能够获得更佳的磁道寻址的连续性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种文件下载方法实施例一的流程图;
图2是本公开一示例性实施例示出的应用场景示意图;
图3是根据一示例性实施例示出的一种文件下载方法实施例二的流程图;
图4是根据一示例性实施例示出的一种文件下载方法的实施例三的流程图;
图5是根据一示例性实施例示出的一种文件下载方法的实施例四的流程图;
图6是根据一示例性实施例示出的一种文件下载装置实施例一的框图;
图7是根据一示例性实施例示出的一种文件下载装置实施例二的框图;
图8是根据一示例性实施例示出的一种文件下载装置实施例三的框图;
图9是根据一示例性实施例示出的一种文件下载装置实施例四的框图;
图10是根据一示例性实施例示出的一种文件下载装置实施例五的框图;
图11是根据一示例性实施例示出的一种文件下载装置的框图;
图12是根据一示例性实施例示出的一种文件下载装置的框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
首先对本公开实施例所涉及的几个名词进行解释:
服务器:指一个管理资源并为用户提供服务的计算机软件,可以提供各种类型的应用服务,比如视频、音频、文件等。客户端通过相关的传输协议与服务器交互,可以从服务器中请求获得相应的应用服务。
断点续传:文件传输协议(File Transfer Protocol,简称FTP)客户端软件断点续传指的是在下载或上传时,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传或下载,如果碰到网络故障,可以从已经上传或下载的部分开始继续上传下载以后未上传下载的部分,而没有必要从头开始上传下载。
文件区间:在FTP协议中,通过在下载或上传请求中携带range(start,length)来实现断点续传,其中,range(start,length)即为文件区间的表示方式,start为某文件区间的起始位置,length为该区间的长度。
图1是根据一示例性实施例示出的一种文件下载方法实施例一的流程图,如图1所示,本实施例涉及的文件下载方法可以用于一服务器中,具体可以由设置在该服务器中的一文件下载装置来执行,该服务器中存储有供用户下载的各文件,该文件可以是文本文件,也可以是视频文件、音频文件等,具体类型不做具体限制。该文件下载方法包括以下步骤:
在步骤S101中,接收针对目标文件的下载请求,所述下载请求中包括文件区间标识和客户端标识。
其中,所述文件区间标识指示了所述客户端标识对应的客户端需要下载的文件区间范围。
在步骤S102中,确定所述文件区间标识对应的下载任务组。
其中,所述下载任务组对应所述目标文件的一段存储空间。
在步骤S103中,根据各下载任务组对应的存储空间的先后位置,确定所述下载任务组的处理顺序,按照所述处理顺序获取所述下载任务组中所述文件区间标识对应的数据,并将所述数据发送给所述客户端标识指示的客户端。
在具体介绍本实施例前,首先结合图2介绍本公开各实施例可以适用的应用场景,图2是本公开一示例性实施例示出的应用场景示意图,如图2所示,假设各客户端比如图中的C1~C4,通过向服务器发送下载请求来请求下载针对目标文件的不同文件区间的数据内容。客户端与服务器间可以基于FTP协议进行通信,且支持断点续传功能。假设目标文件为file.txt,大小为1024Kbit(简写为1024K),并且,假设按照目标文件的不同文件区间在服务器中存储空间的先后位置,目标文件被切割为如图2所示的分别与每个下载任务组对应的四个预设文件区间,每个下载任务组对应的存储空间用于存储对应的一个预设文件区间的数据。
以图2为例,为描述方便,假设对目标文件划分为四个预设文件区间,这四个预设文件区间的起始位置依次递增,且这四个预设文件区间的存储空间的位置也依次相邻。其中,第一个下载任务组即组1对应于存储预设文件区间(0K,256K)的存储空间,其中,逗号前位对应区间的起始位置,逗号后为区间长度,相应的,如图2所示,组2对应存储预设文件区间(256K,256K)的存储空间,即从第256K到第511K,组3对应存储预设文件区间(512K,256K)的存储空间,即从第512K到第767K,组4对应存储预设文件区间(768K,256K)的存储空间,即从第768K到第1024K。
值得说明的是:本公开实施例中,由于目标文件在磁盘中的存储空间可能连续也可能非连续,可以按照存储目标文件的存储空间先后位置,将目标文件划分为固定区间大小的各下载任务组,即每个下载任务组对应存储一固定文件区间的存储空间。简单来说,针对目标文件存储空间连续的情况,比如可以将目标文件进行相等预设文件区间大小的依次划分,从而,每个下载任务组依次对应一个预设文件区间的存储空间,该存储空间可以如图2所示以该预设文件区间的起始位置和区间长度表征。具体来说,针对目标文件存储空间连续的情况,如图2所示,比如,可以将目标文件依次划分为大小固定比如均为256K,进而每个256K的存储空间按存储空间先后位置依次确定每个下载任务组所对应的存储空间。针对目标文件存储空间不连续的情况,此时,可能是目标文件的一部分存储在某存储空间中,另一部分存储在另一存储空间中,可以按照各部分存储空间先后位置,对各部分存储空间内的部分目标文件进行固定区间大小的划分,按照划分后的每个预设文件区间对应的存储空间的先后位置,确定依次对应的每个下载任务组。
另外,也可以根据针对该目标文件的历史下载情况即根据历史的对该目标文件各个部分的下载频度,以及目标文件的存储空间先后位置来确定各下载任务组。具体来说,可以先根据历史的对该目标文件各个部分的下载频度来对该目标文件进行预设文件区间的划分,这样的划分得到的每个预设文件区间大小不一定相等,比如可以将下载频度大于一定阈值的相对集中的区间范围划定为一个预设文件区间,下载频度小于一定阈值的一定连续范围划分为另一个预设文件区间或基于区间大小进行两个预设文件区间的细粒度划分。进而,按照下载频度划分后的每个预设文件区间的存储空间先后位置关系,依次确定各存储空间对应的下载任务组。
下面,结合图1所示实施例和图2所示应用场景对本公开提供的文件下载方法进行具体说明。
服务器接收针对目标文件的下载请求,下载请求中包括文件区间标识和客户端标识,其中,所述文件区间标识指示了所述客户端标识对应的客户端需要下载的文件区间范围。
具体来说,服务器在同一时间接收到的下载请求的个数可能是多个,也可能是一个,在同一时间接收到的下载请求个数为多个的情况下,每个下载请求中均携带有该下载请求所要请求下载的文件区间标识以及发送该下载请求的客户端标识。
另外,针对上述同一时间服务器接收到的下载请求的个数可能是一个,也可能是多个的不确定情况,本公开实施例中,可选的,为了更好地实现降低磁道寻道的随机性,可以设置一定的处理时延,也就是说以预设时间长度为间隔,周期性地处理在每个预设时间内接收到的各下载请求。
当服务器每接收到一个客户端发送的携带有待下载的文件区间标识的下载请求后,并非即刻从存储目标文件的磁盘中读取相应的数据内容,而是进行如下的处理:
首先,确定该文件区间标识对应的下载任务组。进而,可以将该下载请求中的该文件区间标识和客户端标识关联存储到对应的下载任务组中。
值得说明的是,各下载任务组的具体实现形式比如可以是队列形式。另外,在上述可选的可以周期性处理预设时间内接收到的各下载请求的情况下,服务器每接收到一个下载请求,便确定该请求中文件区间标识所属的下载任务队列,进而将该文件区间标识和对应的客户端标识放入该所属队列中排队,等到上述预设时间结束中,对每个下载任务队列按一定顺序依次处理,具体的处理过程将在后面详细说明。
本实施例中,在确定了当前下载请求中的文件区间标识对应的下载任务组之后,根据各下载任务组对应的存储空间的先后位置,确定该下载请求中该文件区间标识所对应的下载任务组的处理顺序,按照该处理顺序获取该下载任务组中该文件区间标识对应的数据,并将获得的数据发送给下载请求中的客户端标识指示的客户端。
根据前述描述,每个下载任务组分别对应了目标文件的一段存储空间,按照各存储空间的先后位置可以对各下载任务组进行排序,该排序反映了各下载任务组的处理顺序。从而,根据已经确定的各下载任务组的排序,可以确定当前下载请求所属下载任务组的处理顺序,根据该处理顺序读取该下载请求所要下载的文件区间标识对应的数据内容。
对各下载任务组进行排序,该顺序依据各下载任务组对应的存储空间的位置先后关系确定。从而,下载任务组的排序反映了各对应预设文件区间存储空间的连续性,依此顺序对磁道的寻道也将是连续性的,不会出现过大过多的往复跳跃寻道的情况。
因此,可以按照各下载任务组的排序对各下载任务组进行依次遍历,如果前一个下载任务组中有需要处理的任务,即需要处理的下载请求,则先处理前一个下载任务组,待前一个下载任务组处理完毕后,再处理接下来的后一个下载任务组。从而,在遍历到当前该下载请求中该文件区间标识所对应的下载任务组的处理顺序时,处理该下载请求,即读取该文件区间标识所对应的数据并反馈给对应客户端。
本实施例中,通过预先创建与目标文件不同文件区间的存储空间对应的各下载任务组,从而,在服务器接收到针对该目标文件的下载请求时,根据下载请求所要请求下载的文件区间标识与各下载任务组对应的存储空间的所属对应关系,确定该下载请求所对应的下载任务组。进而,基于各下载任务组对应的存储空间先后位置顺序,确定该下载请求所属下载任务组的处理顺序,按照该处理顺序读取获得该下载请求中文件区间标识对应的数据并发送给对应的客户端。由于各下载任务组的处理顺序是根据各下载任务组对应的存储空间位置的先后顺序来确定的,因此,基于各下载任务组的先后处理顺序,进行归属于各下载任务组的下载请求的对应数据读取处理,能够大大降低对磁道寻址的随机性,有利于提高文件下载的处理效率。
如前所述,在同一时间内,服务器可能接收到一个或多个下载请求,在只接收到一个下载请求的情况下,如果不考虑上述预设时间的周期性处理过程,则可以直接进行该下载请求的处理,即读取获得所需下载的数据。在接收到多个下载请求的情况下,对每个下载请求均进行上述所对应下载任务组的确定,以及在确定各下载请求所属下载任务组之后,对对应的各下载任务组处理顺序的确定处理。同理,对于考虑上述预设时间的周期性处理过程,对该预设时间内接收到的每个下载请求均进行上述所对应下载任务组的确定,以及在确定各下载请求所属下载任务组之后,对对应的各下载任务组处理顺序的确定处理。具体地,参考图3,具体说明接收到多个下载请求的处理过程。图3是根据一示例性实施例示出的一种文件下载方法实施例二的流程图,如图3所示,该方法包括如下步骤:
在步骤201中,接收针对目标文件的至少两个下载请求,每个所述下载请求中包括文件区间标识和客户端标识。
在步骤202中,确定各所述下载请求中的文件区间标识分别对应的下载任务组。
在步骤203中,判断各所述下载请求中的文件区间标识分别对应的下载任务组是否为相同的第一下载任务组,若是,则执行步骤204,否则,执行步骤205。
其中,第一下载任务组是指各下载请求中的文件区间标识均归属于的下载任务组,也就是说,所有的下载请求中的文件区间标识如果均对应于同一个下载任务组,该下载任务组称为第一下载任务组。
在步骤204中,获取所述第一下载任务组中的各文件区间标识对应的数据,并将所述数据发送给对应的客户端标识指示的客户端。
在所有下载请求中的文件区间标识均对应于第一下载任务组时,该第一下载任务组中的各文件区间标识即是所有下载请求中的文件区间标识。
在步骤205中,判断各所述下载请求中的文件区间标识分别对应的下载任务组是否为不同的各第二下载任务组,若是,则执行步骤206。
其中,各第二下载任务组是指在所有下载请求中的文件区间标识不是均对应于一个下载任务组的情况下,每个下载请求中的文件区间标识所对应的下载任务组。
值得说明的是,在实际执行过程中,该第二下载任务组的数量可能等于下载请求的数量,也可能小于下载请求的数量。也就是说,可能每个下载请求中所携带的文件区间标识分别归属于不同的第二下载任务组中,也可能几个下载请求中所携带的文件区间标识均归属于同一个第二下载任务组,但并非所有的下载请求的文件区间标识均归属于同一个第二下载任务组。
在步骤206中,根据所述各第二下载任务组分别对应的存储空间先后位置,确定所述各第二下载任务组的处理顺序,并按照所述处理顺序依次获取所述各第二下载任务组中的各文件区间标识对应的数据,并将所述数据发送给对应的客户端标识指示的客户端。
在上述针对第二下载任务组的两个可能的情况中,不管是哪一种情况,最终都是存在了多个第二下载任务组,只是每种可能情况下,每个第二下载任务组中包含的文件区间标识数量不同。因此,针对各第二下载任务组,是根据各第二下载任务组分别对应的存储空间先后位置,来确定各第二下载任务组的处理顺序的。
其中,上述步骤203和步骤205的判断没有严格的时序限制关系。
下面,结合具体实例对上述接收到多个下载请求的处理过程进行说明。
首先,确定各下载请求中的文件区间标识分别对应的下载任务组。结合图2,图中C1~C4分别代表客户端1~客户端4,C1发送的下载请求中携带的文件区间标识为(70K,150K),归属于组1,C2发送的下载请求中携带的文件区间标识为(100K,100K),归属于组1;C3发送的下载请求中携带的文件区间标识为(800K,150K),归属于组4;C4发送的下载请求中携带的文件区间标识为(520K,120K),归属于组3。从而,组1中存储有:C1:(70K,150K);C2:(100K,100K)。组2中为空,组3中存储有:C4:(520K,120K)。组4中存储有:C3(800K,150K)。
其次,根据各下载任务组对应的存储空间的先后位置,确定各下载任务组的处理顺序。具体来说,一种特殊的情况是:各下载请求中的文件区间标识分别对应的下载任务组为相同的第一下载任务组,即所有下载请求中的文件区间标识对应到了同一个第一下载任务组中,此时,直接获取该第一下载任务组中的各文件区间标识分别对应的数据,并将获得的数据分别发送给对应的客户端标识指示的客户端。
另一种比较普遍的情况是:各下载请求中的文件区间标识分别对应的下载任务组为不同的各第二下载任务组,此时,根据各第二下载任务组分别对应的存储空间先后位置,确定各第二下载任务组的处理顺序,并按照所述处理顺序依次获取各第二下载任务组中的各文件区间标识对应的数据,并将所述数据发送给对应的客户端标识指示的客户端。正如上述图2中所举例的情形,第二下载任务组分别是组1、组3和组4,组1中包含了两个文件区间标识,组3和组4中分别包含了一个文件区间标识。并且,第二下载任务组按照对应存储空间位置先后排序为:组1、组3、组4。服务器按照各第二下载任务组的处理顺序,依次获取各第二下载任务组中的各文件区间标识分别对应的数据,并将获得的数据分别发送给对应的客户端。
结合图2,服务器首先读取组1中包含的各文件区间,即(70K,150K)和(100K,100K)所对应的数据,进而将获得的数据分别发送给C1和C2。进而,服务器再获取组3中包含的文件区间(520K,120K)所对应的数据,将获得的数据发送给C3。最后,服务器获取组4中包含的文件区间(800K,150K)所对应的数据,将获得的数据发送给C4。
值得说明的是,当一个下载任务组中包含有多个文件区间标识时,对这多个文件区间标识所对应数据的获取顺序可以按照先进先出的顺序获取,即按照接收到这多个文件区间标识所对应的下载请求的时间先后顺序获取。
图1所示实施例中,服务器对各下载任务组的处理顺序的确定是依照各下载任务组对应的存储空间位置的先后关系进行的,从而在处理一个下载任务组时,磁盘的磁道寻道仅在该下载任务组内进行,当处理完当前的下载任务组,进而处理下一个下载任务组时,由于下一个下载任务组与该下载任务组相邻,使得磁道寻道的跨度不大,具有连续性特点。
但是,由于上述实施例中,在考虑以预设时间为间隔,周期性处理该预设时间内接收到的多个下载请求的情况下,各下载请求并非是在同一时间点同步到达服务器的,而很有可能是先后不同时间到达服务器的。并且,为了在用户等待时间与磁道寻道连续性间具有更好的折中,上述预设时间的长度不宜过长或过短,需合理设置。这是因为,过长的预设时间设置,会过多增大先发送下载请求的客户端的时延性,而过短的预设时间设置,会导致频繁地在不同下载任务组间进行寻道,降低寻道连续性的效果。
因此,为了在按照各下载任务组对应的存储空间位置先后顺序进行磁盘寻道以保证寻道连续性的同时,兼顾不同客户端的等待时间,在图1所示实施例的基础上,如图4所示,还可以通过如下的方式实现文件下载过程。
图4是根据一示例性实施例示出的一种文件下载方法实施例三的流程图,在上述步骤205之后,步骤206之前,如图4所示,该方法还包括如下步骤:
在步骤301中,分别根据所述各第二下载任务组内所有下载请求的接收时间,确定所述各第二下载任务组的时间权重。
每个所述第二下载任务组的时间权重指示了位于该第二下载任务组中的下载请求的等待时延程度。
在步骤302中,判断所述各第二下载任务组的时间权重中的最大时间权重与最小时间权重间的差值是否大于或等于预设阈值,若是,则执行步骤303,否则,执行上述步骤206。
在步骤303中,确定所述最大时间权重所对应的第二下载任务组为优先处理组。
在步骤304中,判断第一次优先处理组中包含的第二下载任务组的个数是否大于第二次优先处理组中包含的第二下载任务组的个数,若是,则执行步骤305,否则,执行步骤306。
其中,所述第一次优先处理组中包括存储空间位于所述最大时间权重所对应的第二下载任务组之前的各第二下载任务组,所述第二次优先处理组中包括存储空间位于所述最大时间权重所对应的第二下载任务组之后的各第二下载任务组。
在步骤305中,确定按照存储空间位置从后到前的顺序先处理所述第一次优先处理组中的各第二下载任务组,再按照存储空间位置从前到后的顺序处理所述第二次优先处理组中的各第二下载任务组。
在步骤306中,确定按照存储空间位置从前到后的顺序先处理所述第二次优先处理组中的各第二下载任务组,再按照存储空间位置从前到后的顺序处理所述第一次优先处理组中的各第二下载任务组。
本实施例中,服务器在接收到各客户端发送的各下载请求后,还记录接收到各下载请求的时间。
从而,在具体实现时,可以在每接收到一个下载请求后,将该下载请求中携带的文件区间标识、客户端标识,以及接收到该下载请求的接收时间关联存储入对应的下载任务组中。
以图2所示中的组1为例,组1中关联存储有:C1:(70K,150K),9:30;C2:(100K,100K),9:35。
举例来说,根据各第二下载任务组内所有下载请求分别对应的接收时间,各个第二下载任务组的时间权重比如可以通过如下方式确定:
将上述预设时间进行一定时间长度为间隔的划分,划分为多个时间间隔,每个时间间隔被赋予不同的权重值,当然,最前面的时间间隔具有更高的权重值。
比如,假设上述预设时间长度为5分钟,划分为三个间隔,分别为:(0min,2min)、(2min,3min)和(3min,5min),并且假设(0min,2min)具有最高权重值,比如为10,(2min,3min)的权重值比如为6,(3min,5min)的权重值比如为2。比如可以根据接收时间落入各时间间隔内的下载请求的数量乘以该时间间隔对应的权重值来得到该时间间隔的时间权重值。
进而,针对一个第二下载任务组来说,该组的时间权重值比如是该组对应的各时间间隔所对应权重值的加和,或者,优选地,该组的时间权重值是前面一定数量的时间间隔所对应的权重值的加和。
举例来说,假设组1中对应有四个下载请求,这四个下载请求的接收时间中有2个落入上述第一个时间间隔(0min,2min)中,有1个落入第二个时间间隔(2min,3min)中,最后1个落入第三个时间间隔(3min,5min)中。如果以全部时间间隔为计算对象,则该组1的时间权重为:2*10+1*6+1*2=28,如果仅以第一个时间间隔为计算对象,则该组1的时间权重为2*10=20。
基于上述方式,可以分别得到每个第二下载任务组的时间权重,进而,结合各第二下载任务组的时间权重调整各第二下载任务组的处理顺序,从而,基于调整后的处理顺序来依次获取各第二下载任务组中的各文件区间标识分别对应的数据内容。
具体来说,根据各第二下载任务组的时间权重,调整各第二下载任务组的处理顺序,可以通过如下方式实现:
在得到各个第二下载任务组的时间权重之后,从中可以确定出具有最大时间权重的第二下载任务组和具有最小时间权重的第二下载任务组。如果各第二下载任务组的时间权重中的最大时间权重与最小时间权重间的差值小于一定的预设阈值,则说明整体上,各第二下载任务组的时间权重比较均衡,此时,可以按照步骤206中根据各第二下载任务组分别对应的存储空间的位置先后顺序确定的各第二下载任务组的处理顺序,依次处理即可。
相反的,如果各第二下载任务组的时间权重中的最大时间权重与最小时间权重间的差值大于或等于一定的预设阈值,则说明最大时间权重值所对应的第二下载任务组中存在客户端等待时间较长的情况。此时,可以优先处理该具有最大时间权重值的第二下载任务组,即优先获取该具有最大时间权重值的第二下载任务组中的各文件区间标识所对应的数据并反馈给相应的客户端。
对于除该具有最大时间权重值的第二下载任务组外的其他第二下载任务组,是以排序连续个数最大为原则,即以各第二下载任务组对应的存储空间的位置先后连续个数最大为原则,确定其他第二下载任务组的处理顺序。
其中,以各个第二下载任务组对应的存储空间的位置先后连续个数最大为原则,也就是说,将存储空间位于所述最大时间权重所对应的第二下载任务组之前的各第二下载任务组作为第一次优先处理组,将存储空间位于所述最大时间权重所对应的第二下载任务组之后的各第二下载任务组作为第二次优先处理组。如果第一次优先处理组中包含的第二下载任务组的个数大于第二次优先处理组中包含的第二下载任务组的个数,则确定按照存储空间位置从后到前的顺序先处理第一次优先处理组中的各第二下载任务组,再按照存储空间位置从前到后的顺序处理第二次优先处理组中的各第二下载任务组;如果第一次优先处理组中包含的第二下载任务组的个数小于第二次优先处理组中包含的第二下载任务组的个数,则确定按照存储空间位置从前到后的顺序先处理第二次优先处理组中的各第二下载任务组,再按照存储空间位置从前到后的顺序处理第一次优先处理组中的各第二下载任务组。
举例来说,比如针对图2所示中组1~组4,假设其对应的存储空间的位置依次先后相邻,并假设组2的时间权重最大且与具有最小时间权重的组4的时间权重间的差值大于预设阈值,则确定优先处理组2。对于组1、组3和组4,按照上述处理原则,属于第一次优先处理组中的是组1,属于第二次优先处理组的是组3和组4。第二次优先处理组中包含的组个数大于第一次优先处理组中包含的组个数,因此,按照存储空间从前到后的顺序优先处理第二次优先处理组中的组3、组4,再按照存储空间位置从前到后的顺序处理第一次优先处理组中的组1。从而,第一和第二次优先处理组中各第二下载任务组确定的处理顺序依次为:组3、组4、组1。从而,所有第二下载任务组的最终的处理顺序为组2、组3、组4、组1。
从而,根据本实施例提供的方案,能够兼顾客户端等待时间与磁道寻道连续性,在提高文件下载处理效率的同时,可以有效降低等待时间较长客户端的等待时延。
图5是根据一示例性实施例示出的一种文件下载方法的实施例四的流程图,如图5所示,在图1所示实施例的基础上,步骤102可以通过如下方式实现:
在步骤401中,根据所述文件区间标识中的文件区间起始位置所位于的下载任务组,确定所述文件区间标识的所属下载任务组。
其中,所述文件区间标识包括文件区间起始位置和文件区间的区间长度。
相应的,在步骤401之后,在步骤103之前,本实施例还包括如下步骤:
在步骤402中,判断所述文件区间的终止位置是否超过所属下载任务组对应的存储空间终止位置,所述文件区间的终止位置根据文件区间起始位置和区间长度确定,若是,则执行步骤403,否则直接执行步骤103。
在步骤403中,重新确定所述文件区间标识归属于所述文件区间的终止位置所位于的下载任务组。
本实施例中,在确定各下载请求中的文件区间标识应该被存入到哪个下载任务组中时,是根据文件区间标识的起始位置位于哪个下载任务组所对应的存储空间内来确定的。
实际中,可能存在这样的情况:某个文件区间标识所表示的起始位置位于某个下载任务组对应的存储空间所表征的区间范围内,但是,该一文件区间标识所表示的终止位置,却并不在该存储空间所表征的区间范围内,而是跨越到了相邻的另一个下载任务组所表征的区间范围内,即跨组。
因此,在实际应用中,会涉及到需要重新确定下载请求即下载请求中文件区间标识所属下载任务组的过程。此时,重新确定该跨组的文件区间标识所对应的下载任务组为其终止位所位于的下载任务组。
针对重新确定所属下载任务组的文件区间标识来说,可以对其进行标记,该标记的作用是指示服务器优先在处理该重新确定的下载任务组时,优先处理该文件区间标识。因为一般来说,跨组通常是跨相邻的组,这样,在按照各下载任务组对应的存储空间先后位置关系处理完前一个下载任务组中的各文件区间标识之后,优先处理下一个下载任务组中被标记为优先处理的跨组文件区间标识,具有更好的连续性。
本实施例中,在根据文件区间标识的区间起始位置确定了该文件区间标识所属的下载任务组之后,如果该文件区间标识的终止位置超出了其原本所归属的下载任务组,需要进行其所属下载任务组的调整,并在处理调整后的下载任务组时,优先处理该文件区间标识。通过这样,能够更好地保证磁道寻道的连续性。
最后,值得说明的是,还可以结合当前服务器缓存中缓存的目标文件的文件区间来确定各下载任务组的处理顺序。
根据磁盘读取数据的原理,针对上述目标文件来说,服务器会缓存其最后读取获得的文件区间的数据。而且,从缓存中获取数据相对于从磁盘中获取相同数据的速度会快很多。因此,可以结合缓存中缓存的数据所对应的文件区间以及对目标文件进行按存储空间位置先后划分后的结果,来确定各下载任务组的处理顺序。
具体来说,可以将存储缓存数据所属文件区间的存储空间对应于第一个下载任务组,即确定为组1,进而根据对目标文件进行划分后其他文件区间对应的存储空间与该缓存数据对应的存储空间的位置先后关系,依次确定组2、组3等后续组。当然,在前文所述的当前的预设时间完成后,在下一个预设时间时,需要重新确定各下载任务组的处理顺序即编号顺序,因为此时缓存中的数据内容对应的文件区间已经改变,其所对应的存储空间也发生了改变。
据此,依次获取各下载任务组中的各文件区间标识对应的数据内容时,优先从缓存中获得第一个下载任务组对应的数据内容,提高文件下载速度。
图6是根据一示例性实施例示出的一种文件下载装置实施例一的框图,如图6所示,该装置包括:接收模块11、第一确定模块12和处理模块13。
接收模块11,被配置为接收针对目标文件的下载请求。
所述下载请求中包括文件区间标识和客户端标识,其中,所述文件区间标识指示了所述客户端标识对应的客户端需要下载的文件区间范围。
第一确定模块12,被配置为确定接收模块11接收到的所述下载请求中所述文件区间标识对应的下载任务组。
其中,所述下载任务组对应所述目标文件的一段存储空间。
处理模块13,被配置为根据各下载任务组对应的存储空间的先后位置,确定第一确定模块12确定出的所述下载任务组的处理顺序,按照所述处理顺序获取所述下载任务组中所述文件区间标识对应的数据,并将所述数据发送给所述客户端标识指示的客户端。
图6所示实施例提供的文件下载装置可以用于执行图1示方法实施例中的技术方案。
图7是根据一示例性实施例示出的一种文件下载装置实施例二的框图,如图7所示,在图6所示实施例的基础上,所述第一确定模块12中包括:第一确定子模块121。
第一确定子模块121,被配置为在所述接收模块11接收到的所述下载请求的个数为至少两个时,确定各所述下载请求中的文件区间标识分别对应的下载任务组。
所述处理模块13中包括:第一处理子模块131或第二处理子模块132。
第一处理子模块131,被配置为在所述第一确定子模块121确定各所述下载请求中的文件区间标识分别对应的下载任务组为相同的第一下载任务组时,获取所述第一下载任务组中的各文件区间标识对应的数据,并将所述数据发送给对应的客户端标识指示的客户端。
第二处理子模块132,被配置为在所述第一确定子模块121确定各所述下载请求中的文件区间标识分别对应的下载任务组为不同的各第二下载任务组时,根据所述各第二下载任务组分别对应的存储空间先后位置,确定所述各第二下载任务组的处理顺序,并按照所述处理顺序依次获取所述各第二下载任务组中的各文件区间标识对应的数据,并将所述数据发送给对应的客户端标识指示的客户端。
图7所示实施例提供的文件下载装置可以用于执行图3示方法实施例的技术方案。
上述图6、图7所示实施例中,通过预先创建与目标文件不同文件区间的存储空间对应的各下载任务组,从而,在接收模块11接收到针对该目标文件的至少一个下载请求时,将该至少一个下载请求传输给第一确定模块12,第一确定模块12从各下载请求中解析获得文件区间标识和客户端标识,进而根据各下载任务组对应的存储空间,确定每个下载请求所对应的下载任务组。进而,处理模块13针对下载请求所对应的下载任务组的个数不同,分别采用不同的方式进行处理。具体来说,如果仅有一个下载任务组中存在需要处理的下载请求,则直接通过第一处理子模块131获取其中包含的待下载的文件区间标识所对应的数据;如果有多个下载任务组中都存在需要处理的下载请求,则基于各下载任务组对应的存储空间先后位置顺序,确定需要处理的各下载任务组的处理顺序,并按照该处理顺序读取获得各自包含的文件区间标识所对应的数据并发送给对应的客户端。
在服务器中设置上述文件下载装置,基于上述接收模块11、第一确定模块12和处理模块13的配合,使得发送至服务器的下载请求,基于其所属下载任务组的处理顺序得到顺序处理,能够大大降低对磁道寻址的随机性,有利于提高文件下载的处理效率。
图8是根据一示例性实施例示出的一种文件下载装置实施例三的框图,如图8所示,在图6所示实施例的基础上,所述装置还包括:第二确定模块21或第三确定模块22。
第二确定模块21,被配置为按照存储所述目标文件的存储空间先后位置,对所述目标文件进行固定区间大小的划分,确定所述各下载任务组。
第三确定模块22,被配置为按照存储所述目标文件的存储空间先后位置,根据所述目标文件的各历史文件区间的下载频度,对所述目标文件进行划分,确定所述各下载任务组。图8所示实施例提供的文件下载装置可以用于执行图1示方法实施例中确定各下载任务组的技术方案。通过在文件下载装置中设置上述第二确定模块21或第三确定模块22,使得第一确定模块12能够基于第二确定模块21或第三确定模块22对目标文件对应的各下载任务组的划分结果,实现当前接收到的下载请求中文件区间标识所归属的下载任务组的确定,为后续文件下载过程提供支持。
图9是根据一示例性实施例示出的一种文件下载装置实施例四的框图,如图9所示,在图7所示实施例的基础上,所述装置还包括:第四确定模块31和调整模块32。
第四确定模块31,被配置为在所述第一确定子模块121确定各所述下载请求中的文件区间标识分别对应的下载任务组为不同的各第二下载任务组之后,分别根据所述各第二下载任务组内所有下载请求的接收时间,确定所述各第二下载任务组的时间权重。
其中,每个所述第二下载任务组的时间权重指示了位于该第二下载任务组中的下载请求的等待时延程度。
调整模块32,被配置为根据第四确定模块31确定的所述各第二下载任务组的时间权重,调整所述各第二下载任务组的处理顺序。
具体来说,所述调整模块32中包括:第二确定子模块321,以及第三确定子模块322或第四确定子模块323。
第二确定子模块321,被配置为在第四确定模块31确定的所述各第二下载任务组的时间权重中的最大时间权重与最小时间权重间的差值大于或等于预设阈值时,确定所述最大时间权重所对应的下载任务组为优先处理组。
第三确定子模块322,被配置为在第二确定子模块321确定出最大时间权重所对应的下载任务组为优先处理组之后,在第一次优先处理组中包含的第二下载任务组的个数大于第二次优先处理组中包含的第二下载任务组的个数时,确定按照存储空间位置从后到前的顺序先处理所述第一次优先处理组中的各第二下载任务组,再按照存储空间位置从前到后的顺序处理所述第二次优先处理组中的各第二下载任务组。
第四确定子模块323,被配置为在第二确定子模块321确定出最大时间权重所对应的下载任务组为优先处理组之后,在所述第一次优先处理组中包含的第二下载任务组的个数小于所述第二次优先处理组中包含的第二下载任务组的个数时,确定按照存储空间位置从前到后的顺序先处理所述第二次优先处理组中的各第二下载任务组,再按照存储空间位置从前到后的顺序处理所述第一次优先处理组中的各第二下载任务组。
其中,所述第一次优先处理组中包括存储空间位于所述最大时间权重所对应的第二下载任务组之前的各第二下载任务组,所述第二次优先处理组中包括存储空间位于所述最大时间权重所对应的第二下载任务组之后的各第二下载任务组。
图9所示实施例提供的文件下载装置可以用于执行图4示方法实施例的技术方案。
本实施例中,在第一确定子模块121确定接收到的各下载请求中的文件区间标识分别对应的下载任务组为不同的各第二下载任务组时,触发第四确定模块31的工作,即第四确定模块31分别根据所述各第二下载任务组内所有下载请求的接收时间,确定各第二下载任务组的时间权重。从而使得调整模块32能够基于第四确定模块31确定的各第二下载任务组的时间权重调整第二处理子模块132对各第二下载任务组的处理顺序。
在调整过程中,首先由第二确定子模块321确定最大时间权重所对应的下载任务组为优先处理组。进而,对于除优先处理组之外的其他第二下载任务组的处理顺序,分别由第三确定子模块322和第四确定子模块323针对其他第二下载任务组与优先处理组的相对存储空间位置来确定。
通过上述调整模块的具体调整过程,使得文件下载能够兼顾客户端等待时间与磁道寻道连续性,在提高文件下载处理效率的同时,可以有效降低等待时间较长客户端的等待时延。
图10是根据一示例性实施例示出的一种文件下载装置实施例五的框图,如图10所示,在图6所示实施例的基础上,所述第一确定模块12中还包括:第五确定子模块122、判断子模块123和第六确定子模块124。
其中,第五确定子模块122,被配置为在接收模块11接收到携带有所述文件区间标识的所述下载请求之后,根据所述文件区间起始位置所位于的下载任务组,确定所述文件区间标识的所属下载任务组。
其中,所述文件区间标识包括文件区间起始位置和文件区间的区间长度。
判断子模块123,被配置为判断所述文件区间的终止位置是否超过第五确定子模块122所确定的所属下载任务组对应的存储空间终止位置。
所述文件区间的终止位置根据文件区间起始位置和区间长度确定。
第六确定子模块124,被配置为在判断子模块123判断出所述文件区间的终止位置超过所属下载任务组对应的存储空间终止位置时,重新确定所述文件区间标识归属于所述文件区间的终止位置所位于的下载任务组。
图10所示实施例提供的文件下载装置可以用于执行图5示方法实施例的技术方案。
通过上述第五确定子模块122、判断子模块123和第六确定子模块124的相互配合,在第五确定子模块122根据文件区间标识的起始位置确定了该文件区间标识所对应的下载任务组之后,若判断子模块123确定该文件区间标识存在跨组的情况,第六确定子模块124还可以根据该文件区间标识的终止位置重新确定所对应的下载任务组,从而能够获得更佳的磁道寻址的连续性。
关于上述实施例中的装置,其中各个模块、子模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
以上描述了文件下载装置的内部功能和结构,如图11所示,实际中,该文件下载装置可实现为:
处理器;
被配置为存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收针对目标文件的下载请求,所述下载请求中包括文件区间标识和客户端标识,其中,所述文件区间标识指示了所述客户端标识对应的客户端需要下载的文件区间范围;
确定所述文件区间标识对应的下载任务组,所述下载任务组对应所述目标文件的一段存储空间;
根据各下载任务组对应的存储空间的先后位置,确定所述下载任务组的处理顺序,按照所述处理顺序获取所述下载任务组中所述文件区间标识对应的数据,并将所述数据发送给所述客户端标识指示的客户端。
本实施例中,通过预先创建与目标文件不同文件区间的存储空间对应的各下载任务组,从而,在服务器接收到针对该目标文件的下载请求时,根据下载请求所要请求下载的文件区间标识与各下载任务组对应的存储空间的所属对应关系,确定该下载请求所对应的下载任务组。进而,基于各下载任务组对应的存储空间先后位置顺序,确定该下载请求所属下载任务组的处理顺序,按照该处理顺序读取获得该下载请求中文件区间标识对应的数据并发送给对应的客户端。由于各下载任务组的处理顺序是根据各下载任务组对应的存储空间位置的先后顺序来确定的,因此,基于各下载任务组的先后处理顺序,进行归属于各下载任务组的下载请求的对应数据读取处理,能够大大降低对磁道寻址的随机性,有利于提高文件下载的处理效率。
图12是根据一示例性实施例示出的一种文件下载装置1900的框图。例如,装置1900可以被提供为一服务器。该服务器可以是文件服务器、音视频服务器等类型的服务器。参照图12,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述文件下载方法,所述方法包括:
接收针对目标文件的下载请求,所述下载请求中包括文件区间标识和客户端标识,其中,所述文件区间标识指示了所述客户端标识对应的客户端需要下载的文件区间范围;
确定所述文件区间标识对应的下载任务组,所述下载任务组对应所述目标文件的一段存储空间;
根据各下载任务组对应的存储空间的先后位置,确定所述下载任务组的处理顺序,按照所述处理顺序获取所述下载任务组中所述文件区间标识对应的数据,并将所述数据发送给所述客户端标识指示的客户端。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(I/O)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (11)
1.一种文件下载方法,其特征在于,所述方法包括:
接收针对目标文件的下载请求,所述下载请求中包括文件区间标识和客户端标识,其中,所述文件区间标识指示了所述客户端标识对应的客户端需要下载的文件区间范围;
确定所述文件区间标识对应的下载任务组,所述下载任务组对应所述目标文件的一段存储空间;
根据各下载任务组对应的存储空间的先后位置,确定所述下载任务组的处理顺序,按照所述处理顺序获取所述下载任务组中所述文件区间标识对应的数据,并将所述数据发送给所述客户端标识指示的客户端;
其中,所述文件区间标识包括文件区间起始位置和文件区间的区间长度;
所述确定所述文件区间标识对应的下载任务组,包括:
根据所述文件区间起始位置所位于的下载任务组,确定所述文件区间标识的所属下载任务组;
所述方法还包括:
判断所述文件区间的终止位置是否超过所属下载任务组对应的存储空间终止位置,所述文件区间的终止位置根据文件区间起始位置和区间长度确定;
若所述文件区间的终止位置超过所属下载任务组对应的存储空间终止位置,则重新确定所述文件区间标识归属于所述文件区间的终止位置所位于的下载任务组。
2.根据权利要求1所述的方法,其特征在于,若所述下载请求的个数为至少两个,则所述确定所述文件区间标识对应的下载任务组,包括:
确定各所述下载请求中的文件区间标识分别对应的下载任务组;
所述根据各下载任务组对应的存储空间的先后位置,确定所述下载任务组的处理顺序,按照所述处理顺序获取所述下载任务组中所述文件区间标识对应的数据,并将所述数据发送给所述客户端标识指示的客户端,包括:
若各所述下载请求中的文件区间标识分别对应的下载任务组为相同的第一下载任务组,则获取所述第一下载任务组中的各文件区间标识对应的数据,并将所述数据发送给对应的客户端标识指示的客户端;
或者,
若各所述下载请求中的文件区间标识分别对应的下载任务组为不同的各第二下载任务组,则根据所述各第二下载任务组分别对应的存储空间先后位置,确定所述各第二下载任务组的处理顺序,并按照所述处理顺序依次获取所述各第二下载任务组中的各文件区间标识对应的数据,并将所述数据发送给对应的客户端标识指示的客户端。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
按照存储所述目标文件的存储空间先后位置,对所述目标文件进行固定区间大小的划分,确定所述各下载任务组;
或者,
按照存储所述目标文件的存储空间先后位置,根据所述目标文件的各文件区间的历史下载频度,对所述目标文件进行划分,确定所述各下载任务组。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:分别根据所述各第二下载任务组内所有下载请求的接收时间,确定所述各第二下载任务组的时间权重,每个所述第二下载任务组的时间权重指示了位于该第二下载任务组中的下载请求的等待时延程度;
根据所述各第二下载任务组的时间权重,调整所述各第二下载任务组的处理顺序。
5.根据权利要求4所述的方法,其特征在于,所述根据所述各第二下载任务组的时间权重,调整所述各第二下载任务组的处理顺序,包括:
若所述各第二下载任务组的时间权重中的最大时间权重与最小时间权重间的差值大于或等于预设阈值,则确定所述最大时间权重所对应的第二下载任务组为优先处理组;
若第一次优先处理组中包含的第二下载任务组的个数大于第二次优先处理组中包含的第二下载任务组的个数,则确定按照存储空间位置从后到前的顺序先处理所述第一次优先处理组中的各第二下载任务组,再按照存储空间位置从前到后的顺序处理所述第二次优先处理组中的各第二下载任务组;
或者,
若所述第一次优先处理组中包含的第二下载任务组的个数小于所述第二次优先处理组中包含的第二下载任务组的个数,则确定按照存储空间位置从前到后的顺序先处理所述第二次优先处理组中的各第二下载任务组,再按照存储空间位置从前到后的顺序处理所述第一次优先处理组中的各第二下载任务组;
其中,所述第一次优先处理组中包括存储空间位于所述最大时间权重所对应的第二下载任务组之前的各第二下载任务组,所述第二次优先处理组中包括存储空间位于所述最大时间权重所对应的第二下载任务组之后的各第二下载任务组。
6.一种文件下载装置,其特征在于,所述装置包括:
接收模块,被配置为接收针对目标文件的下载请求,所述下载请求中包括文件区间标识和客户端标识,其中,所述文件区间标识指示了所述客户端标识对应的客户端需要下载的文件区间范围,所述文件区间标识包括文件区间起始位置和文件区间的区间长度;
第一确定模块,被配置为确定所述文件区间标识对应的下载任务组,所述下载任务组对应所述目标文件的一段存储空间;
处理模块,被配置为根据各下载任务组对应的存储空间的先后位置,确定所述下载任务组的处理顺序,按照所述处理顺序获取所述下载任务组中所述文件区间标识对应的数据,并将所述数据发送给所述客户端标识指示的客户端;
所述第一确定模块中还包括:
第五确定子模块,被配置为根据所述文件区间起始位置所位于的下载任务组,确定所述文件区间标识的所属下载任务组;
所述第一确定模块中还包括:
判断子模块,被配置为判断所述文件区间的终止位置是否超过所属下载任务组对应的存储空间终止位置,所述文件区间的终止位置根据文件区间起始位置和区间长度确定;
第六确定子模块,被配置为在所述文件区间的终止位置超过所属下载任务组对应的存储空间终止位置时,重新确定所述文件区间标识归属于所述文件区间的终止位置所位于的下载任务组。
7.根据权利要求6所述的装置,其特征在于,所述第一确定模块中包括:
第一确定子模块,被配置为在所述下载请求的个数为至少两个时,确定各所述下载请求中的文件区间标识分别对应的下载任务组;
所述处理模块中包括:
第一处理子模块,被配置为在各所述下载请求中的文件区间标识分别对应的下载任务组为相同的第一下载任务组时,获取所述第一下载任务组中的各文件区间标识对应的数据,并将所述数据发送给对应的客户端标识指示的客户端;
或者,所述处理模块中包括:
第二处理子模块,被配置为在各所述下载请求中的文件区间标识分别对应的下载任务组为不同的各第二下载任务组时,根据所述各第二下载任务组分别对应的存储空间先后位置,确定所述各第二下载任务组的处理顺序,并按照所述处理顺序依次获取所述各第二下载任务组中的各文件区间标识对应的数据,并将所述数据发送给对应的客户端标识指示的客户端。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二确定模块,被配置为按照存储所述目标文件的存储空间先后位置,对所述目标文件进行固定区间大小的划分,确定所述各下载任务组;
或者,所述装置还包括:
第三确定模块,被配置为按照存储所述目标文件的存储空间先后位置,根据所述目标文件的各文件区间的历史下载频度,对所述目标文件进行划分,确定所述各下载任务组。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第四确定模块,被配置为分别根据所述各第二下载任务组内所有下载请求的接收时间,确定所述各第二下载任务组的时间权重,每个所述第二下载任务组的时间权重指示了位于该第二下载任务组中的下载请求的等待时延程度;
调整模块,被配置为根据所述各第二下载任务组的时间权重,调整所述各第二下载任务组的处理顺序。
10.根据权利要求9所述的装置,其特征在于,所述调整模块中包括:
第二确定子模块,被配置为在所述各第二下载任务组的时间权重中的最大时间权重与最小时间权重间的差值大于或等于预设阈值时,确定所述最大时间权重所对应的下载任务组为优先处理组;
所述调整模块中还包括:
第三确定子模块,被配置为在第一次优先处理组中包含的第二下载任务组的个数大于第二次优先处理组中包含的第二下载任务组的个数时,确定按照存储空间位置从后到前的顺序先处理所述第一次优先处理组中的各第二下载任务组,再按照存储空间位置从前到后的顺序处理所述第二次优先处理组中的各第二下载任务组;
或者,所述调整模块中还包括:
第四确定子模块,被配置为在所述第一次优先处理组中包含的第二下载任务组的个数小于所述第二次优先处理组中包含的第二下载任务组的个数时,确定按照存储空间位置从前到后的顺序先处理所述第二次优先处理组中的各第二下载任务组,再按照存储空间位置从前到后的顺序处理所述第一次优先处理组中的各第二下载任务组;
其中,所述第一次优先处理组中包括存储空间位于所述最大时间权重所对应的第二下载任务组之前的各第二下载任务组,所述第二次优先处理组中包括存储空间位于所述最大时间权重所对应的第二下载任务组之后的各第二下载任务组。
11.一种文件下载装置,其特征在于,包括:
处理器;
被配置为存储处理器可执行指令的存储器;
其中,所述处理器被配置为:接收针对目标文件的下载请求,所述下载请求中包括文件区间标识和客户端标识,其中,所述文件区间标识指示了所述客户端标识对应的客户端需要下载的文件区间范围;
确定所述文件区间标识对应的下载任务组,所述下载任务组对应所述目标文件的一段存储空间;
根据各下载任务组对应的存储空间的先后位置,确定所述下载任务组的处理顺序,按照所述处理顺序获取所述下载任务组中所述文件区间标识对应的数据,并将所述数据发送给所述客户端标识指示的客户端;
所述文件区间标识包括文件区间起始位置和文件区间的区间长度;
所述确定所述文件区间标识对应的下载任务组,包括:
根据所述文件区间起始位置所位于的下载任务组,确定所述文件区间标识的所属下载任务组;
所述处理器还被配置为:
判断所述文件区间的终止位置是否超过所属下载任务组对应的存储空间终止位置,所述文件区间的终止位置根据文件区间起始位置和区间长度确定;
若所述文件区间的终止位置超过所属下载任务组对应的存储空间终止位置,则重新确定所述文件区间标识归属于所述文件区间的终止位置所位于的下载任务组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510345944.7A CN104994143B (zh) | 2015-06-19 | 2015-06-19 | 文件下载方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510345944.7A CN104994143B (zh) | 2015-06-19 | 2015-06-19 | 文件下载方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104994143A CN104994143A (zh) | 2015-10-21 |
CN104994143B true CN104994143B (zh) | 2018-06-19 |
Family
ID=54305894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510345944.7A Active CN104994143B (zh) | 2015-06-19 | 2015-06-19 | 文件下载方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104994143B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105262830B (zh) * | 2015-10-30 | 2018-08-07 | 北京奇艺世纪科技有限公司 | 一种文件上传方法及装置 |
CN110430279B (zh) * | 2019-08-14 | 2022-12-09 | 平安普惠企业管理有限公司 | 文件下载控制方法及装置 |
CN111193772B (zh) * | 2019-12-05 | 2022-04-05 | 商客通尚景科技(上海)股份有限公司 | 文件下载方法及服务器 |
CN111314478B (zh) * | 2020-02-24 | 2021-08-31 | 腾讯科技(深圳)有限公司 | 文件传输方法、装置和计算机设备 |
CN115733833A (zh) * | 2022-10-31 | 2023-03-03 | 成都赛力斯科技有限公司 | 文件分时下载方法、装置、计算机设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101873355A (zh) * | 2010-06-28 | 2010-10-27 | 深圳市迅雷网络技术有限公司 | 一种下载文件的方法、装置和系统 |
CN103188305A (zh) * | 2011-12-30 | 2013-07-03 | 北大方正集团有限公司 | 一种多线程断点续传方法及系统 |
CN103297452A (zh) * | 2012-02-24 | 2013-09-11 | 北京对角巷科技发展有限公司 | 一种在互联网发布和直播流媒体的方法及系统 |
CN103530319A (zh) * | 2013-09-16 | 2014-01-22 | 华为技术有限公司 | 一种操作请求的处理方法和装置 |
CN103634383A (zh) * | 2013-11-21 | 2014-03-12 | 北京奇虎科技有限公司 | 基于移动终端的多链接分段下载方法和移动终端 |
CN104184789A (zh) * | 2014-02-24 | 2014-12-03 | 无锡天脉聚源传媒科技有限公司 | 一种文件下载方法及装置 |
CN104199684A (zh) * | 2014-08-13 | 2014-12-10 | 百度在线网络技术(北京)有限公司 | 浏览器冷启动的实现方法及装置 |
-
2015
- 2015-06-19 CN CN201510345944.7A patent/CN104994143B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101873355A (zh) * | 2010-06-28 | 2010-10-27 | 深圳市迅雷网络技术有限公司 | 一种下载文件的方法、装置和系统 |
CN103188305A (zh) * | 2011-12-30 | 2013-07-03 | 北大方正集团有限公司 | 一种多线程断点续传方法及系统 |
CN103297452A (zh) * | 2012-02-24 | 2013-09-11 | 北京对角巷科技发展有限公司 | 一种在互联网发布和直播流媒体的方法及系统 |
CN103530319A (zh) * | 2013-09-16 | 2014-01-22 | 华为技术有限公司 | 一种操作请求的处理方法和装置 |
CN103634383A (zh) * | 2013-11-21 | 2014-03-12 | 北京奇虎科技有限公司 | 基于移动终端的多链接分段下载方法和移动终端 |
CN104184789A (zh) * | 2014-02-24 | 2014-12-03 | 无锡天脉聚源传媒科技有限公司 | 一种文件下载方法及装置 |
CN104199684A (zh) * | 2014-08-13 | 2014-12-10 | 百度在线网络技术(北京)有限公司 | 浏览器冷启动的实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104994143A (zh) | 2015-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104994143B (zh) | 文件下载方法和装置 | |
Meng et al. | Online deadline-aware task dispatching and scheduling in edge computing | |
CN1188794C (zh) | 到一个共享的协处理器资源的多个逻辑接口 | |
JP7192103B2 (ja) | データ処理方法及び装置、及び、コンピューティングノード | |
Liao et al. | Dependency-aware application assigning and scheduling in edge computing | |
CN1520112A (zh) | 网络协议卸载引擎 | |
FR3072801A1 (fr) | Synchronisation dans une matrice de traitement a paves multiples | |
US20080235360A1 (en) | System and Method for Scheduling Downloading in a Cached Network Environment | |
CN106254561B (zh) | 一种网络资源文件的实时离线下载方法及系统 | |
CN1280711C (zh) | 用于处理二进制程序文件的方法 | |
JP2007519103A (ja) | マルチプロセッサシステムにおけるリソース管理 | |
CN103109285A (zh) | 用于自动调节从发送器通过并行连接到接收器的大量数据传送的机制 | |
CN104410660A (zh) | 多媒体资源的下载方法、装置、路由器及服务器 | |
JP6966432B2 (ja) | クラウドファイル処理方法および装置 | |
CN110020046A (zh) | 一种数据抓取方法及装置 | |
Huang et al. | Platform profit maximization on service provisioning in mobile edge computing | |
Huang et al. | 6G-empowered offloading for realtime applications in multi-access edge computing | |
US20170031689A1 (en) | System and Method for Variable Lane Architecture | |
US7562364B2 (en) | Adaptive queue scheduling | |
CN110955461B (zh) | 计算任务的处理方法、装置、系统、服务器和存储介质 | |
CN107968812A (zh) | 同步本地资源与网络资源的方法及装置 | |
CA3150578A1 (en) | Data processing method for social media marketing management and system thereof | |
CN109491785A (zh) | 内存访问调度方法、装置及设备 | |
JPH10289219A (ja) | クライアント・サーバシステム、キャッシュ管理方法及び記録媒体 | |
Wang et al. | CD-MSA: cooperative and deadline-aware scheduling for efficient multi-tenancy on DNN accelerators |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |