一种基于Protocol Buffer的镜像缓存方法技术

技术编号:24681831 阅读:15 留言:0更新日期:2020-06-27 07:35
本申请公开了一种应用于主节点的基于Protocol Buffer的镜像缓存方法,能够通过Protocol Buffer将全闪产品中批量化的小块IO聚合为一个大的IO,并向从节点发送相应的镜像请求,以实现镜像缓存。因此,能够大幅度减少主节点和从节点之间的IO交互次数和任务调度次数,显著提升存储系统性能。此外,本申请还提供了一种应用于主节点的基于Protocol Buffer的镜像缓存装置、一种应用于从节点的基于Protocol Buffer的镜像缓存方法及装置、全闪存储设备及全闪存储系统,其技术效果与上述方法的技术效果相对应。

A method of image caching based on protocol buffer

【技术实现步骤摘要】
一种基于ProtocolBuffer的镜像缓存方法
本申请涉及计算机
,特别涉及一种应用于主节点的基于ProtocolBuffer的镜像缓存方法及装置、一种应用于从节点的基于ProtocolBuffer的镜像缓存方法及装置、一种全闪存储设备及全闪存储系统。
技术介绍
传统的存储系统中以IO为单位进行缓存镜像。例如,在典型的双控场景中,一个节点收到N个IO请求,就向对端节点发送N个镜像请求。在新兴的全闪产品中,由于采用了日志式的落盘方式,引入了如下的变化:元数据IO都是小块IO(如512字节);小块IO的数量特别大;大量小块IO的数量具有爆发性,对其他模块造成很大的冲击性。可见,在全闪产品中,传统的镜像缓存方案会导致节点之间频繁进行交互和任务调度,严重影响存储系统性能。
技术实现思路
本申请的目的是提供一种应用于主节点的基于ProtocolBuffer的镜像缓存方法及装置、一种应用于从节点的基于ProtocolBuffer的镜像缓存方法及装置、一种全闪存储设备及全闪存储系统,用以解决在全闪产品中,传统的镜像缓存方案会导致节点间频繁进行交互和任务调度,降低了存储系统性能的问题。其具体方案如下:第一方面,本申请提供了一种基于ProtocolBuffer的镜像缓存方法,应用于主节点,包括:接收IO请求;确定满足预设聚合条件的IO请求集合;对所述IO请求集合中各个IO请求进行结构化处理和聚合处理,得到结构化数据;对所述结构化数据进行ProtocolBuffer序列化,得到二进制数据;根据所述二进制数据生成单个镜像请求,并发送至从节点,以实现镜像缓存。优选的,所述确定满足预设聚合条件的IO请求集合,包括:判断当前接收到的IO请求的数量是否达到预设数量阈值;若达到,将当前接收到的IO请求作为IO请求集合。优选的,在所述判断当前接收到的IO请求的数量是否达到预设数量阈值之后,还包括:若当前接收到的IO请求的数量未达到预设数量阈值,则判断未接收到新的IO请求的时间是否超过预设时间阈值;若超过,则将当前接收到的IO请求作为IO请求集合。优选的,所述对所述IO请求集合中各个IO请求进行结构化处理和聚合处理,得到结构化数据,包括:将所述IO请求集合中各个所述IO请求的数据落盘位置和数据载荷存储至结构体数组。优选的,在所述将所述IO请求集合中各个所述IO请求的数据落盘位置和数据载荷存储至结构体数组之前,还包括:创建结构体数组,其中所述结构体数组包括多个结构体,所述结构体包括第一成员和第二成员,所述第一成员用于存储所述IO请求的数据落盘位置,所述第二成员用于存储所述IO请求的数据载荷。优选的,所述IO请求为元数据IO请求。第二方面,本申请提供了一种基于ProtocolBuffer的镜像缓存装置,应用于主节点,包括:IO请求接收模块:用于接收IO请求;集合确定模块:用于确定满足预设聚合条件的IO请求集合;IO请求聚合模块:用于对所述IO请求集合中各个IO请求进行结构化处理和聚合处理,得到结构化数据;序列化模块:用于对对所述结构化数据进行ProtocolBuffer序列化,得到二进制数据;镜像请求发送模块:用于根据所述二进制数据生成单个镜像请求,并发送至从节点,以实现镜像缓存。第三方面,本申请提供了一种基于ProtocolBuffer的镜像缓存方法,应用于从节点,包括:接收主节点发送的单个镜像请求;对所述镜像请求所携带的二进制数据进行ProtocolBuffer反序列化,得到结构化数据,所述结构化数据包括满足预设聚合条件的多个IO请求的镜像数据;将所述镜像数据存储至本地缓存。优选的,所述对所述镜像请求所携带的二进制数据进行ProtocolBuffer反序列化,得到结构化数据,所述结构化数据包括满足预设聚合条件的多个IO请求的镜像数据,包括:对所述镜像请求所携带的二进制数据进行ProtocolBuffer反序列化,得到结构体数组,所述结构体数组包括满足预设聚合条件的多个IO请求的数据落盘位置和数据载荷。优选的,所述将所述镜像数据存储至本地缓存,包括:根据所述结构体数组中的数据落盘位置将相应的数据载荷合并至本地缓存中。第四方面,本申请提供了一种基于ProtocolBuffer的镜像缓存装置,应用于从节点,包括:镜像请求接收模块:用于接收主节点发送的单个镜像请求;反序列化模块:用于对所述镜像请求所携带的二进制数据进行ProtocolBuffer反序列化,得到结构化数据,所述结构化数据包括满足预设聚合条件的多个IO请求的镜像数据;缓存模块:用于将所述镜像数据存储至本地缓存。第五方面,本申请提供了一种全闪存储设备,包括:存储器:用于存储计算机程序;处理器:用于执行所述计算机程序,以实现如上所述的应用于主节点的基于ProtocolBuffer的镜像缓存方法的步骤,或者,实现如上所述的应用于从节点的基于ProtocolBuffer的镜像缓存方法的步骤。第六方面,本申请提供了一种全闪存储系统,包括如上所述的应用于主节点的基于ProtocolBuffer的镜像缓存装置,还包括如上所述的应用于从节点的基于ProtocolBuffer的镜像缓存装置。本申请所提供的一种应用于主节点的基于ProtocolBuffer的镜像缓存方法,包括:接收IO请求;确定满足预设聚合条件的IO请求集合;对IO请求集合中各个IO请求进行结构化处理和聚合处理,得到结构化数据;对结构化数据进行ProtocolBuffer序列化,得到二进制数据;根据二进制数据生成单个镜像请求,并发送至从节点,以实现镜像缓存。可见,该方法能够通过ProtocolBuffer将全闪产品中批量化的小块IO聚合为一个大的IO,并向从节点发送相应的镜像请求,以实现镜像缓存。因此,能够大幅度减少主节点和从节点之间的IO交互次数和任务调度次数,显著提升存储系统性能。此外,本申请还提供了一种应用于主节点的基于ProtocolBuffer的镜像缓存装置、一种应用于从节点的基于ProtocolBuffer的镜像缓存方法及装置、全闪存储设备及全闪存储系统,其技术效果与上述方法的技术效果相对应,这里不再赘述。附图说明为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请所提供的一种应用于主节点的基于ProtocolBuffer的镜像缓存方法实施例一的实现流程图;图2为本申请所提供的一种应用于主节点的基于ProtocolBuffer的镜像缓存方法实施例二的实现本文档来自技高网...

【技术保护点】
1.一种基于Protocol Buffer的镜像缓存方法,其特征在于,应用于主节点,包括:/n接收IO请求;/n确定满足预设聚合条件的IO请求集合;/n对所述IO请求集合中各个IO请求进行结构化处理和聚合处理,得到结构化数据;/n对所述结构化数据进行Protocol Buffer序列化,得到二进制数据;/n根据所述二进制数据生成单个镜像请求,并发送至从节点,以实现镜像缓存。/n

【技术特征摘要】
1.一种基于ProtocolBuffer的镜像缓存方法,其特征在于,应用于主节点,包括:
接收IO请求;
确定满足预设聚合条件的IO请求集合;
对所述IO请求集合中各个IO请求进行结构化处理和聚合处理,得到结构化数据;
对所述结构化数据进行ProtocolBuffer序列化,得到二进制数据;
根据所述二进制数据生成单个镜像请求,并发送至从节点,以实现镜像缓存。


2.如权利要求1所述的方法,其特征在于,所述确定满足预设聚合条件的IO请求集合,包括:
判断当前接收到的IO请求的数量是否达到预设数量阈值;
若达到,将当前接收到的IO请求作为IO请求集合。


3.如权利要求2所述的方法,其特征在于,在所述判断当前接收到的IO请求的数量是否达到预设数量阈值之后,还包括:
若当前接收到的IO请求的数量未达到预设数量阈值,则判断未接收到新的IO请求的时间是否超过预设时间阈值;
若超过,则将当前接收到的IO请求作为IO请求集合。


4.如权利要求1所述的方法,其特征在于,所述对所述IO请求集合中各个IO请求进行结构化处理和聚合处理,得到结构化数据,包括:
将所述IO请求集合中各个所述IO请求的数据落盘位置和数据载荷存储至结构体数组。


5.如权利要求4所述的方法,其特征在于,在所述将所述IO请求集合中各个所述IO请求的数据落盘位置和数据载荷存储至结构体数组之前,还包括:
创建结构体数组,其中所述结构体数组包括多个结构体,所述结构体包括第一成员和第二成员,所述第一成员用于存储所述IO请求的数据落盘位置,所述第二成员用于存储所述IO请求的数据载荷。


6.如权利要求1-5任意一项所述的方法,其特征在于,所述IO请求为元数据IO请求。


7.一种基于ProtocolBuffer的镜像缓存装置,其特征在于,应用于主节点,包括:
IO请求接收模块:用于接收IO请求;
集合确定模块:用于确定满足预设聚合条件的IO请求集合;
IO请求聚合模块:用于对所述IO请求集合中各个IO请求进行结构化处理和聚合处理,得到结构化数据;
序列化模块:用于对对所述结构化数据进行ProtocolBuffer序列化,得到二进制...

【专利技术属性】
技术研发人员:刘志魁
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

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

1