CN112055044A - 数据请求方法及服务器、计算机可存储介质 - Google Patents
数据请求方法及服务器、计算机可存储介质 Download PDFInfo
- Publication number
- CN112055044A CN112055044A CN202010701876.4A CN202010701876A CN112055044A CN 112055044 A CN112055044 A CN 112055044A CN 202010701876 A CN202010701876 A CN 202010701876A CN 112055044 A CN112055044 A CN 112055044A
- Authority
- CN
- China
- Prior art keywords
- level cache
- data
- cache layer
- fragment
- target
- 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
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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- 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/2866—Architectures; Arrangements
- H04L67/2885—Hierarchically arranged intermediate devices, e.g. for hierarchical 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例涉及数据传输领域,公开了一种数据请求方法及服务器、计算机可存储介质,包括:在接收到第一客户端发送的第一文件请求时,确定第一文件请求的文件标识和数据范围;依据文件标识对应的文件的分片规格,确定第一文件请求的数据范围对应的第一分片区间;依据文件标识,从服务器的多级缓存层中确定至少一个目标级缓存层;依据该至少一个目标级缓存层的位图数据,判断第一分片区间在该至少一个目标级缓存层中是否存在对应的有效分片;若存在,从该至少一个目标级缓存层中的第一分片区间对应的有效分片中获取第一数据,并将第一数据向第一客户端发送。实施该方法,可以降低回源次数。
Description
技术领域
本申请涉及数据传输领域,尤其涉及一种数据请求方法及服务器、计算机可存储介质。
背景技术
在现有的CDN(Content Delivery Network,内容分发网络)缓存***中,针对同一文件,客户端的数据请求范围可以对应无限种组合,因此,服务器接收到相同数据范围的概率往往非常小,通常需要频繁进行回源。
发明内容
本申请实施例公开了一种数据请求方法及服务器、计算机可存储介质,能够降低回源次数。
本申请实施例第一方面公开一种数据请求方法,包括:
在接收到第一客户端发送的第一文件请求时,确定所述第一文件请求的文件标识和数据范围;
依据所述文件标识对应的文件的分片规格,确定所述第一文件请求的数据范围对应的第一分片区间;
依据所述文件标识,从服务器的多级缓存层中确定至少一个目标级缓存层;其中,所述目标级缓存层中存储有所述文件标识对应的文件的分片;
依据所述至少一个目标级缓存层的位图数据,判断所述第一分片区间在所述至少一个目标级缓存层中是否存在对应的有效分片;
若存在,从所述至少一个目标级缓存层中的所述第一分片区间对应的有效分片中获取第一数据,并将所述第一数据向所述第一客户端发送。
作为一种可选的实施方式,在本申请实施例第一方面中,所述方法还包括:
在所述至少一个目标级缓存层中不存在与所述第一分片区间对应的有效分片的情况下,向源站发送针对所述第一分片区间的回源请求;
接收所述源站回复的所述第一分片区间的有效分片;
从所述源站回复的所述第一分片区间的有效分片中获取第二数据;
将所述第二数据向所述第一客户端发送。
作为一种可选的实施方式,在本申请实施例第一方面中,所述接收所述源站回复的所述第一分片区间的有效分片之后,所述方法还包括:
将所述源站回复的所述第一分片区间的有效分片的数据作为第三数据;
将所述第三数据写入所述多级缓存层中最后一级缓存层的所述第一分片区间对应的分片。
作为一种可选的实施方式,在本申请实施例第一方面中,所述将所述源站回复的所述第一分片区间的有效分片的数据作为第三数据之后,以及将所述第三数据写入所述多级缓存层中最后一级缓存层的所述第一分片区间对应的分片之前,所述方法还包括:
判断所述多级缓存层中最后一级缓存层的当前剩余存储空间是否满足所述第三数据的写入;
若满足,将所述第三数据写入所述多级缓存层中最后一级缓存层的所述第一分片区间对应的分片;
若不满足,依据所述第三数据所需的空间大小,从所述多级缓存层中最后一级缓存层中确定淘汰文件,并清理所述淘汰文件,以使所述多级缓存层中最后一级缓存层的当前剩余存储空间满足所述第三数据的写入,以及将所述第三数据写入所述多级缓存层中最后一级缓存层的所述第一分片区间对应的分片。
作为一种可选的实施方式,在本申请实施例第一方面中,在所述至少一个目标级缓存层包括至少两个目标级缓存层的情况下,所述依据所述至少一个目标级缓存层的位图数据,判断所述第一分片区间在所述至少一个目标级缓存层中是否存在对应的有效分片,包括:
依据所述至少一个目标级缓存层中第X个目标级缓存层的位图数据,判断所述第一分片区间在所述第X个目标级缓存层中是否存在有效分片,X为大于等于1的整数;
若存在,则确定所述第一分片区间在所述至少一个目标级缓存层中存在对应的有效分片;
若不存在,则将第X+1个目标级缓存层作为新的第X个目标级缓存层,并执行所述依据所述至少一个目标级缓存层中第X个目标级缓存层的位图数据,判断所述第一分片区间在所述第X个目标级缓存层中是否存在有效分片,直至所述第X+1个目标级缓存层为最后一个目标级缓存层;
若每层所述目标级缓存层均不存在与所述第一分片区间对应的有效分片,则确定所述第一分片区间在所述至少一个目标级缓存层中不存在对应的有效分片。
作为一种可选的实施方式,在本申请实施例第一方面中,所述服务器还用于接收第二客户端的第二文件请求,在所述至少一个目标级缓存层中不存在与所述第一分片区间对应的有效分片的情况下,所述方法还包括:
若所述第二文件请求对应的第二分片区间在所述多级缓存层中不存在对应的有效分片,且针对所述第二分片区间的回源请求已向源站发送,判断所述第一分区间和所述第二分片区间是否满足合并条件;
若满足,将所述源站回复的所述第二分片区间的有效分片作为所述第一分片区间的有效分片;
从所述第一分片区间的有效分片中获取第四数据,并将所述第四数据向所述第一客户端发送。
作为一种可选的实施方式,在本申请实施例第一方面中,所述将所述第四数据向所述第一客户端发送,包括:
依据所述第一文件请求和所述第二文件请求的请求时间,确定所述第四数据的发送顺序;
依据所述发送顺序的指示,将所述第四数据向所述第一客户端发送。
本申请实施例第二方面公开一种服务器,包括:
第一确定单元,用于在接收到第一客户端发送的第一文件请求时,确定所述第一文件请求的文件标识和数据范围;以及,依据所述文件标识对应的文件的分片规格,确定所述第一文件请求的数据范围对应的第一分片区间;
第二确定单元,用于依据所述文件标识,从所述服务器的多级缓存层中确定至少一个目标级缓存层;其中,所述目标级缓存层中存储有所述文件标识对应的文件的分片;
判断单元,用于依据所述至少一个目标级缓存层的位图数据,判断所述第一分片区间在所述至少一个目标级缓存层中是否存在对应的有效分片;
获取单元,用于所述判断单元判断出所述第一分片区间在所述至少一个目标级缓存层中存在对应的有效分片时,从所述至少一个目标级缓存层中的所述第一分片区间对应的有效分片中获取第一数据;
发送单元,用于将所述第一数据向所述第一客户端发送。
本申请实施例第三方面公开一种服务器,包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本申请实施例第一方面的任意一种方法的部分或全部步骤。
本申请实施例第四方面公开一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序使得计算机执行本申请实施例第一方面的任意一种方法的部分或全部步骤。
本申请实施例第五方面公开一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面的任意一种方法的部分或全部步骤。
本申请实施例第六方面公开一种应用发布平台,所述应用发布平台用于发布计算机程序产品,其中,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面的任意一种方法的部分或全部步骤。
与现有技术相比,本申请实施例具有以下有益效果:
本申请实施例中,在接收到第一客户端发送的第一文件请求时,确定第一文件请求的文件标识和数据范围;依据文件标识对应的文件的分片规格,确定第一文件请求的数据范围对应的第一分片区间;依据文件标识,从服务器的多级缓存层中确定至少一个目标级缓存层;其中,目标级缓存层中存储有文件标识对应的文件的分片;依据至少一个目标级缓存层的位图数据,判断第一分片区间在至少一个目标级缓存层中是否存在对应的有效分片;若存在,从至少一个目标级缓存层中的第一分片区间对应的有效分片中获取第一数据,并将第一数据向第一客户端发送。实施该方法,在对文件进行分片存储的情况下,依据文件的分片规格,对第一文件请求的数据范围进行处理,使得第一文件请求的数据范围落入文件的第一分片区间,由于第一分片区间的命中率高于第一文件请求的数据范围的命中率,所以基于第一分片区间查找第一数据,可以大大降低回源次数。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例公开的一种数据请求方法的场景示意图;
图2是本申请实施例公开的一种数据请求方法的流程示意图;
图3是本申请实施例公开的服务器的多级缓存层的示意图;
图4是本申请实施例公开的另一种数据请求方法的流程示意图;
图5是本申请实施例公开的又一种数据请求方法的流程示意图;
图6是本申请实施例公开的一种服务器的结构示意图;
图7是本申请实施例公开的一种服务器的结构示意图;
图8是本申请实施例公开的一种服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定顺序。本申请实施例的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为本申请实施例公开的数据请求方法的一种场景示意图,如图1所示,该场景示意图可以包括服务器10、客户端20以及源站30,其中,服务器10分别与客户端20以及源站30通信连接,用户可以在客户端20侧触发文件请求,客户端20可以将文件请求向服务器10发送,服务器10可以依据文件请求在其本地存储空间中查找用户所需的文件数据,若查找到,则将查找到的文件数据向客户端20发送,若未查找到,服务器10向源站30发起回源请求,源站30可以在收到回源请求时,将用户所请求的文件数据向服务器10发送,以通过服务器10将用户所请求的文件数据向客户端20转发。
本申请实施例公开了一种数据请求方法及服务器、计算机可存储介质,有利于降低回源次数。以下结合附图进行详细描述。
实施例一
请参阅图2,图2是本申请实施例公开的一种数据请求方法的流程示意图,该数据请求方法可以适用于服务器,如图2所示,该方法可以包括以下步骤:
201、在接收到第一客户端发送的第一文件请求时,确定第一文件请求的文件标识和数据范围。
在一些实施例中,第一文件请求可以是HTTP(Hyper Text Transfer Protocol,超文件传输协定)请求,第一文件请求可以由文件标识字段以及数据范围字段组成,在接收到第一客户端发送的第一文件请求时,确定第一文件请求的文件标识和数据范围,可以包括:读取第一文件请求中的文件标识字段得到文件标识,以及读取第一文件请求中的数据范围字段,得到数据范围。其中,文件标识可用于唯一识别文件,可以由英文字母、数字以及特殊字符中的一种或者几种组合得到,第一客户端向服务器发送的第一文件请求可仅请求文件的部分数据,数据范围可用于表示所需请求获取的部分数据的范围。
进一步的,第一文件请求还可以包括客户端标识字段,在收到第一文件请求时,还可以读取第一文件请求中的客户端标识字段得到客户端标识,以及依据第一客户端的客户端标识对第一客户端的身份信息进行校验,以及在第一客户端的身份信息校验通过时,则执行上述的读取第一文件请求中的文件标识字段得到文件标识的操作;其中,客户端标识可以为该客户端的运行设备的设备标识,可以由英文字母、数字以及特殊字符中的一种或者几种组合得到,其用于唯一识别设备。通过实施该方法,可以保证数据安全性。
202、依据文件标识对应的文件的分片规格,确定第一文件请求的数据范围对应的第一分片区间。
在本申请实施例中,服务器可将文件切分成固定大小的块进行存储,文件的分片规格指的是文件被切分后的每个块(即每个分片)的大小。同一文件可对应有一个或多个分片,文件标识对应的文件的分片规格可以以每一分片的字节数表示。
在一些实施例中,服务器中可以预先存储有文件分片列表,该文件分片列表中记录有存储于多级缓存层中的文件的标识和分片规格,依据文件标识可以从文件分片列表中查找该文件标识对应的文件的分片规格。
进一步的,依据文件标识对应的文件的分片规格,确定第一文件请求的数据范围对应的第一分片区间可以包括:依据文件标识对应的文件的分片规格,对第一文件请求的数据范围执行对齐操作,得到第一分片区间。示例性的:若文件标识对应的文件的分片规格为1024,第一文件请求的数据范围为[16-333],对应的第一分片区间为[0-1023],若第一文件请求的数据范围为[10-3099],则对应的第一分片区间为[0-1023]、[1024-2047]、[2048-3071]、[3072-4095]。
在一些实施例中,服务器确定第一文件请求的文件标识和数据范围后,可判断该文件标识对应的文件是否分片,若分片,则依据文件标识对应的文件的分片规格,对第一文件请求的数据范围执行对齐操作,得到第一分片区间。其中,服务器可以预设有文件信息表,该文件信息表可以记录存储于服务器的多级缓存层中文件的标识和存储类型,该存储类型可以包括分片类型以及非分片类型,判断文件标识对应的文件是否为分片可以包括:依据文件信息表,判断文件标识对应的文件的存储类型是否为分片类型,若为分片类型,则文件标识对应的文件分片,若为非分片类型,则文件标识对应的文件未分片。
203、依据上述文件标识,从服务器的多级缓存层中确定至少一个目标级缓存层;其中,目标级缓存层中存储有上述文件标识对应的文件的分片。
在本申请实施例中,服务器的多级缓存层可以由不同类型的缓存介质叠加形成,例如,该多级缓存层可以由内存虚拟硬盘,SSD(Solid State Drives,固态硬盘),机械硬盘组成。其中,服务器的多级缓存层可以分别称为第一级缓存层,第二级缓存层,第三级缓存层……第n级缓存层,数据的查找过程为:先查询第一级缓存是否存在,如命中,则终止查找过程,响应数据给客户端;否则,继续查找第二级缓存,重复前述步骤,直至第n级缓存层仍未找到,则为命失。服务器的多级缓存层中每一级缓存层的访问优先级不相同,在多级缓存层中先被查找的缓存层,存取速度越高,预设访问量越大,可见,从第n级缓存层到第一级缓存层,缓存层的预设访问量呈逐步递增趋势。
在一些实施例中,多级缓存层中每一级缓存层对应的预设访问量均可以与多级缓存层的访问配置有关,该访问配置可以由QPS(每秒查询率)和增长率组成,具体的:若多级缓存层的访问配置为6:0.3,其中,6表示QPS,0.3则为增长率,该访问配置则指示第m层的预设访问量为6*(1+0.3)^(n-m),其中,n为多级缓存层的总级数,m为当前层数。对上述文件标识对应的文件的某一分片而言,从源站请求得到的该某一分片最先存储在多级缓存层中访问优先级最低的缓存层,在该某一分片的访问量达到访问优先级最低的缓存层的预设访问量时,将该某一分片向高一级优先级的缓存层拷贝,以及在该某一分片的访问量达到高一级优先级的缓存层的预设访问量时,继续执行上述步骤,直至该某一分片处于访问优先级最高的缓存层。由此可见,同一文件对应的分片可以存储在至少一个目标级缓存层中。
在一些实施例中,在一些实施例中,服务器预先存储的文件分片列表还可以包括文件对应的层级信息,该层级信息可以由数字和符号组成,示例性的,该层级信息可以为(2;3;4;),其指示存储文件的分片的层级为第二级缓存层,第三级缓存层以及第四级缓存层。基于此,依据上述文件标识,从服务器的多级缓存层中确定至少一个目标级缓存层可以包括:依据上述文件标识,从文件分片列表中获取目标层级信息,依据目标层级信息,从服务器的多级缓存层中确定至少一个目标级缓存层。
204、依据至少一个目标级缓存层的位图数据,判断第一分片区间在上述至少一个目标级缓存层中是否存在对应的有效分片,若存在,执行步骤205~步骤206;若否,结束本流程。
在一些实施例中,服务器预先存储的文件分片列表还可以包括与层级信息关联的位图数据,因此,上述至少一个目标级缓存层的位图数据,可以从文件分片列表中得到。其中,第一分片区间在上述至少一个目标级缓存层中的有效分片即为写入数据的分片,与之对应,第一分片区间在上述至少一个目标级缓存层中的无效分片即为未写入数据的分片。在本申请实施例中,至少一个目标缓存层中的每一目标缓存层均可以包括上述文件标识对应的文件的分片,目标级缓存层的位图数据可以指示上述文件标识对应的文件的每一分片在每个目标级缓存层的有效性。可选地,每层缓存层的位图数据可以是由特定数值组成的数组,可分别用不同数值代表分片的有效性及无效性,例如,用数值“0”表示分片无效,用数值“1”表示分片有效。位图数据中各个数值的位置可与缓存层中各个分片的位置形成映射关系。
下面通过举例对至少一个目标级缓存层的位图数据进行说明:如图3所示,在图3中服务器的多级缓存层包括第一缓存层、第二缓存层、第三缓存层以及第四缓存层,其中,第一缓存层的访问优先级大于第二缓存层,第二缓存层的访问优先级大于第三缓存层,第三缓存层的访问优先级大于第四缓存层。其中,目标级缓存层可以包括第二缓存层、第三缓存层以及第四缓存层,第二缓存层为第一个目标级缓存层,第三缓存层为第二个目标级缓存层,第四缓存层为第三个目标级缓存层,上述文件标识对应的文件可以包括4个分片区间,分别为[0-1023]、[1024-2047]、[2048-3071]、[3072-4095],在第四缓存层中这4个分片区间对应的分片均有效,则第四缓存层的位图数据可以为1111;在第三缓存层中,分片区间[0-1023]和[1024-2047]对应的分片有效,[2048-3071]和[3072-4095]对应的分片无效,则第三缓存层的位图数据可以为1100;在第二缓存层中,分片区间[0-1023]对应的分片有效,[1024-2047]、[2048-3071]以及[3072-4095]对应的分片无效,则第二缓存层的位图数据可以为1000。
205、从上述至少一个目标级缓存层中的第一分片区间对应的有效分片中获取第一数据。
在本申请实施例中,第一数据可以依据第一文件请求的数据范围,从上述至少一个目标级缓存层中的第一分片区间对应的有效分片中得到。
需要说明的是,第一文件请求的数据范围所对应的分片区间可以是一个或者多个,在第一文件请求的数据范围所对应的分片区间为多个的情况下,针对每一分片区间的有效分片的查找均如步骤201~步骤205所示。
206、将第一数据向第一客户端发送。
在一些实施例中,步骤205之后,还可以从预设的若干数据发送链路中确定第一客户端对应的目标数据发送链路,基于此,将第一数据向第一客户端发送可以包括:通过目标数据发送链路,将第一数据向第一客户端发送。其中,预设的若干数据发送链路中每一数据发送链路的数据发送速率不相同。
进一步的,服务器可以预设有数据链路表,该数据链路表中可以记录客户端标识和其对应的链路标识,从预设的若干数据发送链路中确定第一客户端对应的目标数据发送链路,可以包括:从数据链路表中确定第一客户端的客户端标识对应的目标链路标识,以及将目标链路标识对应的数据链路作为目标数据发送链路。实施该方法,可以依据客户端的自身需求选择合适的数据发送链路,即对响应时间要求高的客户端可以通过高速率的数据发送链路发送数据,对响应时间要求低的客户端可以通过低速率的数据发送链路发送数据,有利于优化网路带宽分配。
通过实施上述方法,在对文件进行分片存储的情况下,依据文件的分片规格,对第一文件请求的数据范围进行处理,使得第一文件请求的数据范围落入文件的第一分片区间,由于第一分片区间的命中率高于第一文件请求的数据范围的命中率,所以基于第一分片区间查找第一数据,可以大大降低回源次数。
实施例二
请参阅图4,图4是本申请实施例公开的另一种数据请求方法的流程示意图。如图4所示,该方法可以包括以下步骤:
401、在接收到第一客户端发送的第一文件请求时,确定第一文件请求的文件标识和数据范围。
402、依据文件标识对应的文件的分片规格,确定第一文件请求的数据范围对应的第一分片区间。
403、依据上述文件标识,从服务器的多级缓存层中确定至少一个目标级缓存层;其中,目标级缓存层中存储有上述文件标识对应的文件的分片。
404、依据至少一个目标级缓存层的位图数据,判断第一分片区间在上述至少一个目标级缓存层中是否存在对应的有效分片,若存在,执行步骤405~步骤406;若否,执行步骤407~步骤410。
在一些实施例中,在上述至少一个目标级缓存层包括至少两个目标级缓存层的情况下,依据上述至少一个目标级缓存层的位图数据,判断第一分片区间在至少一个目标级缓存层中是否存在对应的有效分片,可以包括:
依据上述至少一个目标级缓存层中第X个目标级缓存层的位图数据,判断第一分片区间在第X个目标级缓存层中是否存在有效分片,X为大于等于1的整数;
若存在,则确定第一分片区间在上述至少一个目标级缓存层中存在对应的有效分片;
若不存在,则将第X+1个目标级缓存层作为新的第X个目标级缓存层,并执行依据上述至少一个目标级缓存层中第X个目标级缓存层的位图数据,判断第一分片区间在第X个目标级缓存层中是否存在有效分片,直至第X+1个目标级缓存层为最后一个目标级缓存层;
若每层目标级缓存层均不存在与第一分片区间对应的有效分片,则确定第一分片区间在上述至少一个目标级缓存层中不存在对应的有效分片。
基于上述示例,以对分片区间[1024-2047]对应的有效分片的查找为例,对上述步骤进行说明:先访问第一个目标级缓存层,第一个目标级缓存层的位图数据为1000,在第一个目标级缓存层中分片区间[1024-2047]的分片无效,再访问第二个目标级缓存层,第二个目标级缓存层的位图数据为1100,在第二个目标级缓存层中分片区间[1024-2047]的分片为有效分片,则确定上述至少一个目标级缓存层中存在分片区间[1024-2047]的有效分片。
在另一些实施例中,若第X+1个目标级缓存层中存在第一分片区间对应的有效分片,还可以执行以下步骤:
判断第一分片区间对应的有效分片在第X+1个目标级缓存层中的访问量是否大于第X+1个目标级缓存层对应的预设访问量;
若大于,将第X+1个目标级缓存层中第一分片区间对应的有效分片向第X个目标级缓存层上迁移。
基于上述示例以X=1为例,若分片区间[1024-2047]的有效分片在第二个目标级缓存层的访问量大于第二个目标级缓存层对应的预设访问量,则将[1024-2047]的有效分片向第一个目标级缓存层上迁移,[1024-2047]的有效分片向第一个目标级缓存层上迁移之后,第一个目标级缓存层的位图数据更新为1100。
405、从上述至少一个目标级缓存层中的第一分片区间对应的有效分片中获取第一数据。
在一些实施例中,第一分片区间在上述至少一个目标级缓存层中的有效分片可以对应有预设有效期,在步骤404的判断结果为是的情况下,还可以依据预设有效期,判断第一分片区间在上述至少一个目标级缓存层的有效分片是否过期,若未过期,执行步骤405~步骤406;若已过期,从源站请求第一分片区间的最新更新时间点,依据该最新更新时间点,判断第一分片区间对应的有效分片在源站上是否更新;若未更新,则执行步骤405~步骤406;若已更新,执行步骤407~步骤410。通常情况下,若第一分片区间在上述至少一个目标级缓存层中的有效分片过期,则需要重新请求第一分片区间的有效分片,但有时第一分片区间在上述至少一个目标级缓存层中的有效分片虽过期,但源站上第一分片区间对应的有效分片并未被更新,实施该方法,可以基于最新更新时间点和下限时间点先判断是否需要重新请求第一分片区间的有效分片,若需要,再重新请求,减少了对源站带宽的占用。需要说明的是,若第一分片区间的有效分片存在于多个目标级缓存层中,第一分片区间对应的有效分片在不同缓存层中的预设有效期相同。
其中,预设有效期可以包括下限时间点和上限时间点,下限时间点用于记录第一分片区间的有效分片在源站的更新时间点,上限时间点可以由下限时间点加上第一分片区间的有效分片的有效时长得到,判断第一分片区间在上述至少一个目标级缓存层的有效分片是否过期,可以包括:获取当前时间点,在当前时间点超过上限时间点时,则确定第一分片区间在上述至少一个目标级缓存层的有效分片已过期,在当前时间点未超过该上限时间点时,则确定第一分片区间在上述至少一个目标级缓存层的有效分片未过期。上述依据该最新更新时间点,判断第一分片区间对应的有效分片在源站上是否更新,可以包括:判断最新更新时间点是否为下限时间点,若为下限时间点,则确定第一分片区间对应的有效分片在源站上未更新,若不为下限时间点,则确定第一分片区间对应的有效分片在源站上已更新。
406、将第一数据向第一客户端发送。
其中,在本申请实施例中,关于步骤401~步骤403以及步骤405~步骤406的详细描述,请参照实施例一中针对步骤201~步骤203,以及步骤205~步骤206的介绍,本申请实施例不再赘述。
407、向源站发送针对第一分片区间的回源请求。
其中,步骤407中针对第一分片区间的回源请求用于向源站请求第一分片区间的有效分片。
408、接收源站回复的第一分片区间的有效分片。
基于上述描述,步骤407可以发生在第一分片区间在上述至少一个目标级缓存层中的有效分片过期,且在源站中第一分片区间的有效分片已更新的情况下,当在第一预设时长内未收到源站回复的第一分片区间的有效分片,还可以更新第一分片区间在上述至少一个目标级缓存层中的有效分片的预设有效期,具体的,将上述至少一个目标级缓存层中第一分片区间的有效分片的有效时长延长第二预设时长,即更新预设有效期的上限时间点,以使更新后的上限时间点和更新前的上限时间点之间的时间间隔为第二预设时长,实施该方法,可以在源站出现故障的情况下,有效避免服务器进行无效回源。
409、从源站回复的第一分片区间的有效分片中获取第二数据。
410、将第二数据向第一客户端发送。
在一些实施例中,步骤408之后,还可以执行以下步骤:
将源站回复的第一分片区间的有效分片的数据作为第三数据;其中,第三数据包括第二数据;
将第三数据写入多级缓存层中最后一级缓存层的第一分片区间对应的分片。
进一步的,将源站回复的第一分片区间的有效分片的数据作为第三数据之后,以及将第三数据写入多级缓存层中最后一级缓存层的第一分片区间对应的分片之前,还可以执行以下步骤:
判断多级缓存层中最后一级缓存层的当前剩余存储空间是否满足第三数据的写入;
若满足,将第三数据写入多级缓存层中最后一级缓存层的第一分片区间对应的分片;
若不满足,依据第三数据所需的空间大小,从多级缓存层中最后一级缓存层中确定淘汰文件,并清理淘汰文件,以使多级缓存层中最后一级缓存层的当前剩余存储空间满足第三数据的写入,以及将第三数据写入多级缓存层中最后一级缓存层的第一分片区间对应的分片。
在一些实施例中,从多级缓存层中最后一级缓存层中确定淘汰文件时可以采用最佳置换算法、先进先出算法、最近最久未使用算法或者时钟置换算法等算法进行确定,本申请实施例不做限定,淘汰文件即将该淘汰文件从多级缓存上整个进行删除。
在一些实施例中,若多级缓存层中最后一级缓存层的当前剩余存储空间不满足第三数据的写入,还可以从最后一级缓存层中确定淘汰分片,并通过清理淘汰分片使得多级缓存层中最后一级缓存层的当前剩余存储空间满足第三数据的写入,需要说明的是,由于多级缓存层中无效分片可以不占用内存空间,所以,淘汰分片均为有效分片,清理淘汰分片可以包括:将淘汰分片对应的分片区间作为第三分片区间;将多级缓存层中第三分片区间的有效分片均设置为无效分片。
通过实施该方法,可以实现存储空间的自动清理。
通过实施上述方法,在对文件进行分片存储的情况下,依据文件的分片规格,对第一文件请求的数据范围进行处理,使得第一文件请求的数据范围落入文件的第一分片区间,由于第一分片区间的命中率高于第一文件请求的数据范围的命中率,所以基于第一分片区间查找第一数据,可以大大降低回源次数,还可以在上述至少一个目标级缓存层中不存在第一分片区间对应的有效分片的情况下,从源站得到第一分片区间对应的有效分片,有效保证了第一客户端的响应成功率。
实施例三
请参阅图5,图5是本申请实施例公开的又一种数据请求方法的流程示意图。如图5所示,该方法可以包括以下步骤:
501、在接收到第一客户端发送的第一文件请求时,确定第一文件请求的文件标识和数据范围。
502、依据文件标识对应的文件的分片规格,确定第一文件请求的数据范围对应的第一分片区间。
503、依据上述文件标识,从服务器的多级缓存层中确定至少一个目标级缓存层;其中,目标级缓存层中存储有上述文件标识对应的文件的分片。
504、依据至少一个目标级缓存层的位图数据,判断第一分片区间在上述至少一个目标级缓存层中是否存在对应的有效分片,若存在,执行步骤405~步骤406;若否,执行步骤507。
505、从上述至少一个目标级缓存层中的第一分片区间对应的有效分片中获取第一数据。
506、将第一数据向第一客户端发送。
其中,在本申请实施例中,关于步骤501~步骤506的详细描述,请参照实施例二中针对步骤401~步骤406的介绍,本申请实施例不再赘述。
507、若第二客户端的第二文件请求的第二分片区间在多级缓存层中不存在对应的有效分片,且针对第二分片区间的回源请求已向源站发送,判断第一分区间和第二分片区间是否满足合并条件,如是,执行步骤508~步骤509;若否,执行步骤510~步骤513。
在本申请实施例中,第一分片区间和第二分片区间满足合并需同时满足3个条件:(1)第一文件请求和第二文件请求对应的统一资源定位符相同;(2)第一分片区间的上限为第二分片区间的上限,第一分片区间的下限为第二分片区间的下限;(3)针对第二分片区间的回源请求早于针对第一分片区间的回源请求,且针对第一分片区间的回源请求的发送发生在第二分片区间的有效分片的获取之前。
508、将源站回复的第二分片区间的有效分片作为第一分片区间的有效分片,从该第一分片区间的有效分片中获取第四数据。
在一些实施例中,客户端的文件请求可以包含两种回源设置,第一种回源设置为:第二客户端侧中断请求,回源继续,第二种回源设置为:第二客户端侧中断请求,回源终止。
基于此,以第二客户端的第二文件请求为例,在第一分片区间和第二分片区间满足合并条件的情况下,若检测到第二客户端针对第二文件请求的中断操作时,则设置第二文件请求为第一种回源设置,以实现针对第二分片区间的成功回源,反之,若第一分片区间和第二分片区间不满足合并条件,若检测到第二客户端针对第二文件请求的中断操作时,则设置第二文件请求为第二种回源设置,以避免发生错误回源。
509、将第四数据向第一客户端发送。
其中,将第四数据向第一客户端发送,可以包括:依据第一文件请求和第二文件请求的请求时间,确定第四数据的发送顺序;依据该发送顺序的指示,将第四数据向第一客户端发送。通过实施该方法,基于客户端的文件请求的顺序,确定各自的数据反馈顺序,有利于保证各个客户端的响应速度。
510、向源站发送针对第一分片区间的回源请求。
511、接收源站回复的第一分片区间的有效分片。
512、从源站回复的第一分片区间的有效分片中获取第二数据。
513、将第二数据向第一客户端发送。
其中,关于步骤510~步骤513的详细介绍,请参照实施例二中针对步骤407~步骤410的描述,本申请实施例不再赘述。
通过实施上述方法,在对文件进行分片存储的情况下,依据文件的分片规格,对第一文件请求的数据范围进行处理,使得第一文件请求的数据范围落入文件的第一分片区间,由于第一分片区间的命中率高于第一文件请求的数据范围的命中率,所以基于第一分片区间查找第一数据,可以大大降低回源次数,还可以在上述至少一个目标级缓存层中不存在第一分片区间对应的有效分片的情况下,从源站得到第一分片区间对应的有效分片,有效保证了第一客户端的响应成功率,还可以在第一客户端对应的第一分片和第二客户端对应的第二分片满足合并条件的情况下,基于第二客户端的第二分片区间对应的有效分片得到第一客户端的第一数据,无需针对同一分片区间进行重复回源,可以进一步降低回源次数。
实施例四
请参阅图6,图6是本申请实施例公开的一种服务器的结构示意图。其中,图6所示的服务器可以包括第一确定单元601,第二确定单元602,判断单元603以、获取单元604以及发送单元605,其中:
第一确定单元601,用于在接收到第一客户端发送的第一文件请求时,确定第一文件请求的文件标识和数据范围;以及,依据文件标识对应的文件的分片规格,确定第一文件请求的数据范围对应的第一分片区间。
在一些实施例中,第一确定单元601用于在接收到第一客户端发送的第一文件请求时,确定第一文件请求的文件标识和数据范围的方式具体可以为:第一确定单元601,用于读取第一文件请求中的文件标识字段得到文件标识,以及读取第一文件请求中的数据范围字段,得到数据范围。
进一步的,第一确定单元601用于读取第一文件请求中的文件标识字段得到文件标识的方式具体可以为:第一确定单元601,用于依据第一客户端的客户端标识对第一客户端的身份信息进行校验,以及在第一客户端的身份信息校验通过时,读取第一文件请求中的文件标识字段得到文件标识。
在一些实施例中,第一确定单元601用于依据文件标识对应的文件的分片规格,确定第一文件请求的数据范围对应的第一分片区间的方式具体可以为:第一确定单元601,用于依据文件标识对应的文件的分片规格,对第一文件请求的数据范围执行对齐操作,得到第一分片区间。
进一步的,在一些实施例中,第一确定单元601可以包括第一判断子单元和处理子单元,其中:第一判断子单元,用于判断该文件标识对应的文件是否分片;处理子单元,用于在文件标识对应的文件为分片时,依据文件标识对应的文件的分片规格,对第一文件请求的数据范围执行对齐操作,得到第一分片区间。
第二确定单元602,用于依据文件标识,从服务器的多级缓存层中确定至少一个目标级缓存层;其中,目标级缓存层中存储有文件标识对应的文件的分片。
判断单元603,用于依据上述至少一个目标级缓存层的位图数据,判断第一分片区间在上述至少一个目标级缓存层中是否存在对应的有效分片。
在一些实施例中,在上述至少一个目标级缓存层包括至少两个目标级缓存层的情况下,判断单元603用于依据上述至少一个目标级缓存层的位图数据,判断第一分片区间在至少一个目标级缓存层中是否存在对应的有效分片的方式具体可以为:
判断单元603,用于依据上述至少一个目标级缓存层中第X个目标级缓存层的位图数据,判断第一分片区间在第X个目标级缓存层中是否存在有效分片,X为大于等于1的整数;若存在,则确定第一分片区间在上述至少一个目标级缓存层中存在对应的有效分片;若不存在,则将第X+1个目标级缓存层作为新的第X个目标级缓存层,并执行依据上述至少一个目标级缓存层中第X个目标级缓存层的位图数据,判断第一分片区间在第X个目标级缓存层中是否存在有效分片,直至第X+1个目标级缓存层为最后一个目标级缓存层;若每层目标级缓存层均不存在与第一分片区间对应的有效分片,则确定第一分片区间在上述至少一个目标级缓存层中不存在对应的有效分片。
在另一些实施例中,若第X+1个目标级缓存层中存在第一分片区间对应的有效分片,该服务器还可以包括迁移单元,用于判断第一分片区间对应的有效分片在第X+1个目标级缓存层中的访问量是否大于第X+1个目标级缓存层对应的预设访问量;以及在大于第X+1个目标级缓存层对应的预设访问量时,将第X+1个目标级缓存层中第一分片区间对应的有效分片向第X个目标级缓存层上迁移。
获取单元604,用于判断单元604判断出第一分片区间在上述至少一个目标级缓存层中存在对应的有效分片时,从上述至少一个目标级缓存层中的第一分片区间对应的有效分片中获取第一数据。
发送单元605,用于将第一数据向第一客户端发送。
在一些实施例中,获取单元604,还用于从预设的若干数据发送链路中确定第一客户端对应的目标数据发送链路,发送单元605用于将第一数据向第一客户端发送的方式具体可以为:发送单元605,用于通过目标数据发送链路,将第一数据向第一客户端发送。
进一步的,获取单元604用于从预设的若干数据发送链路中确定第一客户端对应的目标数据发送链路的方式具体可以为:获取单元604,用于从数据链路表中确定第一客户端的客户端标识对应的目标链路标识,以及将目标链路标识对应的数据链路作为目标数据发送链路。
实施例五
请参阅图7,图7是本申请实施例公开的又一种服务器的结构示意图,其中,图7所示的服务器是由图6所示的服务器优化得到的,如图7所示的服务器可以包括第一确定单元601,第二确定单元602,判断单元603、获取单元604、第一确定单元601,第二确定单元602,判断单元603、获取单元604、发送单元605以及接收单元606,其中:
发送单元605,还用于在判断单元603判断出第一分片区间在上述至少一个目标级缓存层中不存在对应的有效分片时,向源站发送针对第一分片区间的回源请求。
在一些实施例中,第一分片区间在上述至少一个目标级缓存层中的有效分片可以对应有预设有效期,判断单元603,还用于在判断出第一分片区间在上述至少一个目标级缓存层中存在对应的有效分片时,依据预设有效期,判断第一分片区间在上述至少一个目标级缓存层的有效分片是否过期,若未过期,触发获取单元604执行上述的从上述至少一个目标级缓存层中的第一分片区间对应的有效分片中获取第一数据;若已过期,从源站请求第一分片区间的最新更新时间点,依据该最新更新时间点,判断第一分片区间对应的有效分片在源站上是否更新;若未更新,则触发获取单元604执行上述的从上述至少一个目标级缓存层中的第一分片区间对应的有效分片中获取第一数据;若已更新,触发发送单元605向源站发送针对第一分片区间的回源请求。
在另一些实施例中,上述预设有效期可以包括下限时间点和上限时间点,判断单元603用于判断第一分片区间在上述至少一个目标级缓存层的有效分片是否过期的方式具体可以为:判断单元603,用于获取当前时间点,在当前时间点超过上限时间点时,则确定第一分片区间在上述至少一个目标级缓存层的有效分片已过期,在当前时间点未超过该上限时间点时,则确定第一分片区间在上述至少一个目标级缓存层的有效分片未过期。判断单元603用于判断第一分片区间对应的有效分片在源站上是否更新的方式具体可以为:判断单元603,用于判断最新更新时间点是否为下限时间点,若为下限时间点,则确定第一分片区间对应的有效分片在源站上未更新,若不为下限时间点,则确定第一分片区间对应的有效分片在源站上已更新。
接收单元606,用于接收源站回复的第一分片区间的有效分片。
接收单元606,还用于将源站回复的第一分片区间的有效分片的数据作为第三数据,其中,该第三数据包括第二数据;以及,将第三数据写入多级缓存层中最后一级缓存层的第一分片区间对应的分片。
在一些实施例中,接收单元606可以包括第二判断子单元、写入子单元以及清理子单元,其中:
第二判断子单元,用于判断多级缓存层中最后一级缓存层的当前剩余存储空间是否满足第三数据的写入。
写入单元,用于在多级缓存层中最后一级缓存层的当前剩余存储空间满足第三数据的写入时,将第三数据写入多级缓存层中最后一级缓存层的第一分片区间对应的分片。
清理子单元,用于在多级缓存层中最后一级缓存层的当前剩余存储空间不满足第三数据的写入时,依据第三数据所需的空间大小,从多级缓存层中最后一级缓存层中确定淘汰文件,并清理淘汰文件,以使多级缓存层中最后一级缓存层的当前剩余存储空间满足第三数据的写入,以及触发写入单元将第三数据写入多级缓存层中最后一级缓存层的第一分片区间对应的分片。
在一些实施例中,若多级缓存层中最后一级缓存层的当前剩余存储空间不满足第三数据的写入,清理子单元,还可以从最后一级缓存层中确定淘汰分片,并通过清理淘汰分片使得多级缓存层中最后一级缓存层的当前剩余存储空间满足第三数据的写入。其中,清理子单元用于清理淘汰分片的方式具体可以为:清理子单元,用于将淘汰分片对应的分片区间作为第三分片区间;将多级缓存层中第三分片区间的有效分片均设置为无效分片。
获取单元604,还用于从源站回复的第一分片区间的有效分片中获取第二数据。
在一些实施例中,服务器还用于接收第二客户端的第二文件请求,在第一分片区间在上述至少一个目标级缓存层中不存在对应的有效分片的情况下,若第二文件请求对应的第二分片区间在多级缓存层中不存在对应的有效分片,且针对第二分片区间的回源请求已向源站发送,判断单元603,还用于判断第一分区间和第二分片区间是否满足合并条件。
获取单元604,还用于在第一分区间和第二分片区间满足合并条件时,将源站回复的第二分片区间的有效分片作为第一分片区间的有效分片,从该第一分片区间的有效分片中获取第四数据。
发送单元605,还用于将第四数据向第一客户端发送。
其中,发送单元605用于将第四数据向第一客户端发送的方式具体可以为:发送单元605,用于依据第一文件请求和第二文件请求的请求时间,确定第四数据的发送顺序;以及依据该发送顺序的指示,将第四数据向第一客户端发送。
请参阅图8,图8是本申请实施例公开的一种服务器的结构示意图。如图8所示,该服务器可以包括:
存储有可执行程序代码的存储器801;
与存储器801耦合的处理器802;
其中,处理器802调用存储器801中存储的可执行程序代码,执行以上实施例中的方法的部分或者全部步骤
本申请实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序使得计算机执行以上实施例中的方法的部分或者全部步骤。
本申请实施例公开一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可操作来使计算机执行以上实施例中的方法的部分或者全部步骤。
本申请实施例公开一种应用发布平台,其中,应用发布平台用于发布计算机程序产品,其中,当计算机程序产品在计算机上运行时,使得计算机执行以上实施例中的方法的部分或者全部步骤。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定特征、结构或特性可以以任意适合的方式结合在一个或多个实施例中。本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物单元,即可位于一个地方,或者也可以分布到多个网络单元上。可根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可获取的存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或者部分,可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干请求用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本申请的各个实施例上述方法的部分或全部步骤。
在本申请所提供的实施例中,应理解,“与A对应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。
在本申请的各种实施例中,应理解,“A和/或B”的含义指的是A和B各自单独存在或者A和B同时存在的情况均包括在内。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上对本申请实施例公开的一种数据请求方法及服务器、计算机可存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据请求方法,其特征在于,包括:
在接收到第一客户端发送的第一文件请求时,确定所述第一文件请求的文件标识和数据范围;
依据所述文件标识对应的文件的分片规格,确定所述数据范围对应的第一分片区间;
依据所述文件标识,从服务器的多级缓存层中确定至少一个目标级缓存层;其中,所述目标级缓存层中存储有所述文件标识对应的文件的分片;
依据所述至少一个目标级缓存层的位图数据,判断所述第一分片区间在所述至少一个目标级缓存层中是否存在对应的有效分片;
若存在,从所述至少一个目标级缓存层中的所述第一分片区间对应的有效分片中获取第一数据,并将所述第一数据向所述第一客户端发送。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述至少一个目标级缓存层中不存在与所述第一分片区间对应的有效分片的情况下,向源站发送针对所述第一分片区间的回源请求;
接收所述源站回复的所述第一分片区间的有效分片;
从所述源站回复的所述第一分片区间的有效分片中获取第二数据;
将所述第二数据向所述第一客户端发送。
3.根据权利要求2所述的方法,其特征在于,所述接收所述源站回复的所述第一分片区间的有效分片之后,所述方法还包括:
将所述源站回复的所述第一分片区间的有效分片的数据作为第三数据;其中,所述第三数据包括所述第二数据;
将所述第三数据写入所述多级缓存层中最后一级缓存层的所述第一分片区间对应的分片。
4.根据权利要求3所述的方法,其特征在于,所述将所述源站回复的所述第一分片区间的有效分片的数据作为第三数据之后,以及将所述第三数据写入所述多级缓存层中最后一级缓存层的所述第一分片区间对应的分片之前,所述方法还包括:
判断所述多级缓存层中最后一级缓存层的当前剩余存储空间是否满足所述第三数据的写入;
若满足,将所述第三数据写入所述多级缓存层中最后一级缓存层的所述第一分片区间对应的分片;
若不满足,依据所述第三数据所需的空间大小,从所述最后一级缓存层中确定淘汰文件,并清理所述淘汰文件,以使所述最后一级缓存层的当前剩余存储空间满足所述第三数据的写入,并将所述第三数据写入所述最后一级缓存层的所述第一分片区间对应的分片。
5.根据权利要求1~4任一项所述的方法,其特征在于,在所述至少一个目标级缓存层包括至少两个目标级缓存层的情况下,所述依据所述至少一个目标级缓存层的位图数据,判断所述第一分片区间在所述至少一个目标级缓存层中是否存在对应的有效分片,包括:
依据所述至少一个目标级缓存层中第X个目标级缓存层的位图数据,判断所述第一分片区间在所述第X个目标级缓存层中是否存在有效分片,X为大于等于1的整数;
若存在,则确定所述第一分片区间在所述至少一个目标级缓存层中存在对应的有效分片;
若不存在,则将第X+1个目标级缓存层作为新的第X个目标级缓存层,并执行所述依据所述至少一个目标级缓存层中第X个目标级缓存层的位图数据,判断所述第一分片区间在所述第X个目标级缓存层中是否存在有效分片,直至所述第X+1个目标级缓存层为最后一个目标级缓存层;
若每层所述目标级缓存层均不存在与所述第一分片区间对应的有效分片,则确定所述第一分片区间在所述至少一个目标级缓存层中不存在对应的有效分片。
6.根据权利要求1所述的方法,其特征在于,所述服务器还用于接收第二客户端的第二文件请求,在所述至少一个目标级缓存层中不存在与所述第一分片区间对应的有效分片的情况下,所述方法还包括:
若所述第二文件请求对应的第二分片区间在所述多级缓存层中不存在对应的有效分片,且针对所述第二分片区间的回源请求已向源站发送,判断所述第一分片区间和所述第二分片区间是否满足合并条件;
若满足,将所述源站回复的所述第二分片区间的有效分片作为所述第一分片区间的有效分片;
从所述第一分片区间的有效分片中获取第四数据,并将所述第四数据向所述第一客户端发送。
7.根据权利要求6所述的方法,其特征在于,所述将所述第四数据向所述第一客户端发送,包括:
依据所述第一文件请求和所述第二文件请求的请求时间,确定所述第四数据的发送顺序;
依据所述发送顺序的指示,将所述第四数据向所述第一客户端发送。
8.一种服务器,其特征在于,包括:
第一确定单元,用于在接收到第一客户端发送的第一文件请求时,确定所述第一文件请求的文件标识和数据范围;以及,依据所述文件标识对应的文件的分片规格,确定所述第一文件请求的数据范围对应的第一分片区间;
第二确定单元,用于依据所述文件标识,从所述服务器的多级缓存层中确定至少一个目标级缓存层;其中,所述目标级缓存层中存储有所述文件标识对应的文件的分片;
判断单元,用于依据所述至少一个目标级缓存层的位图数据,判断所述第一分片区间在所述至少一个目标级缓存层中是否存在对应的有效分片;
获取单元,用于所述判断单元判断出所述第一分片区间在所述至少一个目标级缓存层中存在对应的有效分片时,从所述至少一个目标级缓存层中的所述第一分片区间对应的有效分片中获取第一数据;
发送单元,用于将所述第一数据向所述第一客户端发送。
9.一种服务器,其特征在于,所述服务器包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行权利要求1~7任一项所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序包括用于执行权利要求1~7任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010701876.4A CN112055044B (zh) | 2020-07-20 | 2020-07-20 | 数据请求方法及服务器、计算机可存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010701876.4A CN112055044B (zh) | 2020-07-20 | 2020-07-20 | 数据请求方法及服务器、计算机可存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112055044A true CN112055044A (zh) | 2020-12-08 |
CN112055044B CN112055044B (zh) | 2022-11-04 |
Family
ID=73602322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010701876.4A Active CN112055044B (zh) | 2020-07-20 | 2020-07-20 | 数据请求方法及服务器、计算机可存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112055044B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113300875A (zh) * | 2021-02-10 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 回源数据校验方法、服务器、***及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103747112A (zh) * | 2013-12-24 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种cdn回源的方法、第一服务器及*** |
CN103927265A (zh) * | 2013-01-04 | 2014-07-16 | 深圳市龙视传媒有限公司 | 一种内容分级存储装置、内容获取方法及内容获取装置 |
CN104506493A (zh) * | 2014-12-04 | 2015-04-08 | 武汉市烽视威科技有限公司 | 一种实现hls内容回源和缓存的方法 |
CN106550023A (zh) * | 2016-10-31 | 2017-03-29 | 北京百度网讯科技有限公司 | 一种用于为用户提供指定文件分块的方法与装置 |
US20180336215A1 (en) * | 2017-01-09 | 2018-11-22 | Splunk, Inc. | Pre-fetching files from buckets in remote storage for a cache based on file usage history |
CN111339057A (zh) * | 2020-02-29 | 2020-06-26 | 平安科技(深圳)有限公司 | 减少回源请求的方法、装置及计算机可读存储介质 |
-
2020
- 2020-07-20 CN CN202010701876.4A patent/CN112055044B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103927265A (zh) * | 2013-01-04 | 2014-07-16 | 深圳市龙视传媒有限公司 | 一种内容分级存储装置、内容获取方法及内容获取装置 |
CN103747112A (zh) * | 2013-12-24 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种cdn回源的方法、第一服务器及*** |
CN104506493A (zh) * | 2014-12-04 | 2015-04-08 | 武汉市烽视威科技有限公司 | 一种实现hls内容回源和缓存的方法 |
CN106550023A (zh) * | 2016-10-31 | 2017-03-29 | 北京百度网讯科技有限公司 | 一种用于为用户提供指定文件分块的方法与装置 |
US20180336215A1 (en) * | 2017-01-09 | 2018-11-22 | Splunk, Inc. | Pre-fetching files from buckets in remote storage for a cache based on file usage history |
CN111339057A (zh) * | 2020-02-29 | 2020-06-26 | 平安科技(深圳)有限公司 | 减少回源请求的方法、装置及计算机可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113300875A (zh) * | 2021-02-10 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 回源数据校验方法、服务器、***及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112055044B (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8755381B2 (en) | Data matching using flow based packet data storage | |
CN108429777B (zh) | 一种基于缓存的数据更新方法及服务器 | |
CN111555963A (zh) | 消息推送方法、装置、电子设备及存储介质 | |
CN108282522B (zh) | 基于动态路由的数据存储访问方法及*** | |
US8370943B1 (en) | Load balancing of scan requests to all antivirus servers in a cluster | |
CN112016030B (zh) | 消息推送的方法、装置、服务器和计算机存储介质 | |
CN103326925B (zh) | 一种消息推送方法及装置 | |
CN104933054B (zh) | 缓存资源文件的url存储方法及装置、缓存服务器 | |
CN112055044B (zh) | 数据请求方法及服务器、计算机可存储介质 | |
CN113452808A (zh) | 域名解析方法、装置、设备及存储介质 | |
CN109033462B (zh) | 在大数据存储的存储设备中确定低频数据项的方法及*** | |
CN107548039B (zh) | 一种短消息重试处理方法及装置、*** | |
CN111597259B (zh) | 数据存储***、方法、装置、电子设备及存储介质 | |
CN110324681B (zh) | 多媒体数据的切片方法、装置、存储介质及传输*** | |
CN111935242A (zh) | 数据传输方法、装置、服务器以及存储介质 | |
CN102164309B (zh) | 节目的处理方法和***以及装置 | |
US9762696B2 (en) | Data storage communication apparatus, and data transmission and management methods using the same | |
CN109992209B (zh) | 数据处理方法、装置及分布式存储*** | |
CN105610921B (zh) | 一种集群下基于数据缓存的纠删码归档方法 | |
KR20140131094A (ko) | 가비지 파일의 삭제 방법 및 시스템 | |
CN112035498B (zh) | 数据块调度方法、装置、调度层节点及存储层节点 | |
CN111586438B (zh) | 一种业务数据的处理方法、装置及*** | |
CN108762683B (zh) | 在分布式大数据存储***内进行数据传输的方法及*** | |
CN111587417A (zh) | 用于数据存储的方法、设备、计算机程序和计算机程序产品 | |
CN113228595B (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 |