自适应混合读/写缓存的方法技术

技术编号:12567350 阅读:101 留言:0更新日期:2015-12-23 10:42
本发明专利技术涉及一种自适应混合读/写缓存的方法及系统,所述方法包括:S1、将所述存储器的缓存按设定的大小划分成多个块,并设置成每个缓存节点为一个块;S2、使用红黑树对所述每个缓存节点进行索引;S3、在写入或读取缓存时,找到对应的缓存节点,然后在所述缓存节点上进行相应的写入或读取;其中,在进行写入或读取缓存时,统计所述读写缓存的使用情况及读写比例,对所述写入或读取的缓存比例进行调节。本发明专利技术的方法通过控制读缓存和写缓存的大小,自适应地调节读写缓存的比例。

【技术实现步骤摘要】

本专利技术涉及计算机存储技术,尤其涉及一种自适应混合读/写的缓存的方法。
技术介绍
目前市面上大部分存储产品的缓存都是读写分离的,读缓存的数据结构与写缓存的数据结构不复用,在内存中表现为两个区域,两份数据。上述读写方式的优点是比较容易管理,但具有以下缺点:(I)如果对同一段数据先读后写,那么要么必须同时更新两份缓存,要么将读缓存设置为失效或删除。(2)如果对同一段数据先写后读,那么要么将写缓存中的脏数据回写完成后才可以进行读,要么将写缓存复制到读缓存,然后再进行读缓存。(3)在最差的情况下,同一份数据在缓存中可能会有两份,浪费了内存资源。
技术实现思路
本专利技术提供一种,通过控制读缓存和写缓存的大小,自适应地调节读写缓存的比例。根据上述目的,本专利技术提供一种,其特征在于,所述方法包括:将缓存按设定的大小划分成多个块,并设置成每个缓存节点为一个块;使用红黑树对所述每个缓存节点进行索引;在写入或读取缓存时,找到对应的缓存节点,然后在所述缓存节点上进行相应的写入或读取;其中,在进行写入或读取缓存时,统计所述读写缓存的使用情况及读写比例,对所述写入或读取的缓存比例进行调节。其中,所述步骤S3具体包括:当写入缓存时,找到对应的缓存节点,然后将数据填充到所找到的缓存节点上;当读取缓存时,找到对应的缓存节点,然后在找到的缓存节点上查找缓存。其中,所述步骤S3还包括:在读取缓存时,如果没有读取到完整的数据,则读取所述缓存对应的外存,并将读取的数据存入到所述缓存。其中,对所述写入或读取的缓存比例进行调节的过程具体包括:统计每个磁盘阵列组RAID的读写缓存的使用情况以及读写输入输出1的比例,如果读1比例升高,则升高读缓冲在该RAID缓存的占比,反之升高写缓存在该RAID缓存中的占比。其中,所述步骤S3还包括:当所述缓存的空间不足时,释放热度最低的非脏缓存,将所述非脏缓存释放到指定的占比位置。其中,所述步骤S3还包括:在写缓存使用超过一定百分比时或写缓存余量不足时,则放缓或停止执行写1/0,启动回写动作,待清空掉足够的脏数据之后再启动写I/O。其中,根据缓存的最后一次操作判定所述缓存为读缓冲还是写缓存,如果最后一次是读取,则为读缓存,否则为写缓存。 其中,所述方法还包括:使用双控I/O锁对缓存的访问进行保护;所述对缓存的访问包括读取、写入和回与ο根据本专利技术的另一个方面,提供一种自适应混合读/写缓存的系统,所述系统包括:缓冲块划分模块,用于将所述存储器的缓存按设定的大小划分成多个块;索引模块,用于使用红黑树对所述每个缓存节点进行索引;缓存读/写模块,用于进行缓存读写。其中,所述缓存读/写模块包括:读缓存单元,用于读取缓存;写缓存单元,用于写入缓存;缓存占比调节单元,用于以磁盘阵列组RAID的形式统计读写缓存的使用情况以及读写输入输出1的比例并进行调节;缓存释放单元,用于在所述存储器空间不足时释放所述缓存;回写单元,用于在写缓存超过设定比例或写缓存余量不足时进行回写动作。本专利技术的及系统,通过控制读缓存的大小和写缓存的大小,很容易保证缓存的读写一致性,并可以自适应地调节读写缓存的比例,从而可以对缓存做到内存资源的合理利用,同时在读取时查找速度快,并且不需要二次遍历。【附图说明】通过参考附图会更加清楚的理解本专利技术的特征和优点,附图是示意性的而不应理解为对本专利技术进行任何限制,在附图中:图1示出了本专利技术的的流程图。图2示出了本专利技术的自适应混合读/写缓存的系统的结构框图。图3示出了本专利技术的自适应混合读/写缓存的系统的缓存读/写模块的结构框图。【具体实施方式】下面将结合附图对本专利技术的实施例进行详细描述。图1示出了本专利技术的的流程图。参照图1,本专利技术的包括步骤:S1、将缓存按设定的大小划分成多个块,并设置成每个缓存节点为一个块;从而将缓存的每个扇区的地址转换为块地址。S2、使用红黑树对所述每个缓存节点进行索引,从而可以加快查找速度。S3、在写入或读取缓存时,找到对应的缓存节点,然后在所述缓存节点上进行相应的写入或读取;具体地,当写入缓存时,找到对应的缓存节点,然后将数据填充到所找到的缓存节点上;当读取缓存时,找到对应的缓存节点,然后在找到的缓存节点上查找缓存。读缓冲时查找到的缓存可能是上一次读取出来的读缓冲,也可能是之前被写入的写缓存。如果没有读取到完整的数据,则读取所述缓存对应的外存,并将读取的数据存入到所述缓存。另外,在进行写入或读取缓存时,统计所述读写缓存的使用情况及读写比例,对所述写入或读取的缓存比例进行调节。其过程为:统计每个磁盘阵列组RAID的读写缓存的使用情况以及读写输入输出1的比例,如果读1比例当前第1页1 2 本文档来自技高网...

【技术保护点】
一种自适应混合读/写缓存的方法,其特征在于,所述方法包括:将缓存按设定的大小划分成多个块,并设置成每个缓存节点为一个块;使用红黑树对所述每个缓存节点进行索引;在写入或读取缓存时,找到对应的缓存节点,然后在所述缓存节点上进行相应的写入或读取;其中,在进行写入或读取缓存时,统计所述读写缓存的使用情况及读写比例,对所述写入或读取的缓存比例进行调节。

【技术特征摘要】

【专利技术属性】
技术研发人员:李浩然
申请(专利权)人:北京神州云科数据技术有限公司
类型:发明
国别省市:北京;11

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

1