System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 缓存数据管理方法、装置和设备制造方法及图纸_技高网

缓存数据管理方法、装置和设备制造方法及图纸

技术编号:40545938 阅读:3 留言:0更新日期:2024-03-05 19:03
本发明专利技术提供一种缓存数据管理方法、装置和设备,用于缓存盘的索引占用内存过多的技术问题。本发明专利技术对内存中用于管理闪存数据块的索引数据结构进行改进,通过位图方式使用一个管理单元成组管理多个闪存数据块并相应地改进读/写流程以达到降低缓存加速实例scache所创建的数据索引占用内存空间的发明专利技术目的。

【技术实现步骤摘要】

本专利技术涉及计算及存储,尤其涉及一种缓存数据管理方法、装置和设备


技术介绍

1、在闪存与磁盘存储系统混合使用的环境(简称混闪存储环境)中,使用闪存介质的固态硬盘(solid state disk,ssd)为磁介质的硬盘(hard disk drive,hdd)做缓存,其向上提供块(block)读/写接口,向下与hdd交换数据,以提升随机输入/输出(i/o)性能。

2、通常,将一个ssd划分为多个分区,每个分区与一个hdd配对创建一个缓存加速实例即scache实例,基于scache实例再创建对象存储设备(object storage device,osd)实例。

3、ssd盘通常包括头部、元数据区域和闪存数据块区域,头部(header)用于记录全局信息;元数据区域用于记录闪存元数据,包括若干元数据块(meta block,metablk);闪存数据块区域用于缓存磁盘数据,包括多个闪存数据块(data block,datablk)。一个元数据块中包括若干闪存元数据项(flash_meta),每个flash_meta对应一个datablk闪存数据块。

4、现有技术中,内存中的scache实例会创建缓存数据索引用于加速数据访问,索引中的管理单元(unit)与ssd上的闪存数据块(datablk)具有一一对应关系,需按比例配置,在配置的ssd空间很大的情况下,相应地由管理单元组成的索引也会占用大量内存空间,导致内存资源紧张或不足。

5、例如,假设每个管理单元大小为24字节即24b,一个闪存数据块大小为4kb,则管理单元与闪存数据块的比例关系约为6/1000(计算方法sizeof(unit)/sizeof(data block)=24b/4kb),即若分配1tb的闪存空间,内存中管理单元就需占用6gb的内存空间。随着缓存盘容量越大,内存中分配给管理单元的空间就越多,这就会导致内存资源的大量消耗。


技术实现思路

1、有鉴于此,本专利技术提供一种缓存数据管理方法、装置和设备,用于缓存盘的索引占用内存过多的技术问题。

2、基于本专利技术实施例的一方面,本专利技术提供一种缓存数据管理方法,该方法包括:

3、缓存加速实例在内存中创建用于加速数据访问的索引,所述索引通过管理单元关联位于缓存盘中的闪存数据块,所述闪存数据块用于缓存磁盘中的数据块;其中,一个管理单元关联多个连续的闪存数据块,在管理单元中通过第一标识字段标识闪存数据块是否缓存有磁盘数据,通过第二标识字段标识闪存数据块是否正在被其它i/o使用。

4、进一步地,所述方法还包括:在处理读请求时,根据待读取数据的地址范围及第一标识字段判断待读取数据块是否缓存在闪存数据块中,在判定缓存在闪存数据块中的情况下,根据第二标识字段判断对应的闪存数据块是否被其它i/o使用,若判定未被其它i/o使用,则直接从对应的闪存数据块中读取待读取的数据块,并在读取期间将第二标识字段中所述对应的闪存数据块对应的标志位置位。

5、进一步地,所述方法还包括:在处理写请求时,根据待写入数据的地址范围及第一标识字段判断待写入数据是否缓存在闪存数据块中,在判定缓存在闪存数据块中的情况下,根据第二标识字段判断对应的闪存数据块是否被其它i/o使用,若判定未被其它i/o使用,则将待写入数据双写到对应的闪存数据块中及磁盘当中,并在写入期间将第二标识字段中所述对应的闪存数据块对应的标志位置位。

6、进一步地,在处理读请求或写请求时,若根据第二标识字段判定对应的闪存数据块被其它i/o使用,则等待其它i/o不再使用所述对应的闪存数据块时,再进行读取或写入操作。

7、进一步地,若根据待写入数据的地址范围及第一标识字段判定待写入数据块未缓存在闪存数据块中,则在索引中创建新的管理单元,将待写入数据双写到新创建的管理单元关联的闪存数据块中及磁盘当中,并在写入期间将第二标识字段中闪存数据块对应的标志位置位,及在写入完成后将闪存数据块在第一标识字段中对应的标志位置位。

8、进一步地,在处理写请求时,若判定待写入数据量大于预设的透写阈值,则将待写入数据块透写到磁盘当中,若根据待写入地址范围判定被覆盖数据块已缓存到闪存数据块中,则将这些被覆盖闪存数据块在第一标识字段和第二标识字段中对应的标志位清除。

9、进一步地,在处理读请求时,在执行所述根据待读取数据的地址范围及第一标识字段判断待读取数据块是否缓存在闪存数据块中之前还包括:

10、根据待读取数据的地址范围判断读取的数据量是否超过透读水位线,若超过,则直接从磁盘直接读取待读取数据,若未超过,则执行所述根据待读取数据的地址范围及第一标识字段判断待读取数据块是否缓存在闪存数据块中的步骤。

11、进一步地,所述第一标识字段为有效缓存位图字段,第二标识字段为互斥使用位图字段,位图字段的每一个二进制位对应一个闪存数据块。

12、基于本专利技术实施例的另一方面,本专利技术还提供一种缓存数据管理装置,该装置应用于运行缓存加速实例的设备当中,该装置包括:

13、索引创建模块,用于缓存加速实例在内存中创建用于加速数据访问的索引,所述索引通过管理单元关联位于缓存盘中的闪存数据块,所述闪存数据块用于缓存磁盘中的数据块;其中,一个管理单元关联多个连续的闪存数据块,在管理单元中通过第一标识字段标识闪存数据块是否缓存有磁盘数据,通过第二标识字段标识闪存数据块是否正在被其它i/o使用。

14、进一步地,所述装置还包括:

15、读请求处理模,用于在处理读请求时,根据待读取数据的地址范围及第一标识字段判断待读取数据块是否缓存在闪存数据块中,在判定缓存在闪存数据块中的情况下,根据第二标识字段判断对应的闪存数据块是否被其它i/o使用,若判定未被其它i/o使用,则直接从对应的闪存数据块中读取待读取的数据块,并在读取期间将第二标识字段中所述对应的闪存数据块对应的标志位置位;

16、写请求处理模块,用于在处理写请求时,根据待写入数据的地址范围及第一标识字段判断待写入数据是否缓存在闪存数据块中,在判定缓存在闪存数据块中的情况下,根据第二标识字段判断对应的闪存数据块是否被其它i/o使用,若判定未被其它i/o使用,则将待写入数据双写到对应的闪存数据块中及磁盘当中,并在写入期间将第二标识字段中所述对应的闪存数据块对应的标志位置位。

17、本专利技术提供的装置可以以软件、硬件或软硬结合的方式实现。当以软件模块方式实现时,该软件模块的程序代码被加载到设备的存储介质中,由处理器读取存储介质中的程序代码并执行。

本文档来自技高网...

【技术保护点】

1.一种缓存数据管理方法,其特征在于,该方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

4.根据权利要求2或3所述的方法,其特征在于,

5.根据权利要求3所述的方法,其特征在于,

6.根据权利要求3所述的方法,其特征在于,

7.根据权利要求2所述的方法,其特征在于,

8.根据权利要求1所述的方法,其特征在于,

9.一种缓存数据管理装置,其特征在于,该装置应用于运行缓存加速实例的设备当中,该装置包括:

10.根据权利要求9所述的装置,其特征在于,所述装置还包括:

11.一种电子设备,其特征在于,包括处理器、通信接口、存储介质和通信总线,其中,处理器、通信接口、存储介质通过通信总线完成相互间的通信;

【技术特征摘要】

1.一种缓存数据管理方法,其特征在于,该方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

4.根据权利要求2或3所述的方法,其特征在于,

5.根据权利要求3所述的方法,其特征在于,

6.根据权利要求3所述的方法,其特征在于,

7.根据权利要求2所述的...

【专利技术属性】
技术研发人员:向春艳
申请(专利权)人:新华三云计算技术有限公司
类型:发明
国别省市:

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

1