一种缓存中的IO数据下刷方法、系统及相关装置制造方法及图纸

技术编号:24167493 阅读:36 留言:0更新日期:2020-05-16 01:53
本申请提供一种缓存中的IO数据下刷方法,包括:接收到IO请求时,判断缓存池是否满数据;若是,查找所述缓存池中读次数最小的目标IO请求;将所述目标IO请求所在的双向链表全部下刷至磁盘。本申请在缓存池中缓存数据满时,通过查找缓存池中读次数最小的IO,对该IO所在的双向链表的进行下刷磁盘的操作,可以出大量的缓存空间。不必反复进行缓存与磁盘的通信,提升读IO的缓存命中,进而提升系统性能。本申请还提供一种缓存中的IO数据下刷系统、计算机可读存储介质和服务器,具有上述有益效果。

【技术实现步骤摘要】
一种缓存中的IO数据下刷方法、系统及相关装置
本申请涉及服务器领域,特别涉及一种缓存中的IO数据下刷方法、系统及相关装置。
技术介绍
当前服务器中,在缓存数据已满需要替换时,通常缓存管理机制LRU是查找缓存数据IO的最近修改时间,把最长时间修改(读或者写)的IO替换掉,下刷到磁盘中。但是这种方式对持续写的IO应用场景下,对读缓存IO有影响,导致读IO很大概率被下刷到磁盘,导致读应用性能较差。
技术实现思路
本申请的目的是提供一种缓存中的IO数据下刷方法、系统、计算机可读存储介质和服务器,能够将IO请求批量下刷到磁盘。为解决上述技术问题,本申请提供一种缓存中的IO数据下刷方法,具体技术方案如下:接收到IO请求时,判断缓存池是否满数据;若是,查找所述缓存池中读次数最小的目标IO请求;将所述目标IO请求所在的双向链表全部下刷至磁盘;其中,所述双向链表按照IO请求的读次数分级,每级双向链表包含对应的读次数阈值。其中,包括:若所述缓存池未满数据,判断所述IO请求是否存在于所述缓存本文档来自技高网...

【技术保护点】
1.一种缓存中的IO数据下刷方法,其特征在于,包括:/n接收到IO请求时,判断缓存池是否满数据;/n若是,查找所述缓存池中读次数最小的目标IO请求;/n将所述目标IO请求所在的双向链表全部下刷至磁盘;/n其中,所述双向链表按照IO请求的读次数分级,每级双向链表包含对应的读次数阈值。/n

【技术特征摘要】
1.一种缓存中的IO数据下刷方法,其特征在于,包括:
接收到IO请求时,判断缓存池是否满数据;
若是,查找所述缓存池中读次数最小的目标IO请求;
将所述目标IO请求所在的双向链表全部下刷至磁盘;
其中,所述双向链表按照IO请求的读次数分级,每级双向链表包含对应的读次数阈值。


2.根据权利要求1所述的IO数据下刷方法,其特征在于,包括:
若所述缓存池未满数据,判断所述IO请求是否存在于所述缓存池中;
若所述IO请求存在于所述缓存池中,确定所述IO请求对应的第一双向链表,并将所述第一双向链表中所述IO请求对应的IO读次数加1;
若所述IO请求不存在于所述缓存池中,将所述IO请求加入最小双向链表;其中,所述最小双向链表的读次数小于预设值。


3.根据权利要求2所述的IO数据下刷方法,其特征在于,当所述第一双向链表中所述IO请求对应的IO读次数加1后不小于预设阈值时,还包括:
以所述预设阈值为界线将所述第一双向链表拆分成第一级双向链表和第二级双向链表;其中,所述第一级双向链表中各IO请求的IO读次数均小于所述预设阈值,所述第二级双向链表中各IO请求的IO读次数均大于或等于所述预设阈值。


4.根据权利要求1所述的IO数据下刷方法,其特征在于,还包括:
在所述缓存池中创建所述双向链表。


5.一种缓存中的IO数据下刷系统,其特征在于,包括:
第一判断模块,用于接收到IO请求时,判断缓存池是否满数据;
查找模块,用于所述第一判断模块判断结果为是时,查找所述缓存池中读次数最小的目标IO请求;
下刷模块,用于将所述目标IO...

【专利技术属性】
技术研发人员:张月辉廖梒宇
申请(专利权)人:北京浪潮数据技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1