CN109167845A - 一种面向大文件分发场景的分片缓存及重组方法 - Google Patents
一种面向大文件分发场景的分片缓存及重组方法 Download PDFInfo
- Publication number
- CN109167845A CN109167845A CN201811427340.7A CN201811427340A CN109167845A CN 109167845 A CN109167845 A CN 109167845A CN 201811427340 A CN201811427340 A CN 201811427340A CN 109167845 A CN109167845 A CN 109167845A
- Authority
- CN
- China
- Prior art keywords
- segment
- request
- client
- file
- node
- 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
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]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种面向大文件分发场景的分片缓存及重组方法,该方法在CDN内容分发网络的各个节点中进行部署实现,用于对网站的页面、图片、视频文件、下载大文件通过缓存进行分发加速服务,旨在让终端用户能够更快速的获取到要访问的内容或文件。与现有技术相比,本发明实现了在节点收到来自客户端对相应文件的请求时,从缓存的片段中选择客户端请求的字节范围并进行重组返回等优点。
Description
技术领域
本发明涉及一种CDN(Content Delivery Network内容分发网络)领域,尤其是涉及一种面向大文件分发场景的分片缓存及重组方法。
背景技术
在提供互联网服务的网站中大多已经使用了CDN进行网站内容的分发加速传输,以提升用户的访问体验,降低源站的负载。CDN是在传统的网络架构中,在服务器与客户端之间增加了一系列部署在不同区域的缓存节点,从而通过缓存是同区域用户快速获取内容。
在目前针对视频、软件下载等大文件的请求,客户端通常会有range请求和非range请求,CDN服务器也会根据客户端的请求类型向源站发起同样的类型的请求,但是针对range请求,CDN节点不会将请求下来的分片文件进行缓存的。
基于上述场景,在大文件分发过程中会有以下几点不足:(1)对于客户端的range请求,CDN直接转发该range请求进行回源,因range的不确定性通常节点不会对应的片段进行缓存,从而每个来自客户端的range请求都要回源获取,会造成大量的回源,回源带宽浪费;(2)即便对(1)中描述的片段进行缓存,CDN节点也无法对其再次利用,属于无意义缓存,会造成存储空间的浪费;(3)大文件完整缓存回源时间长,分发性能低,必须要做预缓存,否则分发成功率很低。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种面向大文件分发场景的分片缓存及重组方法。
本发明的目的可以通过以下技术方案来实现:
一种面向大文件分发场景的分片缓存及重组方法,该方法在CDN内容分发网络的各个节点中进行部署实现,用于对网站的页面、图片、视频文件、下载大文件通过缓存进行分发加速服务,旨在让终端用户能够更快速的获取到要访问的内容或文件。
优选地,所述的方法包括:
CDN节点收到来自客户端的文件访问请求,包括情形一:客户端请求整个文件,以及情形二:客户端进行range请求,请求文件某个片段。
优选地,所述的情形一:客户端请求整个文件,具体过程如下:
(1.1)如果当前节点已经缓存被请求文件的所有分片,则直接将这些文件分片进行重组,并返回给客户端;
(1.2)如果当前节点没有对该文件进行缓存,则该节点会进行回源;
(1.3)如果当前节点缓存了部分片段,则CDN节点会首先向源站以range请求的方式请求该文件未被缓存的片段,并进行片段重组,返回给客户端。
优选地,所述的节点会进行回源具体为:
首先节点向源站发起一个获取文件大小的请求,得到文件大小之后,当前节点会按照分片回源的配置确定将源文件分成多少个片段;
之后CDN节点会向源站发起range请求,并按照请求下来的片段进行缓存,同时将已经缓存的片段进行重组,返回给客户端。
优选地,所述的情形二:客户端进行range请求,请求文件某个片段,具体过程如下:
(2.1)如果请求的片段字节范围全部包含在当前节点已经缓存的片段中,则当前节点会从已缓存片段中截取客户端请求的片段字节范围,并进行重组,然后将重组的片段返回给客户端;
(2.2)如果请求的片段字节范围全部不包含在当前节点已经缓存的片段中,则当前节点会按照分片回源的配置去向源站发起range请求,来请求包含客户端请求的片段字节范围的片段,将回源获取的片段进行重组,然后将重组的片段返回给客户端。
优选地,所述的情形二:客户端进行range请求,请求文件某个片段,具体过程还包括:
(2.3)如果请求的片段字节范围部分包含在当前节点已经缓存的片段中,则当前节点会从已缓存片段中截取客户端请求的片段字节范围,按照分片回源的配置去向源站发起range请求,来请求包含客户端请求的片段字节范围但未被当前节点缓存的片段进行缓存,节点将从缓存的片段中截取截取客户端请求的片段字节范围,并进行重组,然后将重组的片段返回给客户端。
与现有技术相比,本发明具有以下优点:
由于在CDN节点添加了针对大文件分发的分片缓存和重组机制,节点可以根据该机制进行range回源,并缓存获取的片段,因该机制中包含对片段的标记,可以被节点识别和再次利用。从而实现了在节点收到来自客户端对相应文件的请求时,从缓存的片段中选择客户端请求的字节范围并进行重组返回。解决了以下问题:(1)减少了回源次数,节省了回源带宽;(2)不进行无意义缓存,节省了存储空间;(3)对于没能进行预缓存的大文件,可在回源同时向客户端转发,提升了大文件分发效率。
附图说明
图1为本发明客户端进行range请求并请求文件某个片段的流程图;
图2为本发明客户端请求整个文件的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明提供了一种面向大文件分发场景的分片缓存及重组机制。在CDN内容分发网络的各个节点中进行部署实现。详细实现方法如下:
CDN节点收到来自客户端的文件访问请求:
(1)情形一:客户端请求整个文件,如图2所示;
(1.1)如果当前节点已经缓存被请求文件的所有分片,则直接将这些文件分片进行重组,并返回给客户端;
(1.2)如果当前节点没有对该文件进行缓存,则该节点会进行回源。首先节点向源站发起一个获取文件大小的请求,得到文件大小之后,当前节点会按照分片回源的配置确定将源文件分成多少个片段。之后CDN节点会向源站发起range请求,并按照请求下来的片段进行缓存。同时将已经缓存的片段进行重组,返回给客户端。
(1.3)如果当前节点缓存了部分片段,则CDN节点会首先想源站以range请求的方式请求该文件未被缓存的片段,并进行片段重组,返回给客户端。
(2)情形二:客户端进行range请求,请求文件某个片段,如图1所示:
(2.1)如果请求的片段字节范围全部包含在当前节点已经缓存的片段中,则当前节点会从已缓存片段中截取客户端请求的片段字节范围,并进行重组,然后将重组的片段返回给客户端;
(2.2)如果请求的片段字节范围全部不包含在当前节点已经缓存的片段中,则当前节点会按照分片回源的配置去向源站发起range请求,来请求包含客户端请求的片段字节范围的片段,将回源获取的片段进行重组,然后将重组的片段返回给客户端;
(2.3)如果请求的片段字节范围部分包含在当前节点已经缓存的片段中,则当前节点会从已缓存片段中截取客户端请求的片段字节范围,按照分片回源的配置去向源站发起range请求,来请求包含客户端请求的片段字节范围但未被当前节点缓存的片段进行缓存。节点将从缓存的片段中截取截取客户端请求的片段字节范围,并进行重组,然后将重组的片段返回给客户端。
具体实施例:
某文件大小100MB,客户端向CDN节点请求该文件。
(1)可能的请求类型一:range请求
(1.1)客户端发起的range请求,http状态码为206片段范围是[3.6M,5.4M],即该请求要获取文件的第3.6M个字节到第5.4M个字节。
(1.2)CDN某节点收到该请求,首先判断[3.6M,5.4M]是否包含在已经缓存的片段中。
(1.3)可能的情况一:[3.6M,5.4M]部包含在已经缓存的片段中,则当前节点按照配置的range回源规则进行回源。回源的range大小是预设好的,默认为1M。如果想要获取[3.6M,5.4M]这个范围的文件,就要回源请求[3M,4M]、[4M,5M]、[5M,6M]这三个片段。当前节点得到上述三个片段并缓存。按照客户端请求的[3.6M,5.4M]这个范围要求,节点会调用重组机制,从[3M,4M]获取[3.6M,4M],从[5M,6M]获取[5M,5.4M],在将[3.6M,4M]、[4M,5M]、[5M,5.4M]重组返回给客户端。节点不会缓存重组后的数据。
(1.4)可能的情况二:[3.6M,5.4M]包含在已经缓存的片段中,则当前节点不需要回源,只是从已经缓存的[3M,4M]、[4M,5M]、[5M,6M]这三个片段中获取对应数据并重组。按照客户端请求的[3.6M,5.4M]这个范围要求,节点会调用重组机制,从[3M,4M]获取[3.6M,4M],从[5M,6M]获取[5M,5.4M],在将[3.6M,4M]、[4M,5M]、[5M,5.4M]重组返回给客户端。节点不会缓存重组后的数据。
(1.5)可能的情况三:[3.6M,5.4M]部分包含在已经缓存的片段中,则当前节点只回源获取未缓存的片段,例如已经缓存[3M,4M]、[4M,5M],则只需回源获取[5M,6M]。按照客户端请求的[3.6M,5.4M]这个范围要求,节点会调用重组机制,从[3M,4M]获取[3.6M,4M],从[5M,6M]获取[5M,5.4M],在将[3.6M,4M]、[4M,5M]、[5M,5.4M]重组返回给客户端。节点不会缓存重组后的数据。
(2)可能的请求类型一二:客户端请求整个文件。
(2.1)客户端发起的对整个文件的请求,http状态码为200;
(2.2)CDN某节点收到该请求,首先判断当前节点缓存了该文件的哪些片段。
(2.3)可能的情况一:该文件全部片段都缓存在当前节点,则节点会调用重组机制,将文件从第一个片段开始重组,并将重组的文件返回给客户端。节点不会缓存重组后的数据。
(2.4)可能的情况二:该文件全部片段都未缓存在当前节点,则当前节点按照配置的range方式回源规则进行回源。回源的range大小是预设好的,默认为1M。回源获取[0M,1M]、[1M,2M]、[2M,3M]……直至获取该文件的全部片段。同时,获得[0M,1M]、[1M,2M]片段后,节点会开始调用重组机制,将片段进行重组,边回源边重组边向客户端返回文件。节点不会缓存重组后的数据。
(2.5)可能的情况三:该文件部分片段已经缓存在当前节点,则当前节点按照配置的range方式回源规则进行回源获取未缓存的片段。回源的range大小是预设好的,默认为1M。同时,在当前节点获得或者已有缓存[0M,1M]、[1M,2M]片段的情况下,节点会开始调用重组机制,将片段进行重组,边回源边重组边向客户端返回文件。节点不会缓存重组后的数据。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (6)
1.一种面向大文件分发场景的分片缓存及重组方法,其特征在于,该方法在CDN内容分发网络的各个节点中进行部署实现,用于对网站的页面、图片、视频文件、下载大文件通过缓存进行分发加速服务,旨在让终端用户能够更快速的获取到要访问的内容或文件。
2.根据权利要求1所述的一种面向大文件分发场景的分片缓存及重组方法,其特征在于,所述的方法包括:
CDN节点收到来自客户端的文件访问请求,包括情形一:客户端请求整个文件,以及情形二:客户端进行range请求,请求文件某个片段。
3.根据权利要求2所述的一种面向大文件分发场景的分片缓存及重组方法,其特征在于,所述的情形一:客户端请求整个文件,具体过程如下:
(1.1)如果当前节点已经缓存被请求文件的所有分片,则直接将这些文件分片进行重组,并返回给客户端;
(1.2)如果当前节点没有对该文件进行缓存,则该节点会进行回源;
(1.3)如果当前节点缓存了部分片段,则CDN节点会首先向源站以range请求的方式请求该文件未被缓存的片段,并进行片段重组,返回给客户端。
4.根据权利要求3所述的一种面向大文件分发场景的分片缓存及重组方法,其特征在于,所述的节点会进行回源具体为:
首先节点向源站发起一个获取文件大小的请求,得到文件大小之后,当前节点会按照分片回源的配置确定将源文件分成多少个片段;
之后CDN节点会向源站发起range请求,并按照请求下来的片段进行缓存,同时将已经缓存的片段进行重组,返回给客户端。
5.根据权利要求2所述的一种面向大文件分发场景的分片缓存及重组方法,其特征在于,所述的情形二:客户端进行range请求,请求文件某个片段,具体过程如下:
(2.1)如果请求的片段字节范围全部包含在当前节点已经缓存的片段中,则当前节点会从已缓存片段中截取客户端请求的片段字节范围,并进行重组,然后将重组的片段返回给客户端;
(2.2)如果请求的片段字节范围全部不包含在当前节点已经缓存的片段中,则当前节点会按照分片回源的配置去向源站发起range请求,来请求包含客户端请求的片段字节范围的片段,将回源获取的片段进行重组,然后将重组的片段返回给客户端。
6.根据权利要求5所述的一种面向大文件分发场景的分片缓存及重组方法,其特征在于,所述的情形二:客户端进行range请求,请求文件某个片段,具体过程还包括:
(2.3)如果请求的片段字节范围部分包含在当前节点已经缓存的片段中,则当前节点会从已缓存片段中截取客户端请求的片段字节范围,按照分片回源的配置去向源站发起range请求,来请求包含客户端请求的片段字节范围但未被当前节点缓存的片段进行缓存,节点将从缓存的片段中截取截取客户端请求的片段字节范围,并进行重组,然后将重组的片段返回给客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811427340.7A CN109167845A (zh) | 2018-11-27 | 2018-11-27 | 一种面向大文件分发场景的分片缓存及重组方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811427340.7A CN109167845A (zh) | 2018-11-27 | 2018-11-27 | 一种面向大文件分发场景的分片缓存及重组方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109167845A true CN109167845A (zh) | 2019-01-08 |
Family
ID=64875137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811427340.7A Pending CN109167845A (zh) | 2018-11-27 | 2018-11-27 | 一种面向大文件分发场景的分片缓存及重组方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109167845A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021169298A1 (zh) * | 2020-02-29 | 2021-09-02 | 平安科技(深圳)有限公司 | 减少回源请求的方法、装置及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102170475A (zh) * | 2011-04-22 | 2011-08-31 | 中兴通讯股份有限公司 | 一种基于p2p的文件分发系统及分片方法 |
CN102883187A (zh) * | 2012-09-17 | 2013-01-16 | 华为技术有限公司 | 一种时移节目服务方法、设备和系统 |
CN104284202A (zh) * | 2014-10-14 | 2015-01-14 | 无锡云捷科技有限公司 | 一种采用优化式结构的cdn透明传输方法 |
CN104935648A (zh) * | 2015-06-03 | 2015-09-23 | 北京快网科技有限公司 | 一种高性价比的cdn系统及文件预推、分片缓存的方法 |
CN105978936A (zh) * | 2016-04-25 | 2016-09-28 | 乐视控股(北京)有限公司 | Cdn服务器及其缓存数据的方法 |
-
2018
- 2018-11-27 CN CN201811427340.7A patent/CN109167845A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102170475A (zh) * | 2011-04-22 | 2011-08-31 | 中兴通讯股份有限公司 | 一种基于p2p的文件分发系统及分片方法 |
CN102883187A (zh) * | 2012-09-17 | 2013-01-16 | 华为技术有限公司 | 一种时移节目服务方法、设备和系统 |
CN104284202A (zh) * | 2014-10-14 | 2015-01-14 | 无锡云捷科技有限公司 | 一种采用优化式结构的cdn透明传输方法 |
CN104935648A (zh) * | 2015-06-03 | 2015-09-23 | 北京快网科技有限公司 | 一种高性价比的cdn系统及文件预推、分片缓存的方法 |
CN105978936A (zh) * | 2016-04-25 | 2016-09-28 | 乐视控股(北京)有限公司 | Cdn服务器及其缓存数据的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021169298A1 (zh) * | 2020-02-29 | 2021-09-02 | 平安科技(深圳)有限公司 | 减少回源请求的方法、装置及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108696895B (zh) | 资源获取方法、装置及系统 | |
CN110022482B (zh) | 视频起播方法、视频服务系统及存储介质 | |
US6947440B2 (en) | System and method for internet page acceleration including multicast transmissions | |
CN110134896B (zh) | 一种代理服务器的监控过程及智能缓存方法 | |
US20080133830A1 (en) | Efficient utilization of cache servers in mobile communication system | |
CN102394880B (zh) | 内容分发网络中的跳转响应处理方法和设备 | |
KR20130088774A (ko) | 분할 콘텐트 전달 시스템 및 방법 | |
CN103001964B (zh) | 一种局域网环境下的缓存加速方法 | |
WO2019128800A1 (zh) | 一种内容服务的实现方法、装置及内容分发网络节点 | |
US9479607B2 (en) | Content caching and delivering system with traffic of repetitively requested content reduced | |
US20230043476A1 (en) | Cache management in content delivery systems | |
CN105978936A (zh) | Cdn服务器及其缓存数据的方法 | |
CN112287259A (zh) | 一种冷访问回源调度系统及其处理方法 | |
CN115794139B (zh) | 镜像数据处理方法、装置、设备以及介质 | |
CN107251529B (zh) | 用于在内容传输网络系统中的服务器之间传输和接收信息的方法和装置 | |
US9521064B2 (en) | Cooperative caching method and apparatus for mobile communication system | |
CN109167845A (zh) | 一种面向大文件分发场景的分片缓存及重组方法 | |
WO2019052299A1 (zh) | 一种sdn交换机和sdn交换机的应用管理方法 | |
CN102075584A (zh) | 一种分布式文件系统及其访问方法 | |
CN110784534B (zh) | 数据服务方法、装置、系统及电子设备 | |
CN115297095B (zh) | 回源处理方法、装置、计算设备及存储介质 | |
US20230026912A1 (en) | Systems and methods for storing content items in secondary storage | |
CN112788135B (zh) | 资源调度方法、设备及存储介质 | |
CN112019451A (zh) | 带宽分配方法、调试网元、本地缓存服务器及计算设备 | |
CN106657039B (zh) | Portal页面获取方法、无线AP及Portal服务器 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190108 |