基于内容分发网络缓存文件系统的文件缓存方法及装置
文献发布时间:2023-06-19 11:32:36
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于内容分发网络缓存文件系统的文件缓存方法及装置。
背景技术
文件系统,已经是每个计算机设备比不缺少的一个部分了,对于一个普通的文件系统,如Linux自带的ext2,ext3,ext4这类文件系统,通常是保存一整个文件,而对于一个缓存系统来说,我们经常会碰到需要保存部分文件,读取部分文件,判断文件的某个区间是否存在缓存,而这些都是哪些文件系统所不具备的。
而且该文件系统的特点是能够快速定位请求内容,所在位置,如此可以大大提高文件的查询速度,由于是自研的文件系统,磁盘的每一扇区都得到了充分利用,避免了空间浪费,节约了运维成本。大文件写入效率过慢,因为是往单一磁盘写入数据,无法做到单文件,多点存储。高并发时读取时,磁盘IO压力巨大,导致磁盘的读写速度变慢。
现有技术是利用现存的文件系统,如ext2,ext3等这类linux文件系统,这类系统,但这类文件系统是无法保存部分文件的,但对于一个内容分发网络,经常需要获取部分文件,所以传统的文件系统,必须获取全部的文件后,然后截取部分文件的内容,这种方式就对导致回源被放大。回源放大的意思就是,源站响应给内容分发网络的流量和内容分发网络相应给客户端的流量的比值被放大。
原本内容分发网络是帮助源站承担大部分流量,但这类文件系统却会导致源站承担的流量压力大大提高。可见这类传统的文件系统并不适合内容分发网络的缓存系统。并且对于大文件来说,传统的文件系统,写入和读取就会非常慢,存在缓存写入与读出速度慢、数据传输慢以及磁盘负载低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够实现缓存能够快速的写入与读出,加快了数据传输过程中的及时性,并降低了磁盘负载,提高的网络传输速度,降低了磁盘开销成本,减轻运维对系统维护的压力的基于内容分发网络缓存文件系统的文件缓存方法及装置。
本发明技术方案如下:
一种基于内容分发网络缓存文件系统的文件缓存方法,所述方法基于内容分发网络缓存文件系统,所述内容分发网络缓存文件系统包括逻辑层和存储层,所述存储层包括多个key-value键值对存储系统;所述文件缓存方法包括:
步骤S100:获取待缓存源文件;
步骤S200:基于所述内容分发网络缓存文件系统中的逻辑层将所述待缓存源文件分割成多个分片存储数据,并将各所述分片存储数据存储于所述存储层中的多个key-value键值对存储系统中。
具体地,所述待缓存源文件包括待缓存完整源文件;
步骤S200:基于所述内容分发网络缓存文件系统中的逻辑层将所述待缓存源文件分割成多个分片存储数据,并将各所述分片存储数据存储于所述存储层中的多个key-value键值对存储系统中;具体包括:
步骤S211:基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存完整源文件生成多个完整源文件分片对象;
步骤S212:对各所述完整源文件分片对象编码并转化生成完整源文件字节码,其中,一个所述完整源文件分片对象对应一个完整源文件字节码;
步骤S213:以所述完整源文件分片对象为key,以所述完整源文件字节码为value,将各所述完整源文件分片对象存储于所述存储层中的各所述key-value键值对存储系统中;
步骤S214:基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存完整源文件生成完整源文件元数据对象,其中,所述完整源文件元数据对象的key为请求的URL;
步骤S215:根据所述完整源文件元数据对象将所述完整源文件元数据对象转换为完整源文件元数据字节码;
步骤S216:以所述完整源文件元数据对象为key,以所述完整源文件元数据字节码为value,将各所述完整源文件元数据对象存储于所述存储层中的各所述key-value键值对存储系统中。
具体地,所述待缓存源文件包括待缓存不完整源文件;所述待缓存不完整源文件被分割后形成多个目标不完整源文件分片对象;
步骤S200:基于所述内容分发网络缓存文件系统中的逻辑层将所述待缓存源文件分割成多个分片存储数据,并将各所述分片存储数据存储于所述存储层中的多个key-value键值对存储系统中;具体包括:
步骤S221:基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存不完整源文件生成不完整源文件元数据对象,其中,所述不完整源文件元数据对象的key为请求的URL;
步骤S222:根据所述不完整源文件元数据对象将所述不完整源文件元数据对象转换为不完整源文件元数据字节码;
步骤S223:以所述不完整源文件元数据对象为key,以所述不完整源文件元数据字节码为value,将各所述不完整源文件元数据对象存储于所述存储层中的各所述key-value键值对存储系统中;
步骤S224:基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存不完整源文件生成各目标不完整源文件分片对象;
步骤S225:对各所述目标不完整源文件分片对象编码并转化生成不完整源文件字节码,其中,一个所述目标不完整源文件分片对象对应一个不完整源文件字节码;
步骤S216:以各所述目标不完整源文件分片对象为key,以所述不完整源文件字节码为value,将各所述目标不完整源文件分片对象存储于所述存储层中的各所述key-value键值对存储系统中。
具体地,步骤S216:以所述完整源文件元数据对象为key,以所述完整源文件元数据字节码为value,将各所述完整源文件元数据对象存储于所述存储层中的各所述key-value键值对存储系统中;之后还包括:
步骤S311:根据读取完整文件时所述请求的URL生成待读取完整源文件元数据对象的Key;
步骤S312:根据待读取完整源文件元数据对象的Key获取待读取完整源文件元数据对象;
步骤S313:根据所述待读取完整源文件元数据对象计算当前数据缓存时间,并根据当前数据缓存时间判断缓存是否过期,若判断为是,则删除缓存;
步骤S314:根据所述待读取完整源文件元数据对象获取待读取完整源文件分片对象的key;
步骤S315:根据所述待读取完整源文件分片对象获取待读取分片数据;
步骤S316:合并各所述待读取分片数据并生成合并后待缓存完整源文件,并输出所述合并后待缓存完整源文件。
具体地,步骤S216:以各所述目标不完整源文件分片对象为key,以所述不完整源文件字节码为value,将各所述目标不完整源文件分片对象存储于所述存储层中的各所述key-value键值对存储系统中;之后还包括:
步骤S321:根据读取不完整文件时所述请求的URL生成待读取不完整源文件元数据对象的Key;
步骤S322:根据待读取不完整源文件元数据对象的Key获取待不读取完整源文件元数据对象;
步骤S323:根据所述待读取不完整源文件元数据对象计算当前数据缓存时间,并根据当前数据缓存时间判断缓存是否过期,若判断为是,则删除缓存;
步骤S324:根据所述待读取完整源文件元数据对象获取待读取完整源文件分片对象的key;
步骤S325:根据所述待读取完整源文件分片对象获取待读不完整取分片数据;
步骤S326:合并各所述待读不完整取分片数据并生成合并后待缓存不完整源文件,并输出所述合并后待缓存不完整源文件。
具体地,一种基于内容分发网络缓存文件系统的文件缓存装置,所述装置包括:
待缓存源文件获取模块,用于获取待缓存源文件;
存储分片存储数据模块,用于基于所述内容分发网络缓存文件系统中的逻辑层将所述待缓存源文件分割成多个分片存储数据,并将各所述分片存储数据存储于所述存储层中的多个key-value键值对存储系统中。
具体地,所述存储分片存储数据模块包括:
分片对象文件模块,用于基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存完整源文件生成多个完整源文件分片对象;
源文件字节码转化模块,用于对各所述完整源文件分片对象编码并转化生成完整源文件字节码,其中,一个所述完整源文件分片对象对应一个完整源文件字节码;
存储系统模块,用于以所述完整源文件分片对象为key,以所述完整源文件字节码为value,将各所述完整源文件分片对象存储于所述存储层中的各所述key-value键值对存储系统中;
文件元数据对象生成模块,用于基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存完整源文件生成完整源文件元数据对象,其中,所述完整源文件元数据对象的key为请求的URL;
元数据字节码转换模块,用于根据所述完整源文件元数据对象将所述完整源文件元数据对象转换为完整源文件元数据字节码;
存储模块,用于以所述完整源文件元数据对象为key,以所述完整源文件元数据字节码为value,将各所述完整源文件元数据对象存储于所述存储层中的各所述key-value键值对存储系统中。
具体地,所述存储分片存储数据模块包括:
不完整源文件文件模块,用于基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存不完整源文件生成不完整源文件元数据对象,其中,所述不完整源文件元数据对象的key为请求的URL;
不完整源文件元数据字节码转换模块,用于根据所述不完整源文件元数据对象将所述不完整源文件元数据对象转换为不完整源文件元数据字节码;
键值对存储系统模块,用于以所述不完整源文件元数据对象为key,以所述不完整源文件元数据字节码为value,将各所述不完整源文件元数据对象存储于所述存储层中的各所述key-value键值对存储系统中;
目标不完整源文件生成模块,用于基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存不完整源文件生成各目标不完整源文件分片对象;
源文件字节码生成模块,用于对各所述目标不完整源文件分片对象编码并转化生成不完整源文件字节码,其中,一个所述目标不完整源文件分片对象对应一个不完整源文件字节码;
对象为key存储模块,用于以各所述目标不完整源文件分片对象为key,以所述不完整源文件字节码为value,将各所述目标不完整源文件分片对象存储于所述存储层中的各所述key-value键值对存储系统中。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述基于内容分发网络缓存文件系统的文件缓存方法所述的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于内容分发网络缓存文件系统的文件缓存方法所述的步骤。
本发明实现技术效果如下:
上述基于内容分发网络缓存文件系统的文件缓存方法及装置,通过设置基于内容分发网络缓存文件系统,使所述内容分发网络缓存文件系统包括逻辑层和存储层,所述存储层包括多个key-value键值对存储系统;所述文件缓存方法包括:方法中,先获取待缓存源文件;再基于所述内容分发网络缓存文件系统中的逻辑层将所述待缓存源文件分割成多个分片存储数据,并将各所述分片存储数据存储于所述存储层中的多个key-value键值对存储系统中,实现缓存能够快速的写入与读出,加快了数据传输过程中的及时性,并降低了磁盘负载,提高的网络传输速度,降低了磁盘开销成本,减轻了运维对系统维护的压力;
此外,通过使所述存储层包括多个key-value键值对存储系统,可以大大提供大文件的存储与读取效率,因为一个大文件可以分割成多个分片存储数据存储到不同的key-value键值对存储系统中,而读取的时候也可以同时从多个key-value键值对存储系统中读取不同的分片数据;
当然,对于一个key-value键值对存储系统,可以实现循环写入的一个存储系统,避免产生磁盘写满之后,无法写入的问题。
附图说明
图1为一个实施例中基于内容分发网络缓存文件系统的文件缓存方法的流程示意图;
图2为内容分发网络缓存文件系统的结构框图;
图3为元数据对象的数据结构示意图;
图4为key-value键值对存储系统的架构图;
图5为一个实施例中基于内容分发网络缓存文件系统的文件缓存装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种基于内容分发网络缓存文件系统的文件缓存方法,所述方法基于内容分发网络缓存文件系统,所述内容分发网络缓存文件系统包括逻辑层和存储层,所述存储层包括多个key-value键值对存储系统。具体地,通过使所述存储层包括多个key-value键值对存储系统,可以大大提供大文件的存储与读取效率,因为一个大文件可以分割成多个分片存储数据存储到不同的key-value键值对存储系统中,而读取的时候也可以同时从多个key-value键值对存储系统中读取不同的分片数据。
进一步地,如图2所述,为内容分发网络缓存文件系统的结构框图,图2中各K-V存储器均属于key-value键值对存储系统,各所述key-value键值对存储系统用于存储数据。
对于一个key-value键值对存储系统,可以实现循环写入的一个存储系统,避免产生磁盘写满之后,无法写入的问题。
具体地,所述文件缓存方法包括:
步骤S100:获取待缓存源文件;
步骤S200:基于所述内容分发网络缓存文件系统中的逻辑层将所述待缓存源文件分割成多个分片存储数据,并将各所述分片存储数据存储于所述存储层中的多个key-value键值对存储系统中。
本发明通过设置基于内容分发网络缓存文件系统,使所述内容分发网络缓存文件系统包括逻辑层和存储层,所述存储层包括多个key-value键值对存储系统;所述文件缓存方法包括:方法中,先获取待缓存源文件;再基于所述内容分发网络缓存文件系统中的逻辑层将所述待缓存源文件分割成多个分片存储数据,并将各所述分片存储数据存储于所述存储层中的多个key-value键值对存储系统中,实现缓存能够快速的写入与读出,加快了数据传输过程中的及时性,并降低了磁盘负载,提高的网络传输速度,降低了磁盘开销成本,减轻了运维对系统维护的压力。
在一个实施例中,如图4所示,为key-value键值对存储系统的架构图。所述key-value键值对存储系统包括两层,上层为缓存系统存储头,下层为缓存系统存储体。具体地,缓存系统存储头中包含了索引表,索引表存储了键值Key对应的值所在的缓存系统存储体对应的偏移位置和存储大小。并且为了减少键值对存储系统读写带来的io开销,会在内存中开辟一个内存Buffer,在键值对存储系统读取或写入的过程中,会优先读取或写入这个内存Buffer,当块内存Buffer写满之后,才同时将这块内存Buffer写入到键值对存储系统中。
在一个实施例中,所述待缓存源文件包括待缓存完整源文件;
步骤S200:基于所述内容分发网络缓存文件系统中的逻辑层将所述待缓存源文件分割成多个分片存储数据,并将各所述分片存储数据存储于所述存储层中的多个key-value键值对存储系统中;具体包括:
步骤S211:基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存完整源文件生成多个完整源文件分片对象;
具体地,根据所述待缓存完整源文件生成多个完整源文件分片对象之后,还接着填充分片对象内容,计算校验码。
步骤S212:对各所述完整源文件分片对象编码并转化生成完整源文件字节码,其中,一个所述完整源文件分片对象对应一个完整源文件字节码;
具体地,本步骤中,字节码为msgp。当然,也可以是其他编码,比如protobuf。
步骤S213:以所述完整源文件分片对象为key,以所述完整源文件字节码为value,将各所述完整源文件分片对象存储于所述存储层中的各所述key-value键值对存储系统中;
步骤S214:基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存完整源文件生成完整源文件元数据对象,其中,所述完整源文件元数据对象的key为请求的URL;
具体地,完整源文件元数据对象中还将保存所有分片的Key。
进一步地,所述完整源文件元数据对象为元数据对象,如图3所示。所述完整源文件元数据对象包括缓存键值Key,通过URL生成,元数据对象还包含所有的分片数据对象的键值Key,除此之外,元数据对象还包含了其他的关于该缓存的一些信息。
步骤S215:根据所述完整源文件元数据对象将所述完整源文件元数据对象转换为完整源文件元数据字节码;
步骤S216:以所述完整源文件元数据对象为key,以所述完整源文件元数据字节码为value,将各所述完整源文件元数据对象存储于所述存储层中的各所述key-value键值对存储系统中。
具体地,通过步骤S215和步骤S216,实现将各所述完整源文件元数据对象存储于所述存储层中的各所述key-value键值对存储系统中。
在一个实施例中,所述待缓存源文件包括待缓存不完整源文件;所述待缓存不完整源文件被分割后形成多个目标不完整源文件分片对象;
具体地,比如文件大小为10M,则需要获取第3M到第5M的文件。
步骤S200:基于所述内容分发网络缓存文件系统中的逻辑层将所述待缓存源文件分割成多个分片存储数据,并将各所述分片存储数据存储于所述存储层中的多个key-value键值对存储系统中;具体包括:
步骤S221:基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存不完整源文件生成不完整源文件元数据对象,其中,所述不完整源文件元数据对象的key为请求的URL;
具体地,所述不完整源文件元数据对象中还将保存所有分片的Key。
步骤S222:根据所述不完整源文件元数据对象将所述不完整源文件元数据对象转换为不完整源文件元数据字节码;
步骤S223:以所述不完整源文件元数据对象为key,以所述不完整源文件元数据字节码为value,将各所述不完整源文件元数据对象存储于所述存储层中的各所述key-value键值对存储系统中;
具体地,通过以所述不完整源文件元数据字节码为value,实现将各所述不完整源文件元数据对象存储于所述存储层中的各所述key-value键值对存储系统中。
步骤S224:基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存不完整源文件生成各目标不完整源文件分片对象;
步骤S225:对各所述目标不完整源文件分片对象编码并转化生成不完整源文件字节码,其中,一个所述目标不完整源文件分片对象对应一个不完整源文件字节码。
具体地,转化生成的不完整源文件字节码,实现了一个所述目标不完整源文件分片对象对应一个不完整源文件字节码。
步骤S216:以各所述目标不完整源文件分片对象为key,以所述不完整源文件字节码为value,将各所述目标不完整源文件分片对象存储于所述存储层中的各所述key-value键值对存储系统中。
进一步地,通过上述步骤实现了,把一个或部分文件,以分片的形式存储到缓存文件系统中。
在一个实施例中,步骤S216:以所述完整源文件元数据对象为key,以所述完整源文件元数据字节码为value,将各所述完整源文件元数据对象存储于所述存储层中的各所述key-value键值对存储系统中;之后还包括文件的读取,具体的读取步骤如下:
步骤S311:根据读取完整文件时所述请求的URL生成待读取完整源文件元数据对象的Key;
具体地,当读取完整文件时,将触发请求,及产生所述请求的URL。
步骤S312:根据待读取完整源文件元数据对象的Key获取待读取完整源文件元数据对象;
本步骤中,获取待读取完整源文件元数据对象的Key后,即可获取待读取完整源文件元数据对象。
步骤S313:根据所述待读取完整源文件元数据对象计算当前数据缓存时间,并根据当前数据缓存时间判断缓存是否过期,若判断为是,则删除缓存;
本步骤中,若判断为是,即为根据当前数据缓存时间判断缓存是过期,故此时删除缓存。
步骤S314:根据所述待读取完整源文件元数据对象获取待读取完整源文件分片对象的key;
步骤S315:根据所述待读取完整源文件分片对象获取待读取分片数据;
本步骤中,获取所述待读取分片数据,便于获取合并后待缓存完整源文件。
步骤S316:合并各所述待读取分片数据并生成合并后待缓存完整源文件,并输出所述合并后待缓存完整源文件。
具体地,通过合并各所述待读取分片数据并生成合并后待缓存完整源文件,实现对已经存储的文件的读取。
在一个实施例中,步骤S216:以各所述目标不完整源文件分片对象为key,以所述不完整源文件字节码为value,将各所述目标不完整源文件分片对象存储于所述存储层中的各所述key-value键值对存储系统中;之后还包括:
步骤S321:根据读取不完整文件时所述请求的URL生成待读取不完整源文件元数据对象的Key;
本步骤中,当需要读取不完整文件时,即可获取所述请求的URL。
步骤S322:根据待读取不完整源文件元数据对象的Key获取待不读取完整源文件元数据对象;
具体地,获取待不读取完整源文件元数据对象方便后续获取完整源文件。
步骤S323:根据所述待读取不完整源文件元数据对象计算当前数据缓存时间,并根据当前数据缓存时间判断缓存是否过期,若判断为是,则删除缓存;
本步骤中,若判断为是,即为根据当前数据缓存时间判断缓存是过期。
步骤S324:根据所述待读取完整源文件元数据对象获取待读取完整源文件分片对象的key;
步骤S325:根据所述待读取完整源文件分片对象获取待读不完整取分片数据;
本步骤中,待读不完整取分片数据用于合并,并生成完整文件。
步骤S326:合并各所述待读不完整取分片数据并生成合并后待缓存不完整源文件,并输出所述合并后待缓存不完整源文件。
在一个实施例中,如图5所示,一种基于内容分发网络缓存文件系统的文件缓存装置,所述装置包括:
待缓存源文件获取模块,用于获取待缓存源文件;
存储分片存储数据模块,用于基于所述内容分发网络缓存文件系统中的逻辑层将所述待缓存源文件分割成多个分片存储数据,并将各所述分片存储数据存储于所述存储层中的多个key-value键值对存储系统中。
在一个实施例中,所述存储分片存储数据模块包括:
分片对象文件模块,用于基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存完整源文件生成多个完整源文件分片对象;
源文件字节码转化模块,用于对各所述完整源文件分片对象编码并转化生成完整源文件字节码,其中,一个所述完整源文件分片对象对应一个完整源文件字节码;
存储系统模块,用于以所述完整源文件分片对象为key,以所述完整源文件字节码为value,将各所述完整源文件分片对象存储于所述存储层中的各所述key-value键值对存储系统中;
文件元数据对象生成模块,用于基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存完整源文件生成完整源文件元数据对象,其中,所述完整源文件元数据对象的key为请求的URL;
元数据字节码转换模块,用于根据所述完整源文件元数据对象将所述完整源文件元数据对象转换为完整源文件元数据字节码;
存储模块,用于以所述完整源文件元数据对象为key,以所述完整源文件元数据字节码为value,将各所述完整源文件元数据对象存储于所述存储层中的各所述key-value键值对存储系统中。
在一个实施例中,其特征在于,所述存储分片存储数据模块包括:
不完整源文件文件模块,用于基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存不完整源文件生成不完整源文件元数据对象,其中,所述不完整源文件元数据对象的key为请求的URL;
不完整源文件元数据字节码转换模块,用于根据所述不完整源文件元数据对象将所述不完整源文件元数据对象转换为不完整源文件元数据字节码;
键值对存储系统模块,用于以所述不完整源文件元数据对象为key,以所述不完整源文件元数据字节码为value,将各所述不完整源文件元数据对象存储于所述存储层中的各所述key-value键值对存储系统中;
目标不完整源文件生成模块,用于基于所述内容分发网络缓存文件系统中的逻辑层根据所述待缓存不完整源文件生成各目标不完整源文件分片对象;
源文件字节码生成模块,用于对各所述目标不完整源文件分片对象编码并转化生成不完整源文件字节码,其中,一个所述目标不完整源文件分片对象对应一个不完整源文件字节码
对象为key存储模块,用于以各所述目标不完整源文件分片对象为key,以所述不完整源文件字节码为value,将各所述目标不完整源文件分片对象存储于所述存储层中的各所述key-value键值对存储系统中。
在一个实施例中,所述存储分片存储数据模块还用于:根据读取完整文件时所述请求的URL生成待读取完整源文件元数据对象的Key;根据待读取完整源文件元数据对象的Key获取待读取完整源文件元数据对象;根据所述待读取完整源文件元数据对象计算当前数据缓存时间,并根据当前数据缓存时间判断缓存是否过期,若判断为是,则删除缓存;根据所述待读取完整源文件元数据对象获取待读取完整源文件分片对象的key;根据所述待读取完整源文件分片对象获取待读取分片数据;合并各所述待读取分片数据并生成合并后待缓存完整源文件,并输出所述合并后待缓存完整源文件。
在一个实施例中,所述存储分片存储数据模块还用于:根据读取不完整文件时所述请求的URL生成待读取不完整源文件元数据对象的Key;根据待读取不完整源文件元数据对象的Key获取待不读取完整源文件元数据对象;根据所述待读取不完整源文件元数据对象计算当前数据缓存时间,并根据当前数据缓存时间判断缓存是否过期,若判断为是,则删除缓存;根据所述待读取完整源文件元数据对象获取待读取完整源文件分片对象的key;根据所述待读取完整源文件分片对象获取待读不完整取分片数据;合并各所述待读不完整取分片数据并生成合并后待缓存不完整源文件,并输出所述合并后待缓存不完整源文件。
在一个实施例中,如图6所示,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述基于内容分发网络缓存文件系统的文件缓存方法所述的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于内容分发网络缓存文件系统的文件缓存方法所述的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
- 基于内容分发网络缓存文件系统的文件缓存方法及装置
- 一种分布式文件系统纠删码缓存装置及其缓存方法