CN112738150A - 文件处理方法及装置、传输设备、计算机可读存储介质 - Google Patents
文件处理方法及装置、传输设备、计算机可读存储介质 Download PDFInfo
- Publication number
- CN112738150A CN112738150A CN201911038715.5A CN201911038715A CN112738150A CN 112738150 A CN112738150 A CN 112738150A CN 201911038715 A CN201911038715 A CN 201911038715A CN 112738150 A CN112738150 A CN 112738150A
- Authority
- CN
- China
- Prior art keywords
- file
- request
- data
- requested
- storage process
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 37
- 230000005540 biological transmission Effects 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 263
- 238000013507 mapping Methods 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 3
- 239000002699 waste material Substances 0.000 abstract description 4
- 238000004364 calculation method Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种文件处理方法及装置、传输设备、介质,方法包括:接收文件请求;文件请求具有分段标记时,判断每一段请求所请求的数据范围是否全部落入至多个逻辑存储进程中的一个逻辑存储进程存储的数据范围内,若是,确定与所请求的数据范围对应的逻辑存储进程;从与所请求的数据范围对应的逻辑存储进程中获取所请求的数据,降低对单个后端进程CPU、磁盘IO的占用,减少磁盘空间浪费和上层节点带宽的同时,能够有效解决当对于单文件并发数量较多的下载请求时,造成单个后端进程CPU、磁盘IO占用量较大,服务器服务能力急剧下降的问题。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种文件处理方法及装置、传输设备、计算机可读存储介质。
背景技术
随着VR、AR、5G等先进技术的迅速发展,用户下载的视频及游戏资源呈现出单个文件的体积越来越大的趋势,某些平台的单个游戏文件能达到300GB以上。在这样的情况下,如果多用户对该单个游戏文件并发下载请求时,给服务器的CPU、硬盘IO等带来了巨大挑战。
以一个300GB的单个文件下载过程为例,如图1所示,在现有的构架下,包括设置在不同地点的前端负载均衡服务器,以及多个后端缓存服务器,每个后端缓存服务器中均包含多个缓存进程,该300GB的单个文件存储在后端缓存服务器1的缓存进程2中。当多用户对该单个文件并发下载请求时,接收到请求的前端负载均衡服务器根据url哈希值将资源分配到存储有该单个文件的后端缓存服务器1的缓存进程2中。也就是说,在现有的构架中,根据url哈希值,客户对相同文件的请求均落到固定的存储有该文件的唯一一个进程中。采用上述方式存在以下缺点:
1)对于前端节点而言,对同一个文件的下载请求只能被分配到确定的一个后端节点的缓存进程中,导致该进程的CPU出现负载较大的情况,进而导致响应速度变慢;
2)由于前端节点根据url哈希值对同一个文件的下载请求只能被分配到确定的一个后端节点的缓存进程中,因此,该完整文件只能存储一份,且只能存储到后端缓存服务器的一个硬盘上,当多用户对该单个文件并发下载请求时,该硬盘的IO压力增大,引发负载突增,容易造成服务器宕机。
为了解决上述问题,当多用户对某个单个文件并发下载请求时,如图2所示,现有技术中通过轮询方式将对该文件的请求分配到多个后端缓存服务器的所有进程上,实现请求分摊。这样的处理方式导致后端缓存服务器的每一个缓存进程中都要完整存储一份该文件,一方面,造成硬盘空间浪费严重;另一方面,由于每个缓存进程都需要返回上层节点拉流获取文件,导致上层节带宽浪费严重。
发明内容
为了解决上述技术问题,本发明提供了一种文件处理方法及装置、传输设备、计算机可读存储介质,有效降低后端缓存服务器的缓存进程的CPU和硬盘IO接口占用,提高响应速度,减少硬盘空间浪费和上层节点带宽浪费。
本发明提供了一种文件处理方法,包括:
接收文件请求;
当所述文件请求具有分段标记时,判断所请求的数据范围是否全部落入逻辑存储进程中存储的数据范围内,若是,确定与所请求的数据范围对应的所述逻辑存储进程;
从与所请求的数据范围对应的所述逻辑存储进程中获取所述请求所请求的数据。
上述文件处理方法还具有以下特点:所述确定与所请求的数据范围对应的所述逻辑存储进程包括:
根据所述请求的URL或URI确定唯一资源的特征,以及所述数据范围的range映射值计算该请求的哈希值;
根据哈希值与所述逻辑存储进程的对应关系,确定与所述请求对应的所述逻辑存储进程。
上述文件处理方法还具有以下特点:当至少一段所述请求所请求的数据范围同时落入至多个所述逻辑存储进程中的至少两个所述逻辑存储进程存储的数据范围内时,确定存储所述文件请求所请求的全部数据的固定存储进程;
从所述固定存储进程中获取所述文件请求所请求的全部数据。
上述文件处理方法还具有以下特点:当所述文件请求不具有分段标记时,确定存储所述文件请求所请求的全部数据的固定存储进程;
从所述固定存储进程中获取所述文件请求所请求的全部数据。
本发明还提供的另一种文件处理方法,包括:接收待存储的文件;
选取分布于多个后端缓存服务器中的多个存储进程作为逻辑存储进程;
将所述待存储的文件划分为多段数据范围,并将多段所述数据范围分别存储至多个所述逻辑存储进程中;
建立所述数据范围与所述逻辑存储进程的映射关系。
上述文件处理方法还具有以下特点:选取分布于多个后端缓存服务器中的至少一个存储进程作为固定存储进程;
将所述待存储的文件存储至所述固定存储进程中。
本发明提供了一种文件处理装置,包括:
第一接收模块,用于接收文件请求;
判断模块,用于当所述文件请求具有分段标记时,判断所请求的数据范围是否全部落入逻辑存储进程中存储的数据范围内,若是,确定与所述请求的数据范围对应的所述逻辑存储进程;
获取模块,用于从与所请求的数据范围对应的所述逻辑存储进程中获取所述请求所请求的数据。
上述文件处理装置还具有以下特点:所述判断模块还用于,根据所述请求的URL或URI确定唯一资源的特征,以及所述数据范围的range映射值计算该请求的哈希值;
根据哈希值与所述逻辑存储进程的对应关系,确定与所述请求对应的所述逻辑存储进程。
上述文件处理装置还具有以下特点:所述判断模块还用于,当至少一段所述请求所请求的数据范围同时落入至多个所述逻辑存储进程中的至少两个所述逻辑存储进程存储的数据范围内时,确定存储所述文件请求所请求的全部数据的固定存储进程;
所述获取模块还用于,从所述固定存储进程中获取所述文件请求所请求的全部数据。
上述文件处理装置还具有以下特点:所述判断模块还用于,当所述文件请求不具有分段标记时,确定存储所述文件请求所请求的全部数据的固定存储进程;
所述获取模块还用于,从所述固定存储进程中获取所述文件请求所请求的全部数据。
本发明还提供了另一种文件处理装置,包括:
第二接收模块,用于接收待存储的文件;
选取模块,用于选取分布于多个后端缓存服务器中的多个存储进程作为逻辑存储进程;
划分存储模块,用于将所述待存储的文件划分为多段数据范围,并将多段所述数据范围分别存储至多个所述逻辑存储进程中;
记录模块,用于建立所述数据范围与所述逻辑存储进程的映射关系。
本发明还提供了一种传输设备,所述传输设备包括:收发器、存储器、处理器;
所述收发器用于收发报文;
所述存储器用于存储指令和数据;
所述处理器用于读取所述存储器中存储的指令和数据,以执行入上所述的文件处理方法。
本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述程序被处理器执行时实现如上所述的文件处理方法。
本发明提供的文件处理方法及装置、传输设备、计算机可读存储介质,将文件分段存储并在接收到请求时分段提取,降低对单个后端进程CPU、磁盘IO的占用,减少磁盘空间浪费和上层节点带宽的同时,能够有效解决当对于单文件并发数量较多的下载请求时,造成单个后端进程CPU、磁盘IO占用量较大,服务器服务能力急剧下降的问题。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是现有技术中的一种文件处理方法的流程;
图2是现有技术中的另一种文件处理方法的流程;
图3是实施例提供的一种文件处理方法;
图4是实施例提供的另一种文件处理方法;
图5是实施例提供的文件处理方法的整体构思示意图;
图6是实施例提供的一种文件处理装置;
图7是实施例提供的另一种文件处理装置;
图8是实施例提供的数据范围的range映射值的映射表。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明提供了一种文件处理方法及装置,应用于对文件进行存储和分发的过程中,尤其是应用在大文件的存储并根据下载请求对其进行分发的过程中。其中,大文件是指其占用的存储空间大于预设值的文件,预设值的具体数值没有限定,可以根据本领域技术人员的理解进行调整,预设值可以是50G、100G或者300G。大文件可以是比如占用存储空间大于50G的音频文件,或者,占用存储空间大于100G的游戏,或者,占用存储空间大于300G的视频文件,以解决现有技术中将占用存储空间较大的文件存储在单个进程中,当出现多请求同时并发时,造成单个进程的CPU和磁盘IO跑高,导致响应变慢,服务能力急剧下降的问题。
如图4所示,本发明提供了一种文件处理方法,应用在文件的存储过程中。文件处理方法包括:
S11、接收待存储的文件;
S12、选取分布于多个后端缓存服务器中的多个存储进程作为逻辑存储进程;
其中,后端缓存服务器的数量至少为两个,每个后端缓存服务器中都具有多个存储进程,在选取存储进程作为逻辑存储进程时,是从多个后端缓存服务器中的全部存储进程中进行选取,且逻辑存储进程的数量至少为两个。比如,有N个后端缓存服务器,每个后端缓存服务器中具有N个存储进程,则存储进程的数量为NxN个,那么逻辑存储进程从NxN个存储进程中进行选取。当然,可以理解的是,在某些特殊情况下,后端缓存服务器的数量还可以为一个,该后端缓存服务器中具有N个存储进程,则逻辑存储进程从N个存储进程中选取。
S13、将待存储的文件划分为多段数据范围,并将多段数据范围分别存储至多个逻辑存储进程中;
在该步骤中,将待存储的文件划分为多段数据范围,从而将一个占用存储空间较大的文件划分为占用空间较小的多个数据段,并对其分别进行储存,减小每个逻辑存储进程被占用的存储空间。当接收到数据请求时,可以从多个逻辑存储进程中分别读取不同的多段数据范围,从而有效减少单个逻辑存储进程的CPU和磁盘IO占用,提升读取速度。
在一个具体的实施例中,将对待存储的文件划分为多段数据范围时,优选采用均匀划分的方法。比如,待存储文件的大小为1G,以100MB作为划分单元,则0-100MB为第一个数据范围,101-200MB为第二个数据范围,201-300MB为第三个数据范围,……,901-1000MB为10个数据范围,1001-1024MB为第11个数据范围,最后剩下24MB不够100MB,可以将其单独存储至逻辑存储进程中,方便存储和获取。在另一具体的实施例中,在某些情况下,也可以采用非均匀的划分方法,比如,根据视频、音频或游戏的内容进行划分。比如一个音频根据其内容划分连续的三段,0-400MB为第一个数据范围,讲述的是一个完整内容,400-800MB为第二数据范围,讲述的是另一个完整内容,800-1024MB为第三个数据范围,讲述的是第三个完整内容。在此种情况下,也可以将该待存储的音频文件划分为三个数据范围,存储至对应的逻辑存储进程中,方便存储和获取。
S14、建立数据范围与逻辑存储进程的映射关系。
在该步骤中,通过建立多段数据范围与逻辑存储进程中一一对应的映射关系,以保证在接收到数据读取请求时,能够快速找到与请求的数据范围对应的逻辑存储进程,进行数据提取。在建立数据范围与逻辑存储进程的映射关系过程中,可以采用现有技术中以将存在的多种映射关系建立方法,对此没有限定;只要在读取过程中使用与建立映射关系相同的方法进行映射关系查找即可。在本实施例中,优选采用哈希值计算方法建立多段数据范围与逻辑存储进程一一对应的关系,以保证读取过程中能够快速进行提取,获得更加快速的请求响应,提升用户的使用体验。另外,需要说明的是,在建立数据范围与逻辑存储进程的映射关系时,根据不同域名或者多个文件大小设置不同的映射关系表,根据跨度请求情况智能调整映射表的分段值,也即根据客户端请求的频率对每个逻辑存储进程中存储的数据范围进行智能调整。
进一步地,当客户端发出文件请求时,是否能够通过分段方式获取多段数据范围,是由客户端决定的,即客户端发出请求的时候会带range头,相当于本申请中的分段标记。如果客户端不允许通过将一个完整的文件通过分段方式获取,则即使将文件划分为多段数据范围并存储于多个逻辑存储进程中,依然无法从多个逻辑存储进程中分段进行获取。为了适应不同客户端的需求,本申请中的文件处理方法还包括:
S15、选取分布于多个后端缓存服务器中的至少一个存储进程作为固定存储进程;
其中,后端缓存服务器的数量至少为两个,每个后端缓存服务器中都具有多个存储进程,在选取存储进程作为固定存储进程时,是从多个后端缓存服务器中的全部存储进程中进行选取,且固定存储进程的数量至少为一个,在某些特殊情况下,也可以为两个,但是最好是一个,以满足客户端需求。比如,有N个后端缓存服务器,每个后端缓存服务器中具有N个存储进程,则存储进程的数量为NxN个,那么固定存储进程从NxN个存储进程中进行选取一个,则剩下的NxN-1个可以全部设置为逻辑存储进程,也可以根据具体的实际情况,从剩下的NxN-1个存储进程中选取多个作为逻辑存储进程,将待存储的文件划分为多段数据范围,将其存储在多个逻辑存储进程中。
S16、将待存储的文件存储至固定存储进程中。
当客户端发出文件请求时,且文件请求不允许请求获取的文件采用分段方式进行获取,则可以将客户端的获取请求链接至固定存储进程,以在客户端允许的方式下将请求获取的文件分发给客户端。
如图3所示,本申请还提供了一种文件处理方法,应用在文件的获取过程中,该获取方法依赖于上述的存储方法,只有请求获取的文件是采用上述文件处理方法中限定的存储方法进行存储时,才能够使用本实施例中的文件处理方法限定的获取过程进行获取。方法包括:
S21、接收文件请求;
S22、文件请求具有分段标记时,文件请求包括多段请求,判断每一段请求所请求的数据范围是否全部落入至多个逻辑存储进程中的一个逻辑存储进程存储的数据范围内,若是,确定与该请求对应的逻辑存储进程;
在此,需要说明的是,当文件请求具有分段标记时,说明该文件请求在请求文件时是以分段方式进行的,将一个完整的文件请求分为多段请求,在本发明中提及的请求,均为多段请求中的一段请求,提及的文件请求,为多段请求组合成的一个完整请求。由于是否能够根据文件请求采用以分段方式对文件进行分发,是由客户端决定的,当文件请求具有分段标记时,说明发送文件请求的客户端允许采用以分段方式对文件进行分发,才能够采用上述方法进行文件分发。文件请求包括多段请求,每个请求限定不同的数据范围,不同的客户端的文件请求中包括的请求的数据范围可能不同,比如,有的客户端的请求以10MB为一个数据范围,有的客户端的请求以50MB为一个数据范围。为了保证客户端从服务器获取的请求数据能够与客户端的请求匹配,需要对请求所请求的数据范围进行判断。判断每一端请求所请求的数据范围是否全部落入至多个逻辑存储进程中的一个逻辑进程存储的数据范围内。
比如,客户端向服务器发送大小为1G的文件请求,文件请求的请求以10MB为一个数据范围,且均匀分段;服务器的多个逻辑存储进程中存储的数据范围是均匀的,以100MB作为划分单元,则0-100MB为第一个数据范围,101-200MB为第二个数据范围,201-300MB为第三个数据范围,……,901-1000MB为10个数据范围,1001-1024MB为第11个数据范围。由上述可知,请求的10MB的数据范围均能够落入至每一个逻辑存储进程中,则可以采用分段方式向客户端发送其请求的文件。
再比如,客户端向服务器发送大小为1G的文件请求,文件请求的请求以150MB为一个数据范围,且除了最后一个请求限定的范围外,其余的请求均为均匀分段;服务器的多个逻辑存储进程中存储的数据范围是均匀的,以100MB作为划分单元,则0-100MB为第一个数据范围,101-200MB为第二个数据范围,201-300MB为第三个数据范围,……,901-1000MB为10个数据范围,1001-1024MB为第11个数据范围。由上述可知,150MB为一个数据范围没有全部落入至逻辑存储进程中的一个逻辑存储进程中,即150MB跨越了两个数据范围,需要从两个逻辑存储进程中获取,此时,则不能将多个逻辑存储进程中存储的数据范围分别发送给客户端,需要采用特殊的方式进行处理(后面有详细介绍)。
S23、从与请求的数据范围对应的逻辑存储进程中获取请求所请求的数据。
从对应的逻辑存储进程中获取请求所请求的数据后,可以直接将各段数据直接发送给客户端,客户端自行进行整合。
进一步地,在步骤S22中,确定与所请求的数据范围对应的逻辑存储进程包括:
根据请求的URL或URI确定唯一资源的特征,以及数据范围的range映射值计算该段请求的哈希值;
根据哈希值与逻辑存储进程的对应关系,确定与请求对应的逻辑存储进程。
其中,URL是统一资源定位符,URL或URI等用于确定唯一资源的特征,这些特征包括所请求的文件存储的后端缓存服务器以及设置于其中的逻辑存储进程的位置,数据范围的range映射值用于确定多段请求所请求的数据范围,以确定从多个逻辑存储进程中的哪个位置获取其请求的数据范围。在计算过程中采用的是哈希值法,当然,可以理解的是,除了哈希值法之外,还可以采用现有技术中的其他计算方法进行计算,以确定请求所请求的数据范围与逻辑存储进程之间的关系。另外,哈希值与逻辑存储进程的对应关系是在存储时候就已经确定的,只要根据url和数据范围的range映射值计算出来的哈希值是一致的,则从相同的逻辑存储进程中获取数据范围。由于哈希值计算是本领域技术人员常用的计算方法,其计算过程被本领域技术人员熟知,在此不再赘述。
在一个具体的实施例中,根据请求的URL,以及数据范围的range映射值计算该段请求的哈希值时,在具体计算时,请求的URL以及哈希值的具体计算方法是本领域技术人员所熟知的,在此不再赘述。数据范围的range映射值的确定方法如图8所示,服务器的多个逻辑存储进程中存储的数据范围是均匀的,以100MB作为划分单元,则0-100MB为第1个数据范围,该数据范围的range映射值为0;101-200MB为第二个数据范围,该数据范围的range映射值为1;201-300MB为第三个数据范围,该数据范围的range映射值为2,……,901-1000MB为10个数据范围,该数据范围的range映射值为9;1001-1024MB为第11个数据范围,该数据范围的range映射值为10。当请求所请求的数据范围为每10MB一个区间时,所请求的0-10MB、10-20MB、……、80-90MB、90-100MB的数据范围的range映射均为0,所请求的100-110MB、……、190-200MB的数据范围的range映射值均为1,以此类推,910-920MB、……、990-1000MB的数据范围的range映射值均为9。并设置固定存储单元(后面有详细介绍)的range映射值为n。则在计算哈希值时,所请求的数据范围为10-20MB哈希值计算为:hash(URL+0);所请求的数据范围为80-90MB哈希值计算为:hash(URL+0);所请求的数据范围为190-200MB哈希值计算为:hash(URL+1);所请求的数据范围为990-1000MB哈希值计算为:hash(URL+9)。在另一个具体的实施例中,逻辑存储单元存储的数据范围不变,当请求所请求的数据范围为每5MB一个区间时,所请求的0-5MB、5-10MB、……、90-95MB、95-100MB的数据范围的range映射均为0,所请求的100-105MB、……、195-200MB的数据范围的range映射值均为1,以此类推,900-905MB、……、995-1000MB的数据范围的range映射值均为9,哈希值的计算方法如上。
进一步地,在某些情况下,客户端所限定的请求所请求的数据范围没有能够与存储时的存储方式形成十分合适的配合关系,即每一段请求没有全部落入至多个逻辑存储进程中的一个逻辑存储进程的数据范围内时。比如,客户端向服务器发送大小为1G的文件请求,文件请求的请求以150MB为一个数据范围,且除了最后一个请求限定的范围外,其余的请求均为均匀分段;服务器的多个逻辑存储进程中存储的数据范围是均匀的,以100MB作为划分单元,则0-100MB为第一个数据范围,101-200MB为第二个数据范围,201-300MB为第三个数据范围,……,901-1000MB为10个数据范围,1001-1024MB为第11个数据范围。由上述可知,150MB为一个数据范围没有全部落入至逻辑存储进程中的一个逻辑存储进程中,即150MB跨越了两个数据范围,此时上述方法不再适用。因此,采用以下方法对文件请求进行处理:
S24、当至少一段请求所请求的数据范围同时落入至多个逻辑存储进程中的至少两个逻辑存储进程存储的数据范围内时,确定存储文件请求所请求的全部数据的固定存储进程;
S25、从固定存储进程中获取文件请求所请求的全部数据。
由于存在一段请求所请求的数据范围跨越两个、甚至多个逻辑存储进程时,容易出现获取混乱的情况。因此,设置固定存储进程,当出现现上述情况时,直接将文件请求链接至固定存储进程中,从固定存储进程中获取文件请求所请求的全部数据,便于对特殊情况进行处理,避免出现客户端获取不到其所请求的文件的情况,提升用户的使用体验。
进一步地,由于是否能够分段获取客户端所请求的文件,是由客户端限定的,当客户端不允许分段获取所请求的文件,其向服务器发送的文件请求中不具有分段标记,这种情况下,客户端只允许从一个逻辑存储进程中获取其所请求的文件时,采用以下方法:
S26、当文件请求不具有分段标记时,确定存储文件请求所请求的全部数据的固定存储进程;
S25、从固定存储进程中获取文件请求所请求的全部数据。
进一步地,通常情况下,客户端向距离其较近的边缘服务器发出文件请求,但边缘服务器上不一定存储有客户端请求获取的内容,此时,采用以下方法:
S27、当多个逻辑存储进程中均没有存储文件请求所请求的数据时,确定固定存储进程;
S28、控制固定存储进程从所请求的数据的提供端获取文件请求所请求的数据。
在从数据的提供端获取到文件请求所请求的文件后,存储在固定存储进程中,并将文件发送给客户端。其中,数据的提供端为边缘服务器的上层节点,比如可以至转推服务器、父服务器或者是源服务器,且当边缘服务器向上层节点请求文件请求所请求的文件时,优选选择距离其较近的深层节点,以更快地获取文件,减少客户端等待时间。
如图5所示,下面通过一个具体的实施例,对本发明中的文件处理方法进行详细说明,在本实施例中具有3个后端缓存服务器,每个后端缓存服务器均设置有7个存储进程。后端缓存服务器接收到待存储的游戏文件,游戏文件大小为20G,选取3个后端缓存服务器中的21个存储进程中的20个存储进程作为逻辑存储进程。将20G的游戏文件均匀划分为20段数据范围,每一个数据范围为1G,并将其分别存储至被选定的20个逻辑存储进程中。存储完成后,建立20段数据范围与20个逻辑存储进程之间的映射关系。选取21个存储进程中剩下的一个存储进程作为固定存储进程,将待存储的文件全部存储至该固定存储进程中。
当前端负载均衡服务器接收到请求时,判断文件请求中是否具有分段标记,如果不包含分段标记,说明该客户端不允许采用分段方式获取文件请求所请求的文件,此时,确定存储文件请求所请求的全部数据的固定存储进程,从固定存储进程中获取文件请求所请求的全部数据,以满足客户端的文件获取形式。
当文件获取请求中包含分段标记时,说明该客户端允许采用分段方式获取文件请求所请求的文件,在此种情况下,文件请求包括多段请求,在本实施例中,包括40个请求,每个请求所请求的数据范围为0.5G,0-0.5G、0.5-1G、1G-1.5G、……、19G-19.5G、19.5G-20G。此时每一段请求所请求的数据范围(0.5G)全部落入至多个逻辑存储进程中的一个逻辑存储进程存储的数据范围(1G)内,则从与请求对应的逻辑存储进程中获取请求所请求的数据。
接着,根据数据请求的URL,以及数据范围的range映射值计算该段请求的哈希值,根据哈希值与逻辑存储进程的对应关系,确定与请求对应的逻辑存储进程。
当文件请求包括多段请求,在本实施例中,包括10个请求,每个请求所请求的数据范围为2G,0-2G、2-4G、……、16G-18G、18G-20G。此时每一段请求所请求的数据范围(2G)同时落入至多个逻辑存储进程中的两个逻辑存储进程存储的数据范围(1G)内,则确定存储文件请求所请求的全部数据的固定存储进程,从固定存储进程中获取文件请求所请求的全部数据。
另外,当接收到文件请求时,如果后端缓存服务器上没有存储该文件,则确定固定存储进程,控制固定存储进程从所请求的数据的提供端获取文件请求所请求的数据,以保证客户端能够及时获取到所请求的文件。
如图6所示,本发明提供了一种文件处理装置,用于配合上述文件处理方法对待存储的文件进行存储,文件处理装置包括:
第二接收模块,用于接收待存储的文件。
选取模块,用于选取分布于多个后端缓存服务器中的多个存储进程作为逻辑存储进程。进一步地,选取模块还用于,选取分布于多个后端缓存服务器中的至少一个存储进程作为固定存储进程。
划分存储模块,用于将待存储的文件划分为多段数据范围,并将多段数据范围分别存储至多个逻辑存储进程中。进一步地,划分存储模块,还用于将待存储的文件存储至固定存储进程中。
记录模块,用于建立数据范围与逻辑存储进程的映射关系。
如图7所示,本发明还提供了一种文件处理装置,用于与上述文件处理方法配合使用,在接收到文件请求时,将客户端发送的文件请求所请求的文件分发给客户端,文件处理装置包括:
第一接收模块,用于接收文件请求;
判断模块,用于文件请求具有分段标记时,文件请求包括多段请求,判断每一段请求所请求的数据范围是否全部落入至多个逻辑存储进程中的一个逻辑存储进程存储的数据范围内,若是,确定与该请求对应的逻辑存储进程;
获取模块,用于从与请求对应的逻辑存储进程中获取请求所请求的数据。
其中,判断模块还用于,根据请求的URL,以及数据范围的range映射值计算该段请求的哈希值;根据哈希值与逻辑存储进程的对应关系,确定与请求对应的逻辑存储进程。判断模块还用于,当文件请求不具有分段标记时,确定存储文件请求所请求的全部数据的固定存储进程。进一步地,判断模块还用于,当至少一段请求所请求的数据范围同时落入至多个逻辑存储进程中的至少两个逻辑存储进程存储的数据范围内时,确定存储文件请求所请求的全部数据的固定存储进程。另外,判断模块还用于,当多个逻辑存储进程中均没有存储文件请求所请求的数据时,确定固定存储进程,以实现一个节点只回上层节点拉取一次文件的效果,节省带宽资源占用。
更进一步地,获取模块还用于,从固定存储进程中获取文件请求所请求的全部数据,以及控制固定存储进程从上层节点获取文件请求所请求的数据。
另外,在此需要说明的是,接收客户端发出的文件请求的是前端服务器,存储进程运行在后端缓存服务器上,优选地,前端服务器为前端均衡负载服务器,均衡负载服务器能够准确判断后端缓存服务器中运行的存储进程中的占用情况,当需要对待存储文件进行存储时,能够在多个存储进程中快速选取合适的存储进程作为逻辑存储进程对文件进行分段存储。
采用本申请中的文件处理方法对带存储文件进行存储时,将一个完整的文件尽可能零散地分散地存储多后端缓存服务器中的多个存储进程中,以使后端缓存服务器的CPU和磁盘IO都能够得到有效打散,避免从单一进程中获取文件,造成服务该单一进程的CPU和磁盘IO跑高,影响获取速度。
与此同时,本发明还提供了一种传输设备,传输设备包括:收发器、存储器、处理器;
收发器用于收发报文;
存储器用于存储指令和数据;
处理器用于读取存储器中存储的指令和数据,以执行上述的文件处理方法。
本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,程序被处理器执行时实现上述的文件处理方法。
上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。
Claims (12)
1.一种文件处理方法,其特征在于,所述方法包括:
接收文件请求;
当所述文件请求具有分段标记时,判断所请求的数据范围是否全部落入逻辑存储进程中存储的数据范围内,若是,确定与所请求的数据范围对应的所述逻辑存储进程;
从与所请求的数据范围对应的所述逻辑存储进程中获取所述请求所请求的数据。
2.如权利要求1所述的文件处理方法,其特征在于,所述确定与所请求的数据范围对应的所述逻辑存储进程包括:
根据所述请求的URL或URI确定唯一资源的特征,以及所述数据范围的range映射值计算该请求的哈希值;
根据哈希值与所述逻辑存储进程的对应关系,确定与所述请求对应的所述逻辑存储进程。
3.如权利要求1所述的文件处理方法,其特征在于,所述方法还包括:
当至少一段所述请求所请求的数据范围同时落入至多个所述逻辑存储进程中的至少两个所述逻辑存储进程存储的数据范围内时,确定存储所述文件请求所请求的全部数据的固定存储进程;
从所述固定存储进程中获取所述文件请求所请求的全部数据。
4.如权利要求1所述的文件处理方法,其特征在于,所述方法还包括:
当所述文件请求不具有分段标记时,确定存储所述文件请求所请求的全部数据的固定存储进程;
从所述固定存储进程中获取所述文件请求所请求的全部数据。
5.一种文件处理方法,其特征在于,所述方法包括:
接收待存储的文件;
选取分布于多个后端缓存服务器中的多个存储进程作为逻辑存储进程;
将所述待存储的文件划分为多段数据范围,并将多段所述数据范围分别存储至多个所述逻辑存储进程中;
建立所述数据范围与所述逻辑存储进程的映射关系。
6.一种文件处理装置,其特征在于,所述装置包括:
第一接收模块,用于接收文件请求;
判断模块,用于当所述文件请求具有分段标记时,判断所请求的数据范围是否全部落入逻辑存储进程中存储的数据范围内,若是,确定与所述请求的数据范围对应的所述逻辑存储进程;
获取模块,用于从与所请求的数据范围对应的所述逻辑存储进程中获取所述请求所请求的数据。
7.如权利要求6所述的文件处理装置,其特征在于,所述判断模块还用于,根据所述请求的URL或URI确定唯一资源的特征,以及所述数据范围的range映射值计算该请求的哈希值;
根据哈希值与所述逻辑存储进程的对应关系,确定与所述请求对应的所述逻辑存储进程。
8.如权利要求6所述的文件处理装置,其特征在于,所述判断模块还用于,当至少一段所述请求所请求的数据范围同时落入至多个所述逻辑存储进程中的至少两个所述逻辑存储进程存储的数据范围内时,确定存储所述文件请求所请求的全部数据的固定存储进程;
所述获取模块还用于,从所述固定存储进程中获取所述文件请求所请求的全部数据。
9.如权利要求6所述的文件处理装置,其特征在于,所述判断模块还用于,当所述文件请求不具有分段标记时,确定存储所述文件请求所请求的全部数据的固定存储进程;
所述获取模块还用于,从所述固定存储进程中获取所述文件请求所请求的全部数据。
10.一种文件处理装置,其特征在于,所述装置包括:
第二接收模块,用于接收待存储的文件;
选取模块,用于选取分布于多个后端缓存服务器中的多个存储进程作为逻辑存储进程;
划分存储模块,用于将所述待存储的文件划分为多段数据范围,并将多段所述数据范围分别存储至多个所述逻辑存储进程中;
记录模块,用于建立所述数据范围与所述逻辑存储进程的映射关系。
11.一种传输设备,其特征在于,所述传输设备包括:收发器、存储器、处理器;
所述收发器用于收发报文;
所述存储器用于存储指令和数据;
所述处理器用于读取所述存储器中存储的指令和数据,以执行权利要求1至4、权利要求5任一项所述的文件处理方法。
12.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至4、权利要求5任一项所述的文件处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911038715.5A CN112738150A (zh) | 2019-10-29 | 2019-10-29 | 文件处理方法及装置、传输设备、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911038715.5A CN112738150A (zh) | 2019-10-29 | 2019-10-29 | 文件处理方法及装置、传输设备、计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112738150A true CN112738150A (zh) | 2021-04-30 |
Family
ID=75589011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911038715.5A Pending CN112738150A (zh) | 2019-10-29 | 2019-10-29 | 文件处理方法及装置、传输设备、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112738150A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719936A (zh) * | 2009-12-09 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 提供文件下载服务的方法、装置及缓存系统 |
CN103139241A (zh) * | 2011-11-24 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 网络资源文件的离线下载系统和方法 |
CN103227826A (zh) * | 2013-04-23 | 2013-07-31 | 蓝汛网络科技(北京)有限公司 | 一种文件传输方法及装置 |
CN105025391A (zh) * | 2014-04-30 | 2015-11-04 | 腾讯科技(深圳)有限公司 | 视频播放方法和装置 |
CN105893429A (zh) * | 2015-12-08 | 2016-08-24 | 乐视云计算有限公司 | 用于优化web缓存的方法及系统 |
CN105979277A (zh) * | 2016-04-25 | 2016-09-28 | 乐视控股(北京)有限公司 | 一种文件传输方法及电子设备 |
CN105978936A (zh) * | 2016-04-25 | 2016-09-28 | 乐视控股(北京)有限公司 | Cdn服务器及其缓存数据的方法 |
CN109831536A (zh) * | 2019-03-22 | 2019-05-31 | 成都六四三六五科技有限公司 | 一种前端负载均衡服务降级系统及方法 |
CN109947716A (zh) * | 2017-09-04 | 2019-06-28 | 中兴通讯股份有限公司 | 一种文件存储方法、设备及计算机可读存储介质 |
-
2019
- 2019-10-29 CN CN201911038715.5A patent/CN112738150A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719936A (zh) * | 2009-12-09 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 提供文件下载服务的方法、装置及缓存系统 |
CN103139241A (zh) * | 2011-11-24 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 网络资源文件的离线下载系统和方法 |
CN103227826A (zh) * | 2013-04-23 | 2013-07-31 | 蓝汛网络科技(北京)有限公司 | 一种文件传输方法及装置 |
CN105025391A (zh) * | 2014-04-30 | 2015-11-04 | 腾讯科技(深圳)有限公司 | 视频播放方法和装置 |
CN105893429A (zh) * | 2015-12-08 | 2016-08-24 | 乐视云计算有限公司 | 用于优化web缓存的方法及系统 |
CN105979277A (zh) * | 2016-04-25 | 2016-09-28 | 乐视控股(北京)有限公司 | 一种文件传输方法及电子设备 |
CN105978936A (zh) * | 2016-04-25 | 2016-09-28 | 乐视控股(北京)有限公司 | Cdn服务器及其缓存数据的方法 |
CN109947716A (zh) * | 2017-09-04 | 2019-06-28 | 中兴通讯股份有限公司 | 一种文件存储方法、设备及计算机可读存储介质 |
CN109831536A (zh) * | 2019-03-22 | 2019-05-31 | 成都六四三六五科技有限公司 | 一种前端负载均衡服务降级系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11194719B2 (en) | Cache optimization | |
CN109327550B (zh) | 一种访问请求的分配方法、装置、存储介质和计算机设备 | |
KR101547498B1 (ko) | 하이브리드 클라우드 환경에서 데이터를 분산하는 방법 및 장치 | |
US7406512B2 (en) | Automatic migration of data via a distributed computer network | |
US8086634B2 (en) | Method and apparatus for improving file access performance of distributed storage system | |
CN106790324B (zh) | 内容分发方法、虚拟服务器管理方法、云平台和系统 | |
US9998533B2 (en) | P2P content caching system and method | |
US20080208961A1 (en) | Parallel retrieval system | |
CN108881348B (zh) | 服务质量控制方法、装置和存储服务器 | |
CN113452808B (zh) | 域名解析方法、装置、设备及存储介质 | |
CN111327606B (zh) | 资源管理方法、系统及存储介质 | |
CN109756584B (zh) | 域名解析方法、域名解析装置及计算机可读存储介质 | |
JP6972714B2 (ja) | データ取得プログラム、装置、及び方法 | |
CN110035306A (zh) | 文件的部署方法及装置、调度方法及装置 | |
CN111159219A (zh) | 一种数据管理方法、装置、服务器及存储介质 | |
CN105763616B (zh) | 资源下载方法及装置 | |
CN111510491B (zh) | 资源访问方法、缓存服务器、存储介质及电子设备 | |
CN112738150A (zh) | 文件处理方法及装置、传输设备、计算机可读存储介质 | |
CN114466031B (zh) | 一种cdn系统节点配置方法、装置、设备及存储介质 | |
EP3855707B1 (en) | Systems, methods, and storage media for managing traffic on a digital content delivery network | |
CN112463379A (zh) | 虚拟缓存服务器的管理方法、系统、电子设备及存储介质 | |
CN112003885A (zh) | 内容传输设备及内容传输方法 | |
CN113132439B (zh) | 一种数据处理方法和系统及边缘节点 | |
CN112861031A (zh) | Cdn中url刷新方法、装置、设备以及cdn节点 | |
CN111935233B (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 |