CN113691581A - 一种高效的cdn刷新分片的方法 - Google Patents

一种高效的cdn刷新分片的方法 Download PDF

Info

Publication number
CN113691581A
CN113691581A CN202110771776.3A CN202110771776A CN113691581A CN 113691581 A CN113691581 A CN 113691581A CN 202110771776 A CN202110771776 A CN 202110771776A CN 113691581 A CN113691581 A CN 113691581A
Authority
CN
China
Prior art keywords
fragment
size
resource
fragments
slicesize
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.)
Granted
Application number
CN202110771776.3A
Other languages
English (en)
Other versions
CN113691581B (zh
Inventor
张召
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Upyun Technology Co ltd
Original Assignee
Hangzhou Upyun Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Upyun Technology Co ltd filed Critical Hangzhou Upyun Technology Co ltd
Priority to CN202110771776.3A priority Critical patent/CN113691581B/zh
Publication of CN113691581A publication Critical patent/CN113691581A/zh
Application granted granted Critical
Publication of CN113691581B publication Critical patent/CN113691581B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

本发明公开了一种高效的CDN刷新分片的方法,包括:内容分发网络在缓存资源数据时,对资源数据进行分片,得到分片数sliceNum;根据分片数计算每片资源的大小,得到分片大小sliceSize;对资源数据进行分片,之后对分片后的每片对应的资源内容生成对应的哈希值作为该分片的哈希值;根据每片的原始URL、哈希值和序号ID作为key值,分片资源作为value,更新缓存,把分片缓存存储到缓存存储系统中进行缓存,完成刷新。本发明能够根据资源大小及服务器的容量自动对资源进行分片,减少操作人员的负担,更加合理的利用资源,同时,分片刷新时也只需刷一次,大大提升刷新的效率。

Description

一种高效的CDN刷新分片的方法
技术领域
本发明涉及CDN 刷新分片领域,具体涉及一种高效的 CDN 刷新分片的方法。
背景技术
CDN (Content Delivery Network),即内容分发网络,旨在解决互联网数据传输瓶颈,通过在各个边缘节点缓存资源数据,用户可在就近的边缘节点缓存中直接获取资源,避免去往源站,减少用户在网络传输过程中耗费的时间。
CDN在缓存资源数据时,会对过大的资源数据进行分片。当缓存资源需要刷新时,目前的开源服务器会对缓存资源的每一个分片进行刷新。该方案存在如下缺陷:
1)刷新的总耗时长,进行资源分片刷新时,需要等到每一个分片都完成刷新后,该资源才能完成刷新;
2)分片刷新造成“请求风暴”,增大系统压力,在进行批量刷新时如果大量的资源需要分片刷新,这样刷新的总请求量会非常庞大形成“请求风暴”,增大对系统的压力。
发明内容
本发明的第一个目的是提供一种高效的 CDN 刷新分片的方法,能够根据资源大小及服务器的容量自动对资源进行分片,减少操作人员的负担,更加合理的利用资源,同时,分片刷新时也只需刷一次,大大提升刷新的效率。
一种高效的 CDN 刷新分片的方法,包括以下步骤:
1)内容分发网络在缓存资源数据时,对资源数据进行分片,得到分片数sliceNum;
2)根据分片数计算每片资源的大小,得到分片大小sliceSize;
3)根据分片数sliceNum和分片大小sliceSize对资源数据进行分片,之后对分片后的每片对应的资源内容生成对应的哈希值作为该分片的哈希值(etag);
4)根据分片后的每片的原始 URL、哈希值和根据分片数sliceNum对应的序号ID作为 key值,分片资源作为 value,更新缓存,把分片缓存存储到缓存存储系统中进行缓存,完成刷新,并以请求头中携带的 maxAge作为该分片缓存的生命周期。
步骤1)中,对资源数据进行分片,得到分片大小sliceSize,具体包括:
1.1)使用分片计算公式对资源数据进行计算,计算分片数量的公式为number=max(dataSize/max(limitSize, defaultLimitSize), 1),其中,number为分片数量,dataSize表示资源数据的大小,limiteSize表示要求的分片大小,defaultLimitSize表示默认的分片大小,defaultLimitSize值为1~500 MB,默认情况下50 MB;
1.2)当分片数量number结果小于等于 1 时,表示该资源很小,不需要分片;
1.3)当分片数量number结果大于 1 时,取整后得到分片数sliceNum:
1.3.1)如果number为整数,则number即为该资源需要的分片数sliceNum;
1.3.2)如果number为小数时,则number取整后再加 1 为该资源需要的分片数sliceNum。
步骤2)中,根据分片数计算每片资源的大小,得到分片大小sliceSize,具体包括:
2.1)当分片计算公式的运算结果小于等于 1 时,表示该资源很小,不需要分片,直接根据原始 URL替换缓存系统中对应的资源;
2.2)当分片计算公式的运算结果大于 1 时,按照计算出的分片数作为资源的分片数,程序使用区间 [0,sliceNum)内的整数作为每个分片的 ID,计算每个分片的大小,得到分片大小sliceSize。
步骤2.2)中,计算每个分片的大小,具体包括:每个分片的大小根据公式的运算结果分为 2 种情况:
2.2.1)如果分片计算公式的运算为整数则每片大小一致均等于分片大小sliceSize,分片大小sliceSize=资源数据dataSize /分片数sliceNum;
2.2.2)如果分片计算公式的运算为小数时,最后一分片的大小等于 dataSize –round(分片数量number)*sliceSize,其余分片的大小为 sliceSize;
步骤2.2.2)中,最后一分片的大小与其余分片的大小sliceSize之和等于资源数据dataSize,可以确定sliceSize。
与现有技术相比,本发明具有如下优点。
(1)本发明提供的分片计算公式能够自主判断是否需要对资源进行分片,以及支持分片大小及分片数量的可配置化,避免了过大分片缓存效果不佳,过小分片使得服务器内存碎片化整体资源率低,提升了缓存服务器的整体性能。
(2)本发明提供的分片刷新方法只需要请求源站一次,并且只在缓存资源发生变化时才重新缓存资源,从而降低了刷新的平均耗时,提升了刷新系统的吞吐量。
(3)本发明提供的分片计算公式能够自主判断是否需要对资源进行分片,以及支持分片大小及分片数量的可配置化,避免了过大分片缓存效果不佳,过小分片使得服务器内存碎片化整体资源率低,提升了缓存服务器的整体性能。
(4)本发明提供的分片刷新方法只需要请求源站一次,并且只在缓存资源发生变化时才重新缓存资源,从而降低了刷新的平均耗时,提升了刷新系统的吞吐量。
附图说明
图1为分片刷新预热的整体架构图。
图2为根据分片计算公式计算分片数的逻辑示意图。
图3为根据分片刷新结果存入缓存系统的流程图。
具体实施方式
本发明高效的 CDN 刷新分片的方法,包括使用分片计算公式对分片进行计算和CDN分片缓存的刷新。
使用分片计算公式对分片进行计算:计算分片数量的公式为number=max(dataSize / max(limitSize, defaultLimitSize), 1),其中:dataSize表示资源的体积;limiteSize表示要求的分片大小;defaultLimitSize表示默认的分片大小,默认情况defaultLimitSize值为 50 MB。
该公式的计算结果有以下几种情况:
当公式的运算结果小于等于 1 时,表示该资源很小,不需要分片;
当公式的运算结果大于 1 时:
a.如果number为整数,则number即为该资源需要的分片数sliceNum;
b.如果number为小数时,则number取整后再加 1 为该资源需要的分片数sliceNum。
一种CDN分片缓存的刷新方法,分片刷新时也只需刷一次,大大提升刷新的效率。
在进行资源刷新时,刷新后的资源按照上述计算分片数量的公式重新计算。
当公式的运算结果等于 1 时,表示该资源很小,不需要分片,直接根据原始 URL替换缓存系统中对应的资源即可。
当公式的运算结果大于 1 时,按照计算出的分片数作为资源的分片数,程序使用区间 [0,sliceNum)内的整数作为每个分片的 ID,每个分片的大小根据公式的运算结果分为 2 种情况:
a.如果number为整数则每片大小一致均等于sliceSize;
b.如果number为小数时,最后一片的大小等于 dataSize–round(number)*sliceSize,其余分片的大小为 sliceSize。
根据该分片内容生成对应的哈希值作为该分片的 etag;每个分片以 “原始 URL+ 分片etag + 分片ID”作为 key值以分片资源作为 value,把分片缓存存储到 KV存储系统中进行缓存,并以请求头中携带的 maxAge作为该分片缓存的生命周期。
如果请求源站后对应的资源发生变化,那么根据分片内容生成的哈希值 “分片etag”也会发生变化,以“原始 URL + 分片etag + 分片ID”形成的key值也会发生变化,则把该分片按照上述方案重新缓存即可,老的过期资源会在生命周期到期时被 KV存储系统自动清理掉。
如果请求源站后对应的资源未发生变化,则只需要根据请求头中的 maxAge重置KV存储系统中对应 key值的生命周期,不需要把分片内存重新缓存到 KV存储系统中。
实施例1:如图 1所示,本实施例包括分片计算公式模块和 KV缓存系统。当刷新请求发出后,CDN系统会请求源站获取原始 URL最新的资源,然后将该资源发送至分片计算公式模块计算该资源的分片。最终根据分片计算公式结果将最新的资源缓存到 KV缓存系统中。
实施例 2:见图2,实施例 1 中分片计算公式的计算方法,包括以下步骤:
1. 根据资源的属性确定该资源的大小 dataSize;
2. 如果刷新请求的 Header中携带了 limitSize且 limitSize大于defaultSize, 则使用 limitSize作为分片大小 sliceSize,否则使用defaultSize作为分片大小 sliceSize;
3. dataSize除以 sliceSize的商middleNum如果等于1, 则说明资源过小,不需要分片;
4. dataSize除以 sliceSize的商middleNum如果大于 1,又分为 2 种情况:
a.商middleNum为整数,则该商为资源分片数sliceNum;
b.商middleNum为小数,则该商middleNum的整数部分roundNum加1作为资源分片数。
实施例 3:如图3所示,存入缓存系统,包括以下步骤:
1.根据分片计算公式的运算结果是否等于 1,分为 2 种情况:
1)运算结果等于1,该资源过小,无需分片直接刷新即可;
2)运算结果大于 1,根据运算结果是否为整数,分为 2 种情况:
a)运算结果为整数,每片的大小为 sliceSize;
b)运算结果为小数,最后一个分片的大小为:dataSize – roundNum *SliceSize,其余分片的大小为 sliceSize;
2.根据该分片内容生成对应的哈希值作为该分片的etag;
3.每个分片以 “原始 URL + 分片etag + 分片ID”作为 key值以分片资源作为value,把分片缓存存储到 KV存储系统中进行缓存,并以请求头中携带的 maxAge作为该分片缓存的生命周期;
4.根据 key值是否存在于 KV缓存系统中分为 2 种情况:
a)如果请求源站后对应的资源发生变化,那么根据分片内容生成的哈希值“分片etag”也会发生变化,以“原始 URL + 分片etag + 分片ID”形成的key值也会发生变化,则把该分片按照上述方案重新缓存即可,老的过期资源会在生命周期到期时被 KV存储系统自动清理掉;
b)如果请求源站后对应的资源未发生变化,则只需要根据请求头中的 maxAge重置 KV存储系统中对应 key值的生命周期,不需要把分片内存重新缓存到 KV存储系统中。
本发明提供的分片计算公式能够自主判断是否需要对资源进行分片,以及支持分片大小及分片数量的可配置化,避免了过大分片缓存效果不佳,过小分片使得服务器内存碎片化整体资源率低,提升了缓存服务器的整体性能。
本发明提供的分片刷新方法只需要请求源站一次,并且只在缓存资源发生变化时才重新缓存资源,从而降低了刷新的平均耗时,提升了刷新系统的吞吐量。

Claims (7)

1.一种高效的 CDN 刷新分片的方法,其特征在于,包括以下步骤:
1)内容分发网络在缓存资源数据时,对资源数据进行分片,得到分片数sliceNum;
2)根据分片数计算每片资源的大小,得到分片大小sliceSize;
3)根据分片数sliceNum和分片大小sliceSize对资源数据进行分片,之后对分片后的每片对应的资源内容生成对应的哈希值作为该分片的哈希值;
4)根据分片后的每片的原始 URL、哈希值和根据分片数sliceNum对应的序号ID作为key值,分片资源作为 value,更新缓存,把分片缓存存储到缓存存储系统中进行缓存,完成刷新,并以请求头中携带的 maxAge作为该分片缓存的生命周期。
2.根据权利要求1所述的高效的 CDN 刷新分片的方法,其特征在于,步骤1)中,对资源数据进行分片,得到分片大小sliceSize,具体包括:
1.1)使用分片计算公式对资源数据进行计算,分片计算公式为number=max(dataSize/max(limitSize, defaultLimitSize), 1);
其中,number为分片数量,dataSize表示资源数据的大小,limiteSize表示要求的分片大小,defaultLimitSize表示默认的分片大小;
1.2)当分片数量number结果小于等于 1 时,不需要分片;
1.3)当分片数量number结果大于 1 时,取整后得到分片数sliceNum。
3.根据权利要求2所述的高效的 CDN 刷新分片的方法,其特征在于,步骤1.1)中,defaultLimitSize值为1~500 MB。
4.根据权利要求2所述的高效的 CDN 刷新分片的方法,其特征在于,步骤1.3)中,当分片数量number结果大于 1 时,取整后得到分片数sliceNum,具体包括:
1.3.1)如果number为整数,则number即为该资源需要的分片数sliceNum;
1.3.2)如果number为小数时,则number取整后再加 1 为该资源需要的分片数sliceNum。
5.根据权利要求1所述的高效的 CDN 刷新分片的方法,其特征在于,步骤2)中,根据分片数计算每片资源的大小,得到分片大小sliceSize,具体包括:
2.1)当分片计算公式的运算结果小于等于 1 时,不需要分片,直接根据原始 URL替换缓存系统中对应的资源;
2.2)当分片计算公式的运算结果大于 1 时,按照计算出的分片数作为资源的分片数,使用区间 [0,sliceNum)内的整数作为每个分片的 ID,计算每个分片的大小,得到分片大小sliceSize。
6.根据权利要求5所述的高效的 CDN 刷新分片的方法,其特征在于,步骤2.2)中,计算每个分片的大小,具体包括:
每个分片的大小根据公式的运算结果分为 2 种情况:
2.2.1)如果分片计算公式的运算为整数则每片大小一致均等于分片大小sliceSize,分片大小sliceSize=资源数据dataSize /分片数sliceNum;
2.2.2)如果分片计算公式的运算为小数时,最后一分片的大小等于 dataSize –round(分片数量number)*sliceSize,其余分片的大小为 sliceSize。
7.根据权利要求6所述的高效的 CDN 刷新分片的方法,其特征在于,步骤2.2.2)中,最后一分片的大小与其余分片的大小sliceSize之和等于资源数据dataSize,确定sliceSize。
CN202110771776.3A 2021-07-08 2021-07-08 一种高效的cdn刷新分片的方法 Active CN113691581B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110771776.3A CN113691581B (zh) 2021-07-08 2021-07-08 一种高效的cdn刷新分片的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110771776.3A CN113691581B (zh) 2021-07-08 2021-07-08 一种高效的cdn刷新分片的方法

Publications (2)

Publication Number Publication Date
CN113691581A true CN113691581A (zh) 2021-11-23
CN113691581B CN113691581B (zh) 2023-05-09

Family

ID=78576783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110771776.3A Active CN113691581B (zh) 2021-07-08 2021-07-08 一种高效的cdn刷新分片的方法

Country Status (1)

Country Link
CN (1) CN113691581B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102075561A (zh) * 2010-11-29 2011-05-25 成都市华为赛门铁克科技有限公司 一种网络资源下载方法,装置及系统
CN104935648A (zh) * 2015-06-03 2015-09-23 北京快网科技有限公司 一种高性价比的cdn系统及文件预推、分片缓存的方法
WO2018040583A1 (zh) * 2016-09-05 2018-03-08 华为技术有限公司 数据存储系统中的数据存储方法及协调存储节点
CN109246211A (zh) * 2018-08-30 2019-01-18 南方科技大学 一种区块链中的资源上传和资源请求方法
CN109246198A (zh) * 2018-08-16 2019-01-18 杭州数梦工场科技有限公司 一种基于分布式存储集群的云主机启动控制方法和系统
WO2021003985A1 (zh) * 2019-07-08 2021-01-14 深圳壹账通智能科技有限公司 区块链数据归档存储方法、装置、计算机设备和存储介质
CN112513830A (zh) * 2019-07-15 2021-03-16 华为技术有限公司 内容分发网络中的回源方法及相关装置
CN112711774A (zh) * 2021-03-25 2021-04-27 腾讯科技(深圳)有限公司 数据处理方法、装置、设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102075561A (zh) * 2010-11-29 2011-05-25 成都市华为赛门铁克科技有限公司 一种网络资源下载方法,装置及系统
CN104935648A (zh) * 2015-06-03 2015-09-23 北京快网科技有限公司 一种高性价比的cdn系统及文件预推、分片缓存的方法
WO2018040583A1 (zh) * 2016-09-05 2018-03-08 华为技术有限公司 数据存储系统中的数据存储方法及协调存储节点
CN109246198A (zh) * 2018-08-16 2019-01-18 杭州数梦工场科技有限公司 一种基于分布式存储集群的云主机启动控制方法和系统
CN109246211A (zh) * 2018-08-30 2019-01-18 南方科技大学 一种区块链中的资源上传和资源请求方法
WO2021003985A1 (zh) * 2019-07-08 2021-01-14 深圳壹账通智能科技有限公司 区块链数据归档存储方法、装置、计算机设备和存储介质
CN112513830A (zh) * 2019-07-15 2021-03-16 华为技术有限公司 内容分发网络中的回源方法及相关装置
CN112711774A (zh) * 2021-03-25 2021-04-27 腾讯科技(深圳)有限公司 数据处理方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘彦等: "IPv4分片算法的改进及实现", 《通信技术》 *
占幼平等: "一种基于业务流的IP分片实时识别方法", 《微计算机信息》 *

Also Published As

Publication number Publication date
CN113691581B (zh) 2023-05-09

Similar Documents

Publication Publication Date Title
CN107911711B (zh) 一种考虑分区的边缘缓存替换改进方法
CN105007613B (zh) 一种基于流量过滤和Web缓存预取的WiFi接入设备节能方法
WO2018218850A1 (zh) 文件大小异构的分布式编码缓存放置方法及系统
WO2012142844A1 (zh) 一种基于p2p的文件分发系统及分片方法
CN105472056A (zh) Dns递归服务器分层缓存方法和系统
US8788612B1 (en) Cache based enhancement to optimization protocol
US9521064B2 (en) Cooperative caching method and apparatus for mobile communication system
Yin et al. Power-aware prefetch in mobile environments
CN107517266A (zh) 一种基于分布式缓存的即时通讯方法
KR102269594B1 (ko) 컨텐츠 전송 네트워크 시스템에서 서버 간의 정보 송수신 방법 및 장치
CN100486249C (zh) 一种调整传输控制协议接收窗口的方法
CN113691581B (zh) 一种高效的cdn刷新分片的方法
CN102075584B (zh) 一种分布式文件系统及其访问方法
Wang et al. SACCS: scalable asynchronous cache consistency scheme for mobile environments
CN109992209B (zh) 数据处理方法、装置及分布式存储系统
CN106815334A (zh) 一种用于终端的数据查询方法及装置
CN102685810B (zh) 一种用于用户信息动态缓存的方法及系统
CN113453037B (zh) 一种非均匀文件流行度下的编码缓存方法
CN110913468B (zh) 一种基于预缓存的能量节省传输方法
US20150012745A1 (en) Precalculating hashes to support data distribution
WO2017049488A1 (zh) 一种缓存管理方法和装置
WO2020133884A1 (zh) 一种数据缓存方法及一种存储介质
CN109547980B (zh) 一种机器类通信中基于分簇和数据缓存的随机接入方法
Chand et al. Broadcast based cache invalidation and prefetching in mobile environment
CN108429919B (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