CN114116634B - 一种缓存方法、装置及可读存储介质 - Google Patents
一种缓存方法、装置及可读存储介质 Download PDFInfo
- Publication number
- CN114116634B CN114116634B CN202210089975.0A CN202210089975A CN114116634B CN 114116634 B CN114116634 B CN 114116634B CN 202210089975 A CN202210089975 A CN 202210089975A CN 114116634 B CN114116634 B CN 114116634B
- Authority
- CN
- China
- Prior art keywords
- files
- cache
- file
- cached
- size
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000004590 computer program Methods 0.000 claims description 13
- 230000002596 correlated effect Effects 0.000 claims description 7
- 238000001914 filtration Methods 0.000 claims description 6
- 230000002085 persistent effect Effects 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- 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/18—File system types
- G06F16/182—Distributed file systems
-
- 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
Landscapes
- Engineering & Computer Science (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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种缓存方法、装置及可读存储介质,涉及电子信息领域。本申请所提供的缓存方法,通过对待缓存文件中的文件大小进行统计及判断,从而计算得出本次的缓存文件是否为多个小文件的缓存方式,当为多个小文件进行缓存时,合理调整缓存空间的大小,且通过访问频次对已缓存文件进行特征值的计算,比起之前的仅仅对文件进行缓存而不进行相应调整,本方案所给出的缓存方法当为多个小文件进行缓存时,即合理增大缓存空间,防止由于缓存空间不足所导致的信息堵塞,当为大文件较多时则设置为默认值不进行调整,有效节省了缓存资源,且通过根据缓存文件热度生成特征值,当缓存空间不足时,优先将缓存文件中不经常访问的文件进行淘汰。
Description
技术领域
本申请涉及电子信息领域,特别是涉及一种缓存方法、装置及可读存储介质。
背景技术
近年来,随着信息技术的发展,数据流量在当今社会中越来越大,每个服务器所需要处理的数据也越来越多,分布式存储系统应运而生,该系统本质是将大量的文件,均匀分布到多个存储服务器上。分布式存储系统已经普遍应用于生成环境中,具有高扩展性,高可用性,高可靠性的特点,与此同时,分布式对象存储系统能够应用于多种场景,在商业化模式的推动下,对分布式存储系统的性能要求越来越高。
当前的分布式存储系统对文件进行存储通常是将文件预读到缓存中,例如固态硬盘(Solid State Drives,SSD)或内存存储介质中,以高速存储介质换取存储IO性能,该方案仅仅是对文件进行缓存,而未进行进一步,考虑到由于缓存文件大小的原因,相同大小的文件,若分为多个小文件所需的缓存空间大于单个大文件,而上述方案仅仅是对文件进行缓存,而未针对缓存空间进行进一步的,若缓存空间设置太小,则容易造成缓存命中率过低,从而导致元数据集群会频繁fetch提取目录内容信息,造成元数据集群的请求阻塞,进而导致存储IO性能下降,若缓存空间设置过大,则会造成空间资源的浪费,且对于缓存空间不足时,要将部分已缓存文件进行淘汰的情况,未进行合理,可能导致淘汰的缓存文件为常用的缓存文件的情况。
鉴于上述技术,寻找一种能够充分利用缓存空间的缓存方法是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种缓存方法,以便于解决当前分布式存储系统的缓存空间分配不合理的问题。
为解决上述技术问题,本申请提供一种缓存方法,应用于分布式存储系统,包括:
获取待缓存文件;
统计所述待缓存文件中的文件大小,并确定所述待缓存文件中,低于预设大小的文件数量;
若所述低于预设大小的文件数量小于或等于预设标准,则将所述待缓存文件的缓存空间大小设置为默认值;
若所述低于预设大小的文件数量大于预设标准,则将所述待缓存文件的缓存空间大小设置为预设值,所述预设值大于所述默认值;
将所述待缓存文件缓存至所述缓存空间;
根据所述缓存空间中的各缓存文件的热度生成特征值,所述特征值与各所述缓存文件的热度正相关。
优选地,根据所述缓存空间中的各缓存文件的热度生成特征值包括:
根据各所述缓存文件的元数据大小,数据大小以及访问频次,迭代生成各所述缓存文件的特征值。
优选地,所述方法还包括:
根据所述预设值或默认值确定缓存上限;
判断当前全部所述缓存文件的大小是否超过所述缓存上限;
若是,根据所述特征值删除特征值最低的所述缓存文件,并返回判断当前全部所述缓存文件的特征值是否超过所述缓存上限的步骤。
优选地,所述方法还包括:
设置两个链表队列,第一队列及第二队列,并将新缓存文件存储至所述第一队列的表头,并将所述新缓存的特征值设置为初始值;
每隔预设时间,根据所述队列中各所述缓存文件的被访问频率,计算并修改各所述缓存文件的特征值,并根据特征值,将各所述缓存文件进行排序,特征值高于预设特征值的文件设置于所述第一队列,特征值低于所述预设特征值的文件设置于第二队列,且所述第一队列与所述第二队列中的所述缓存文件根据所述特征值由高到低进行排序。
优选地,所述统计所述待缓存文件中的文件大小,并确定所述待缓存文件中,低于预设大小的文件数量包括:
调整debug日志,过滤出Client IO请求模型日志文件,通过关键字过滤出现所述待缓存文件的索引节点列表信息,记录到索引文件中;
通过所述索引文件,计算所述待缓存文件的大小,并确定所述待缓存文件中,低于第一预设大小的文件数量。
优选地,所述获取待缓存文件包括:
通过元数据集群服务将所述待缓存文件的元数据存储到持久化存储磁盘,并通过数据IO接口获取所述待缓存文件的数据。
优选地,所述方法还包括:
当所述待缓存文件缓存未命中时,发出警报,并从存储底盘中获取所述待缓存文件再次进行缓存。
为解决上述问题,本申请还提供一种缓存装置,所述装置包括:
获取模块,用于获取待缓存文件;
统计模块,用于统计所述待缓存文件中的文件大小,并确定所述待缓存文件中,低于预设大小的文件数量;
第一设置模块,当所述低于预设大小的文件数量小于或等于预设标准时开启,用于将所述待缓存文件的缓存空间大小设置为默认值;
第二设置模块,当所述低于预设大小的文件数量大于预设标准时开启,用于将所述待缓存文件的缓存空间大小设置为预设值,所述预设值大于所述默认值;
缓存模块,用于将所述待缓存文件缓存至所述缓存空间;
生成模块,用于根据所述缓存空间中的各缓存文件的热度生成特征值,所述特征值与各所述缓存文件的热度正相关,以便于在所述缓存空间不足时,优先删除所述特征值小的所述缓存文件。
为解决上述问题,本申请还提供一种缓存装置,包括存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述的缓存方法的步骤。
为解决上述问题,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的缓存方法的步骤。
本申请所提供的缓存方法,通过对待缓存文件中的文件大小进行统计及判断,从而计算得出本次的缓存文件是否为多个小文件的缓存方式,当为多个小文件进行缓存时,合理调整缓存空间的大小,且通过访问频次对已缓存文件进行特征值的计算,比起之前的仅仅对文件进行缓存而不进行相应调整,本方案所给出的缓存方法当为多个小文件进行缓存时,即合理增大缓存空间,防止由于缓存空间不足所导致的信息堵塞,当为大文件较多时则设置为默认值不进行调整,有效节省了缓存资源,且通过根据缓存文件热度生成特征值,当缓存空间不足时,将缓存文件中不经常访问的文件进行淘汰,从而合理对缓存空间中的文件进行管理。
本申请所提供的缓存装置及计算机可读存储介质与上述的缓存方法对应,有益效果同上。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种缓存方法流程图;
图2为本申请实施例提供的一种缓存装置示意图;
图3为本申请另一实施例提供的缓存装置的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
本申请的核心是提供一种缓存方法,以便于解决当前分布式存储系统的缓存空间分配不合理的问题。
分布式存储系统是建立在网络之上的软件系统。处理各项协助的任务,然后整合出结果。
在海量数据场景下,小文件的频繁访问,对海量数据存储有新的技术要求。传统存储虽然技术成熟、性能良好、可用性高等优点,但面对海量数据,其缺点也越来越明显,如扩展性差、成本高、存在单点故障和性能瓶颈等。为了克服上述缺点,满足海量数据的存储需求,当前技术背景下出现了分布式存储技术。分布式存储系统,通常包括主控服务器、存储服务器,以及多个客户端组成。
需要说明的是,本申请基于分布式存储系统,一种统一的、自控的、可扩展的分布式存储,提供Object,Block和File System三种协议访问接口,可通过底层的动态库与后端交互,包括对象存储单元,用以存储数据功能。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
图1为本申请实施例提供的一种缓存方法流程图,应用于分布式存储系统,如图1所示,该方法包括:
S10:获取待缓存文件。
需要说明的是,待缓存文件的存储请求分为元数据请求和数据请求,即对于待缓存文件的元数据以及数据分别进行存储,在本实施例中,对于获取待缓存文件的具体方式不进行限定,对于待缓存文件本身的内容,格式以及个数等等均不进行限定。
元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data aboutdata),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。元数据是关于数据的组织、数据域及其关系的信息,简言之,元数据就是关于数据的数据,最常用的手法即是作为文件数据查询的目录使用。
S11:统计待缓存文件中的文件大小,并确定待缓存文件中,低于预设大小的文件数量。
可以理解的是,本申请中所提及的文件大小,均为文件本身所占内存大小,与文件尺寸大小等等进行具体区分,对于统计待缓存文件中的文件大小,可以是调取原文件进行查询统计,也可以查看传输日志的方式进行统计,在此对于统计待缓存文件中的文件大小的方式不进行限定。
需要说明的是,本申请中对与文件的预设大小不进行限定,根据用户的选择进行设定,即由用户设定,多大的文件大小属于设定范围内的小文件,,根据文件本身大小性质,优选128k为预设大小,128k是一个界限,大文件统计的目的是有助于后续统计性能带宽。大文件形式带宽高,小文件形式iops高。因此小文件易于修改,size更大,更占内存,能够缓存的文件更多。
S12:判断低于预设大小的文件数量是否大于预设标准,若否,进入S13,若是,进入S14。
由于本方案中,对于如何统计文件大小的方式未进行限定,因此对于如何判断预设大小文件数量是否大于预设标准依然不进行限定,对于预设标准本身也不进行限定,可以理解的是,预设标准一般设定为百分之五十,例如若低于预设大小的文件,即小文件的数量大于百分之五十,即可认定本次传输的待缓存文件为多个小文件的传输。
根据上述内容,对于待缓存文件的大小分类,可以将其分为多个分段,例如可以同时统计128K,512K,1MB,4MB,1GB文件大小进行区分,可以通过获取得到不同阶段不同大小的文件的占比,从而针对每个阶段的文件占比,设置多个对应的预设值,以便于合理利用缓存空间。
S13:将待缓存文件的缓存空间大小设置为默认值;
S14:将待缓存文件的缓存空间大小设置为预设值;
可以理解的是,由于相同内存大小下,缓存多个小文件本身需要的空间大于缓存单个大文件所需要的空间,所以预设值大于默认值,且由于对文件进行缓存是同时对文件的数据以及元数据进行缓存,因此本申请中所提及的缓存空间同时包含了数据空间以及元数据空间,且对于缓存空间本身性质及大小不进行限定,例如,可以是高速介质SSD,NVME等。
作为参考值默认值中元数据缓存空间的值为2000000,数据缓存空间的值为160000,所述预设值中元数据缓存空间的值为4000000,数据缓存空间的值为300000,预设标准为低于预设大小的文件数量大于百分之五十。
S15:将待缓存文件缓存至缓存空间。
本实施例中,对于待缓存文件缓存至缓存空间的方式不进行限定,一般来说文件的元数据通过元数据集群服务缓存至缓存空间,而待缓存文件的数据通过数据IO接口传输至缓存空间,由于与本申请发明点关系不大,此后不再赘述。
S16:根据缓存空间中的各缓存文件的热度生成特征值。
需要说明的是,特征值与各缓存文件的热度正相关,由于特征值与缓存文件的热度正相关,即可以根据查询特征值来判断文件的热度高低,从而在定期清理以及缓存空间不足时,优先清理热度较低的缓存文件,本实施例中,对于缓存文件和特征值的具体内容不进行限定。
本实施例所提供的缓存方法,通过对待缓存文件中的文件大小进行统计及判断,从而计算得出本次的缓存文件是否为多个小文件的缓存方式,当为多个小文件进行缓存时,合理调整缓存空间的大小,且通过访问频次对已缓存文件进行特征值的计算,比起之前的仅仅对文件进行缓存而不进行相应调整,本方案所给出的缓存方法当为多个小文件进行缓存时,即合理增大缓存空间,防止由于缓存空间不足所导致的信息堵塞,当为大文件较多时则设置为默认值不进行调整,有效节省了缓存资源,且通过根据缓存文件热度生成特征值,当缓存空间不足时,将缓存文件中不经常访问的文件进行淘汰,从而合理对缓存空间中的文件进行管理。
上述实施例中,未对如何生存特征值进行限定,在本实施例中提出优选方案,根据缓存空间中的各缓存文件的热度生成特征值包括:
根据各缓存文件的元数据大小,数据大小以及访问频次,迭代生成各缓存文件的特征值,特征值与缓存文件的访问频次正相关。
需要说明的是,迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次"迭代",而每一次迭代得到的结果会作为下一次迭代的初始值。由于元数据大小与数据大小均为文件本身性质,不会由于客户端的访问以及存储时间发生改变,而访问频次为三个数据中的唯一变量,因此,特征值与缓存文件的访问频次正相关。
在本实施例中,提出通过元数据大小,数据大小以及访问频次通过迭代的方式生成各缓存文件的特征值,从而起到将特征值的数据与访问频次进行关联,便于特征值的生成,以及对文件的热度的准确判断。
考虑到当缓存空间过大时,需要删除部分缓存文件以便于后续文件缓存,在此提出优选方案,该方法还包括:
根据预设值或默认值确定缓存上限;
判断当前全部缓存文件的大小是否超过缓存上限;
若是,根据特征值删除特征值最低的缓存文件,并返回判断当前全部缓存文件的特征值是否超过缓存上限的步骤。
需要说明的是,当缓存空间不足时,需要通过删除部分缓存,因此上述实施例中针对不同的缓存文件的热度,设立特征值,以便于在本实施例中,根据特征值,删除特征值最低的缓存文件,从而防止重要的缓存文件被删除的问题,可以想到的是,针对被删除的缓存文件可以设立特殊的存储器对其进行存储,以便于后期的调用。
上述实施例中提出了当缓存空间不足时优先删除特征值较低的缓存文件,考虑到实际的应用方式,在此提出优选方案,该方法还包括:
设置两个链表队列,并将新缓存文件存储至第一队列的表头,并将新缓存的特征值设置为初始值;
每隔预设时间,根据队列中各缓存文件的被访问频率,计算并修改各缓存文件的特征值,并根据特征值,将各缓存文件进行排序,特征值高于预设特征值的文件设置于第一队列,特征值低于预设特征值的文件设置于第二队列,且第一队列与第二队列中的缓存文件根据特征值由高到低进行排序。
本实施例中,通过链表队列的方式,对缓存文件进行了具体排序,存储IO数据不断写入过程,当文件长时间不被访问时,将该对象缓存对象移到第二队列,客户端会先从数据缓存空间查找缓存,然后在元数据缓存空间中查找对应的元数据,可以理解的是,预设特征值即可以是第一队列中的最后一个文件的特征值,因此预设特征值也是随着队列中特征值的变化而改变的。
当访问海量小文件目录时,需要缓存的对象数已超过第一队列和第二队列的阈值,则将缓存优先级最低的对象数据淘汰,随着访问频次的不断进行,频次高的会调整到第一队列缓存首部,频次低的会调整到第二队列的末尾直至淘汰,从而防止由于元数据请求阻塞的问题。
上述实施例中,对于统计待缓存文件中的文件大小以及确定文件数量的方式未进行限定,在此提出优选方案,统计待缓存文件中的文件大小,并确定待缓存文件中,低于预设大小的文件数量包括:
调整debug日志,过滤出Client IO请求模型日志文件,通过关键字过滤出现待缓存文件的索引节点列表信息,记录到索引文件中;
通过索引文件,计算待缓存文件的大小,并确定待缓存文件中,低于第一预设大小的文件数量。
本实施例主要是通过分布式存储对象存储资源(Object Storage Device,OSD)进程模块实现的,分布式存储OSD进程模块是指客户端命中缓存对象缓存层日志文件进行实现,通过对日志文件中的关键字进行拾取,即可获取得到待缓存文件的基本信息,从而使得统计待缓存文件的大小更加便利。
上述实施例中,对于如何获取待缓存,获取待缓存文件包括:
通过元数据集群服务将待缓存文件的元数据存储到持久化存储磁盘,并通过数据IO接口获取待缓存文件的数据。
通过上述方式,将待缓存文件的元数据以及IO接口的数据进行获取,提高了数据的缓存的存储时间,以及缓存的正确性。
考虑到缓存文件时,可能出现未命中的情况,在此提出优选方案,该方法还包括:
当待缓存文件缓存未命中时,发出警报,并从存储底盘中获取待缓存文件再次进行缓存。
通过警报以及二次缓存的方式,优化了文件缓存的命中率,通过警报提示用户,从而确保再次缓存的顺利进行。
在上述实施例中,对于缓存方法进行了详细描述,本申请还提供缓存装置对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
图2为本申请实施例提供的一种缓存装置示意图,该装置包括:
获取模块10,用于获取待缓存文件;
统计模块11,用于统计待缓存文件中的文件大小,并确定待缓存文件中,低于预设大小的文件数量;
第一设置模块12,当低于预设大小的文件数量小于或等于预设标准时开启,用于将待缓存文件的缓存空间大小设置为默认值;
第二设置模块13,当低于预设大小的文件数量大于预设标准时开启,用于将待缓存文件的缓存空间大小设置为预设值,预设值大于默认值;
缓存模块14,用于将待缓存文件缓存至缓存空间;
生成模块15,用于根据缓存空间中的各缓存文件的热度生成特征值。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例及有益效果请参见方法部分的实施例的描述,这里暂不赘述。
图3为本申请另一实施例提供的缓存装置的结构图,如图3所示,缓存包括:存储器20,用于存储计算机程序;
处理器21,用于执行计算机程序时实现如上述实施例中所提到的缓存方法的步骤。
本实施例提供的缓存装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的缓存方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、Linux等。数据203可以包括但不限于缓存方法中涉及的数据等。
在一些实施例中,缓存装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
本领域技术人员可以理解,图3中示出的结构并不构成对缓存装置的限定,可以包括比图示更多或更少的组件。
本申请实施例提供的缓存装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:上述实施例中所描述的缓存方法。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例及有益效果请参见方法部分的实施例的描述,这里暂不赘述。
最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
由于可读存储介质部分的实施例与方法部分的实施例相互对应,因此可读存储介质部分的实施例及有益效果请参见方法部分的实施例的描述,这里暂不赘述。
以上对本申请所提供的一种缓存方法、装置及可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种缓存方法,其特征在于,应用于分布式存储系统,包括:
获取待缓存文件;
统计所述待缓存文件中的文件大小,并确定所述待缓存文件中,低于预设大小的文件数量;
若所述低于预设大小的文件数量小于或等于预设标准,则将所述待缓存文件的缓存空间大小设置为默认值;
若所述低于预设大小的文件数量大于预设标准,则将所述待缓存文件的缓存空间大小设置为预设值,所述预设值大于所述默认值;
将所述待缓存文件缓存至所述缓存空间;
根据所述缓存空间中的各缓存文件的热度生成特征值,所述特征值与各所述缓存文件的热度正相关。
2.根据权利要求1所述的缓存方法,其特征在于,根据所述缓存空间中的各缓存文件的热度生成特征值包括:
根据各所述缓存文件的元数据大小,数据大小以及访问频次,迭代生成各所述缓存文件的特征值。
3.根据权利要求2所述的缓存方法,其特征在于,所述方法还包括:
根据所述预设值或默认值确定缓存上限;
判断当前全部所述缓存文件的大小是否超过所述缓存上限;
若是,根据所述特征值删除特征值最低的所述缓存文件,并返回判断当前全部所述缓存文件的特征值是否超过所述缓存上限的步骤。
4.根据权利要求3所述的缓存方法,其特征在于,所述方法还包括:
设置两个链表队列,第一队列及第二队列,并将新缓存文件存储至所述第一队列的表头,并将所述新缓存的特征值设置为初始值;
每隔预设时间,根据所述队列中各所述缓存文件的被访问频率,计算并修改各所述缓存文件的特征值,并根据特征值,将各所述缓存文件进行排序,特征值高于预设特征值的文件设置于所述第一队列,特征值低于所述预设特征值的文件设置于第二队列,且所述第一队列与所述第二队列中的所述缓存文件根据所述特征值由高到低进行排序。
5.根据权利要求4所述的缓存方法,其特征在于,所述统计所述待缓存文件中的文件大小,并确定所述待缓存文件中,低于预设大小的文件数量包括:
调整debug日志,过滤出Client IO请求模型日志文件,通过关键字过滤出现所述待缓存文件的索引节点列表信息,记录到索引文件中;
通过所述索引文件,计算所述待缓存文件的大小,并确定所述待缓存文件中,低于第一预设大小的文件数量。
6.根据权利要求5所述的缓存方法,其特征在于,所述获取待缓存文件包括:
通过元数据集群服务将所述待缓存文件的元数据存储到持久化存储磁盘,并通过数据IO接口获取所述待缓存文件的数据。
7.根据权利要求1至6任意一项所述的缓存方法,其特征在于,还包括:
当所述待缓存文件缓存未命中时,发出警报,并从存储底盘中获取所述待缓存文件再次进行缓存。
8.一种缓存装置,其特征在于,包括:
获取模块,用于获取待缓存文件;
统计模块,用于统计所述待缓存文件中的文件大小,并确定所述待缓存文件中,低于预设大小的文件数量;
第一设置模块,当所述低于预设大小的文件数量小于或等于预设标准时开启,用于将所述待缓存文件的缓存空间大小设置为默认值;
第二设置模块,当所述低于预设大小的文件数量大于预设标准时开启,用于将所述待缓存文件的缓存空间大小设置为预设值,所述预设值大于所述默认值;
缓存模块,用于将所述待缓存文件缓存至所述缓存空间;
生成模块,用于根据所述缓存空间中的各缓存文件的热度生成特征值。
9.一种缓存装置,其特征在于,包括存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的缓存方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的缓存方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210089975.0A CN114116634B (zh) | 2022-01-26 | 2022-01-26 | 一种缓存方法、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210089975.0A CN114116634B (zh) | 2022-01-26 | 2022-01-26 | 一种缓存方法、装置及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114116634A CN114116634A (zh) | 2022-03-01 |
CN114116634B true CN114116634B (zh) | 2022-04-22 |
Family
ID=80361489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210089975.0A Active CN114116634B (zh) | 2022-01-26 | 2022-01-26 | 一种缓存方法、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116634B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4375842A1 (en) | 2022-08-17 | 2024-05-29 | Beijing Superstring Academy of Memory Technology | Storage system, computational storage processor and solid-state drive thereof, and data reading method and data writing method therefor |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122906A (zh) * | 2006-08-09 | 2008-02-13 | 北京北大方正电子有限公司 | 一种文档存储方法及系统 |
CN101556557A (zh) * | 2009-05-14 | 2009-10-14 | 浙江大学 | 一种基于对象存储设备的对象文件组织方法 |
CN102622185A (zh) * | 2011-01-27 | 2012-08-01 | 北京东方广视科技股份有限公司 | 在多个存储单元中存储文件的方法以及存储分配方法 |
CN103336673A (zh) * | 2013-07-10 | 2013-10-02 | 中国建设银行股份有限公司 | 用于自助设备的海量文件重复存储方法和装置 |
CN103514112A (zh) * | 2012-06-29 | 2014-01-15 | 浙江大华技术股份有限公司 | 一种数据存储方法及系统 |
CN103581051A (zh) * | 2012-08-02 | 2014-02-12 | 深圳市腾讯计算机系统有限公司 | 一种文件缓存方法、装置和系统 |
CN103577123A (zh) * | 2013-11-12 | 2014-02-12 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
CN103608785A (zh) * | 2013-06-21 | 2014-02-26 | 华为技术有限公司 | 一种文件读取方法、存储设备及读取系统 |
CN104111804A (zh) * | 2014-06-27 | 2014-10-22 | 暨南大学 | 一种分布式文件系统 |
CN104133882A (zh) * | 2014-07-28 | 2014-11-05 | 四川大学 | 一种基于hdfs的小文件处理方法 |
CN104731886A (zh) * | 2015-03-12 | 2015-06-24 | 深圳市连用科技有限公司 | 一种海量小文件的处理方法及系统 |
CN105138571A (zh) * | 2015-07-24 | 2015-12-09 | 四川长虹电器股份有限公司 | 分布式文件系统及其存储海量小文件的方法 |
CN105426127A (zh) * | 2015-11-13 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种分布式集群系统的文件存储方法及装置 |
CN106294603A (zh) * | 2016-07-29 | 2017-01-04 | 北京奇虎科技有限公司 | 文件存储方法及装置 |
CN106528761A (zh) * | 2016-11-04 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种文件缓存方法及装置 |
CN106528451A (zh) * | 2016-11-14 | 2017-03-22 | 哈尔滨工业大学(威海) | 针对小文件的二级缓存预取的云存储框架及构建方法 |
CN108984659A (zh) * | 2018-06-28 | 2018-12-11 | 山东浪潮商用系统有限公司 | 一种用于idfs的文件均衡方法 |
CN109240607A (zh) * | 2018-08-21 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种文件读取方法和装置 |
CN110287160A (zh) * | 2019-05-31 | 2019-09-27 | 广东睿江云计算股份有限公司 | 一种缓存空间清理方法及装置 |
US10534758B1 (en) * | 2018-12-20 | 2020-01-14 | Qumulo, Inc. | File system cache tiers |
CN111723057A (zh) * | 2020-05-28 | 2020-09-29 | 广东浪潮大数据研究有限公司 | 一种文件预读方法、装置、设备及存储介质 |
CN112214468A (zh) * | 2020-10-18 | 2021-01-12 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统小文件加速方法、装置、设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10387383B2 (en) * | 2017-02-15 | 2019-08-20 | Google Llc | Systems and methods for providing access to a data file stored at a data storage system |
-
2022
- 2022-01-26 CN CN202210089975.0A patent/CN114116634B/zh active Active
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122906A (zh) * | 2006-08-09 | 2008-02-13 | 北京北大方正电子有限公司 | 一种文档存储方法及系统 |
CN101556557A (zh) * | 2009-05-14 | 2009-10-14 | 浙江大学 | 一种基于对象存储设备的对象文件组织方法 |
CN102622185A (zh) * | 2011-01-27 | 2012-08-01 | 北京东方广视科技股份有限公司 | 在多个存储单元中存储文件的方法以及存储分配方法 |
CN103514112A (zh) * | 2012-06-29 | 2014-01-15 | 浙江大华技术股份有限公司 | 一种数据存储方法及系统 |
CN103581051A (zh) * | 2012-08-02 | 2014-02-12 | 深圳市腾讯计算机系统有限公司 | 一种文件缓存方法、装置和系统 |
CN103608785A (zh) * | 2013-06-21 | 2014-02-26 | 华为技术有限公司 | 一种文件读取方法、存储设备及读取系统 |
CN103336673A (zh) * | 2013-07-10 | 2013-10-02 | 中国建设银行股份有限公司 | 用于自助设备的海量文件重复存储方法和装置 |
CN103577123A (zh) * | 2013-11-12 | 2014-02-12 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
CN104111804A (zh) * | 2014-06-27 | 2014-10-22 | 暨南大学 | 一种分布式文件系统 |
CN104133882A (zh) * | 2014-07-28 | 2014-11-05 | 四川大学 | 一种基于hdfs的小文件处理方法 |
CN104731886A (zh) * | 2015-03-12 | 2015-06-24 | 深圳市连用科技有限公司 | 一种海量小文件的处理方法及系统 |
CN105138571A (zh) * | 2015-07-24 | 2015-12-09 | 四川长虹电器股份有限公司 | 分布式文件系统及其存储海量小文件的方法 |
CN105426127A (zh) * | 2015-11-13 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种分布式集群系统的文件存储方法及装置 |
CN106294603A (zh) * | 2016-07-29 | 2017-01-04 | 北京奇虎科技有限公司 | 文件存储方法及装置 |
CN106528761A (zh) * | 2016-11-04 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种文件缓存方法及装置 |
CN106528451A (zh) * | 2016-11-14 | 2017-03-22 | 哈尔滨工业大学(威海) | 针对小文件的二级缓存预取的云存储框架及构建方法 |
CN108984659A (zh) * | 2018-06-28 | 2018-12-11 | 山东浪潮商用系统有限公司 | 一种用于idfs的文件均衡方法 |
CN109240607A (zh) * | 2018-08-21 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种文件读取方法和装置 |
US10534758B1 (en) * | 2018-12-20 | 2020-01-14 | Qumulo, Inc. | File system cache tiers |
CN110287160A (zh) * | 2019-05-31 | 2019-09-27 | 广东睿江云计算股份有限公司 | 一种缓存空间清理方法及装置 |
CN111723057A (zh) * | 2020-05-28 | 2020-09-29 | 广东浪潮大数据研究有限公司 | 一种文件预读方法、装置、设备及存储介质 |
CN112214468A (zh) * | 2020-10-18 | 2021-01-12 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统小文件加速方法、装置、设备及介质 |
Non-Patent Citations (3)
Title |
---|
Optimal proxy cache allocation for efficient streaming media distribution;Wang B 等;《Twenty-First Annual Joint Conference of the IEEE Computer and Communications Societies》;20021107;1726-1735 * |
一种基于数据热度的缓存策略;冯东煜 等;《信息与电脑(理论版)》;20210625;第33卷(第12期);196-199 * |
一种海量小文件对象存储优化方案;屠雪真 等;《计算机技术与发展》;20190831;第29卷(第8期);31-36 * |
Also Published As
Publication number | Publication date |
---|---|
CN114116634A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109947668B (zh) | 存储数据的方法和装置 | |
CN106844740B (zh) | 基于内存对象缓存系统的数据预读方法 | |
CN107526550B (zh) | 一种基于日志结构合并树的两阶段合并方法 | |
US9727479B1 (en) | Compressing portions of a buffer cache using an LRU queue | |
JP2021501389A (ja) | データ階層記憶及び階層探索方法及び装置 | |
WO2022233272A1 (zh) | 缓存内存块的淘汰方法、装置及电子设备 | |
CN108089825B (zh) | 一种基于分布式集群的存储系统 | |
WO2021043026A1 (zh) | 一种存储空间的管理方法及装置 | |
CN114116634B (zh) | 一种缓存方法、装置及可读存储介质 | |
CN111143158A (zh) | 一种监控数据实时存储方法、系统、电子设备及存储介质 | |
JP2017228310A (ja) | 共有コンテンツアイテムのストレージ制約付きの同期 | |
CN114817195A (zh) | 一种分布式存储缓存管理的方法、系统、存储介质及设备 | |
CN110321364B (zh) | 信用卡管理系统的交易数据查询方法、装置及终端 | |
CN111881092A (zh) | 一种基于cassandra数据库的文件合并的方法和装置 | |
CN113094392A (zh) | 数据缓存的方法和装置 | |
CN115167778A (zh) | 存储的管理方法、系统及服务器 | |
WO2022111733A1 (zh) | 消息处理方法、装置及电子设备 | |
CN115993932A (zh) | 数据处理方法、装置、存储介质以及电子设备 | |
CN116820323A (zh) | 数据存储方法、装置、电子设备及计算机可读存储介质 | |
CN115904211A (zh) | 一种存储系统、数据处理方法及相关设备 | |
CN112306909B (zh) | 一种缓存淘汰方法、装置及电子设备 | |
CN116991781B (zh) | 一种请求处理装置、方法、芯片、存储介质及电子设备 | |
CN112307059B (zh) | 一种排行榜管理方法、装置、计算机设备和存储介质 | |
WO2023279833A1 (zh) | 一种数据处理方法及装置 | |
CN116450590A (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 |