双层缓存减少镜像数据传输量的方法、装置、设备、介质制造方法及图纸

技术编号:35839976 阅读:15 留言:0更新日期:2022-12-03 14:12
本申请涉及一种双层缓存减少镜像数据传输量的方法、装置、设备、介质。所述方法包括:当第一节点接收到IO请求后,将所述IO请求写入到第一上层缓存空间;所述第一节点根据所述IO请求,将对应所述IO请求的第一缓存数据写入所述第一下层缓存空间,并为所述第一缓存数据生成第一索引信息;将IO请求的镜像数据写入到所述第二节点的第二上层缓存空间;将第一索引信息的镜像数据写入到所述第二节点的第二下层缓存空间。采用本方法能够在第二节点的下层缓存空间镜像第一节点的下层缓存空间内的缓存数据时,不传输内存的内容,而是只传送内存编号,从而能够减少镜像数据传输量,提高处理IO请求的响应速度。的响应速度。的响应速度。

【技术实现步骤摘要】
双层缓存减少镜像数据传输量的方法、装置、设备、介质


[0001]本申请涉及数据传输
,特别是涉及一种双层缓存减少镜像数据传输量的方法、装置、设备、介质。

技术介绍

[0002]在现有的设计中,为了提高系统性能,通常需要采用双控存储设备来提高处理IO(输入输出)请求的响应速度,进而提高存储系统的性能。
[0003]对于双控制器系统,一般采用缓存镜像技术作为保护缓存数据的手段。其基本原理是,两个控制器的缓存空间中均保存一致的脏数据副本,当任一控制器发生故障(其缓存空间内的数据不可用),另一控制器仍能提供对应的数据访问。然而,在处理接收的IO请求时,存在两个控制器间有很多数据需要传输,以实现在两个控制器对应的缓存空间内存储相同的数据,若双控存储设备的非透明桥(NTB)固定,由于两个控制器相对应的缓存空间都需要镜像数据,就会出现数据传输排队等待通过非透明桥(NTB)的情形,造成数据传输缓慢,会成为整个系统的性能瓶颈。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种双层缓存减少镜像数据传输量的方法、装置、设备、介质,能够减少镜像数据传输量,提高处理IO(输入输出)请求的响应速度,来提升整个系统的性能。
[0005]一方面,提供一种双层缓存减少镜像数据传输量的方法,所述方法包括:将第一节点对应的缓存空间划分为第一上层缓存空间和第一下层缓存空间,将第二节点对应的缓存空间划分为第二上层缓存空间和第二下层缓存空间;当所述第一节点接收到IO请求后,将所述IO请求写入到所述第一上层缓存空间;所述第一节点根据所述IO请求,将对应所述IO请求的第一缓存数据写入所述第一下层缓存空间,并为所述第一缓存数据生成第一索引信息,所第一索引信息指向所述第一缓存数据;将所述第一节点的第一上层缓存空间内的IO请求的镜像数据写入到所述第二节点的第二上层缓存空间;将所述第一节点的第一下层缓存空间内的第一索引信息的镜像数据写入到所述第二节点的第二下层缓存空间。
[0006]在其中一个实施例中,设置所述第一上层缓存空间和所述第二上层缓存空间大小相同,也就是空间大小互为镜像,在所述第一上层缓存空间和所述第二上层缓存空间内用于写入IO请求;设置所述第一下层缓存空间和所述第二下层缓存空间大小相同,也就是空间大小互为镜像,在所述第一下层缓存空间和所述第二下层缓存空间内用于写入对应IO请求的缓存数据以及指向该缓存数据的索引信息。
[0007]在其中一个实施例中,所述IO请求包括写请求和读请求;当所述IO请求为写请求
时,所述第一缓存数据为写入数据;当所述IO请求为读请求时,所述第一缓存数据为读取数据。
[0008]在其中一个实施例中,在将所述第一节点的第一下层缓存空间内的第一索引信息的镜像数据写入到所述第二节点的第二下层缓存空间步骤之后,还包括:当所述第二节点接收到IO请求后,所述第二节点根据所述第一索引信息查找到存储于所述第一节点的第一下层缓存空间内的第一缓存数据。
[0009]在其中一个实施例中,所述第二节点根据所述第一索引信息查找到存储于所述第一节点的第一下层缓存空间内的第一缓存数据步骤包括:所述第二节点接收请求端发送的IO请求,所述IO请求为读请求时包括待读数据标识;所述第二节点根据所述读请求的待读数据标识从所述第一索引信息中查找待读数据的索引信息;所述第二节点将所述待读数据的索引信息所指向的数据发送给所述请求端。
[0010]在其中一个实施例中,所述第一节点为所述第一缓存数据生成第一索引信息时,包括:设置所述第一索引信息包含指向所述第一缓存数据存储位置的内存编号;所述第一节点在所述第一下层缓存空间中的所述第一缓存数据的起始位置之前插入所述第一索引信息;所述第一节点将所述内存编号添加至第一索引表中。
[0011]在其中一个实施例中,在所述第一节点的第一下层缓存空间内,以固定字节的内存为单位对所述第一缓存数据进行存储,每个固定字节的内存对应一个整数数值,对所述第一缓存数据存储位置的内存进行编号形成所述内存编号。
[0012]在其中一个实施例中,在将所述第一节点的第一上层缓存空间内的IO请求的镜像数据写入到所述第二节点的第二上层缓存空间时,按照固定字节的内存进行镜像,每次镜像传输固定字节长度的数据。
[0013]在其中一个实施例中,所述第一节点为所述第一缓存数据生成第一索引信息时,还包括:设置所述第一索引信息包含所述第一缓存数据的数据类型标识;当所述IO请求为写请求时,所述数据类型标识为写入数据标识;当所述IO请求为读请求时,所述数据类型标识为读取数据标识;所述第一节点将所述数据类型标识添加至第一索引表中。
[0014]在其中一个实施例中,在将所述第一节点的第一下层缓存空间内的第一索引信息的镜像数据写入到所述第二节点的第二下层缓存空间步骤之后,还包括:当所述第一节点接收到清除缓存记录命令时,所述第一节点清除所述第一缓存数据中标记有读取数据标识的缓存数据;当所述第二节点接收到清除缓存记录命令时,所述第二节点清除所述第一索引信息中不能指向第一缓存数据的无效数据。
[0015]在其中一个实施例中,在将所述第一节点的第一下层缓存空间内的第一索引信息的镜像数据写入到所述第二节点的第二下层缓存空间步骤之后,还包括:
通过读取所述第二节点的第二下层缓存空间中的第一索引信息,验证是否能够查找到所述第一节点的第一下层缓存空间内的第一缓存数据。
[0016]在其中一个实施例中,所述双层缓存减少镜像数据传输量的方法还包括:将第三节点对应的缓存空间划分为第三上层缓存空间和第三下层缓存空间;当所述第一节点接收到IO请求后,将所述第一节点的第一上层缓存空间内的IO请求的镜像数据写入到所述第三节点的第三上层缓存空间;将所述第一节点的第一下层缓存空间内的第一索引信息的镜像数据写入到所述第三节点的第三下层缓存空间;当所述第二节点发生故障时,对所述第二节点清除缓存记录,将所述第三节点的第一索引信息与所述第一节点的所述第一缓存数据保持同步。
[0017]在其中一个实施例中,将第三节点对应的缓存空间划分为第三上层缓存空间和第三下层缓存空间时,还设置所述第三上层缓存空间和所述第一上层缓存空间大小相同,设置所述第三下层缓存空间和所述第一下层缓存空间大小相同。
[0018]在其中一个实施例中,在将所述第一节点的第一下层缓存空间内的第一索引信息的镜像数据写入到所述第三节点的第三下层缓存空间步骤之后,还包括:通过读取所述第三节点的第三下层缓存空间中的第一索引信息,验证是否能够查找到所述第一节点的第一下层缓存空间内的第一缓存数据。
[0019]另一方面,提供了一种双层缓存减少镜像数据传输量的装置,所述装置包括:缓存空间划分模块,用于将第一节点对应的缓存空间划分为第一上层缓存空间和第一下层缓存空间,将第二节点对应的缓存空间划分为第二上层缓存空间和第二下层缓存空间;写入IO请求模块,用于当所述第一节点接收到IO请求后,将所述IO请求写入到所述第一上层缓存空间;数据缓存处理模块本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种双层缓存减少镜像数据传输量的方法,其特征在于,所述方法包括步骤:将第一节点对应的缓存空间划分为第一上层缓存空间和第一下层缓存空间,将第二节点对应的缓存空间划分为第二上层缓存空间和第二下层缓存空间;当所述第一节点接收到IO请求后,将所述IO请求写入到所述第一上层缓存空间;所述第一节点根据所述IO请求,将对应所述IO请求的第一缓存数据写入所述第一下层缓存空间,并为所述第一缓存数据生成第一索引信息,所第一索引信息指向所述第一缓存数据;将所述第一节点的第一上层缓存空间内的IO请求的镜像数据写入到所述第二节点的第二上层缓存空间;将所述第一节点的第一下层缓存空间内的第一索引信息的镜像数据写入到所述第二节点的第二下层缓存空间。2.根据权利要求1所述的双层缓存减少镜像数据传输量的方法,其特征在于,将第一节点对应的缓存空间划分为第一上层缓存空间和第一下层缓存空间,将第二节点对应的缓存空间划分为第二上层缓存空间和第二下层缓存空间时,还设置所述第一上层缓存空间和所述第二上层缓存空间大小相同,设置所述第一下层缓存空间和所述第二下层缓存空间大小相同。3.根据权利要求1所述的双层缓存减少镜像数据传输量的方法,其特征在于,所述IO请求包括写请求和读请求;当所述IO请求为写请求时,所述第一缓存数据为写入数据;当所述IO请求为读请求时,所述第一缓存数据为读取数据。4.根据权利要求3所述的双层缓存减少镜像数据传输量的方法,其特征在于,在将所述第一节点的第一下层缓存空间内的第一索引信息的镜像数据写入到所述第二节点的第二下层缓存空间步骤之后,还包括:当所述第二节点接收到IO请求后,所述第二节点根据所述第一索引信息查找到存储于所述第一节点的第一下层缓存空间内的第一缓存数据。5.根据权利要求4所述的双层缓存减少镜像数据传输量的方法,其特征在于,所述第二节点根据所述第一索引信息查找到存储于所述第一节点的第一下层缓存空间内的第一缓存数据步骤包括:所述第二节点接收请求端发送的IO请求,所述IO请求为读请求时包括待读数据标识;所述第二节点根据所述读请求的待读数据标识从所述第一索引信息中查找待读数据的索引信息;所述第二节点将所述待读数据的索引信息所指向的数据发送给所述请求端。6.根据权利要求3所述的双层缓存减少镜像数据传输量的方法,其特征在于,所述第一节点为所述第一缓存数据生成第一索引信息时,包括:设置所述第一索引信息包含指向所述第一缓存数据存储位置的内存编号;所述第一节点在所述第一下层缓存空间中的所述第一缓存数据的起始位置之前插入所述第一索引信息;所述第一节点将所述内存编号添加至第一索引表中。7.根据权利要求6所述的双层缓存减少镜像数据传输量的方法,其特征在于,在所述第一节点的第一下层缓存空间内,以固定字节的内存为单位对所述第一缓存数据进行存储,
每个固定字节的内存对应一个整数数值,对所述第一缓存数据存储位置的内存进行编号形成所述内存编号。8.根据权利要求7所述的双层缓存减少镜像数据传输量的方法,其特征在于,在将所述第一节点的第一上层缓存空间内的IO请求的镜像数据写入到所述第二节点的第二上层缓存空间时,按照固定字节的内存进行镜像,每次镜像传输固定字节长度的数据。9.根据权利要求6所述的双层缓存减少镜像数据传输量的方法,其特征在于,所述第一节点为所述第一缓存数据生成第一索引信息时,还包括:设置所述第一索引信息包含所述第一缓存数据的数据类型标识;当所述IO请求为写请求时,所述数据类型标识为写入数据标识;当所述IO请求为读请求时,所述数据类型标识为读取数据标识;所述第一节点将所述数据类型标识添加至第一索引表中。10.根据权利要求9所述的双层缓存减少镜像数据传输量的方法,其特征在于,在将所述第一节点的第一下层缓存空间内的第一索引信息的镜像数据写入到所述第二节点的第二下层缓存空间步骤之后,还包括:当所述第一节点接收到清除缓存记录命令时,所述第一节点清除所述第一缓存数据中标记有读取数据标识的缓存数据;当所述第二节点接收到清除缓存记录命令时,所述第二节点清除所述第一索引信息中不能指向第一缓存数据的无效数据。11.根据权利要求1所述的双层缓存减少镜像数据传输量的方法,其特征在于,在将所述第一节点的第一下层缓存空间内的第一索引信息的镜像数据写入到所述第二节点的第二下层缓存空间步骤之后,还包括:通过读取所述第二节点的第二下层缓存空间中的第一索引信息,验证是否能够查找到所述第一...

【专利技术属性】
技术研发人员:孔祥斐王永刚
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1