1.本技术涉及缓存下刷技术领域,尤其涉及一种分布式存储写缓冲数据分步下刷方法、装置及介质。
背景技术:
2.分布式存储中通常利用高速设备作为写缓冲来提高系统的写性能,高速设备读写性能强,能快速读写,但容量有限,写入到高速设备的数据需要下刷到慢速设备上,之后便可以将已下刷数据从高速设备上释放,以便高速设备可以持续的接受写请求,以此提高系统性能。
3.高速设备上的缓冲数据下刷过程涉及缓冲数据自身的转移以及对应对象元数据的更新,缓冲数据需要从高速设备上读取出来,并写入到慢速设备上,同时记录数据位置信息的对象元数据也需要进行更新以便正确反映数据所在设备的位置。为保证数据的一致性,缓冲数据的下刷过程与业务写过程需要保持互斥,即同时只能有一个过程对相应数据部分进行写入。在实现缓冲数据下刷过程时,一种方式是所有下刷步骤在一个阶段中完成,由于包含慢速设备写入过程,这种方式一次下刷过程耗时长,会造成业务写阻塞。另一种方式是将下刷各步骤分散到多个阶段中完成,每个阶段分别进行互斥,这种方式避免了业务写的长时间阻塞,且能够做到业务写优先,以此提升业务处理性能。在通过分阶段分步进行下刷的实现中,一种实现方式是识别待写入的数据信息,记录对象元数据的更新信息,执行数据写入,最后将记录的对象元数据更新信息更新到对象元数据并进行持久化,这种处理方式不够直观,并且在原有的业务写流程之外又实现了一套下刷写逻辑,当业务写对象元数据发生变动时,下刷写过程也需要进行相应的调整,尤其是当对象元数据结构信息复杂时,对象元数据的更新信息记录与更新过程也会更加复杂,这种实现方式不利于软件维护。
技术实现要素:
4.为了解决上述技术问题或者至少部分地解决上述技术问题,本技术提供一种分布式存储写缓冲数据分步下刷方法、装置及介质。
5.第一方面,本技术提供一种分布式存储写缓冲数据分步下刷方法,包括:
6.s1,读取高速存储设备中所存储的数据以确定待下刷数据;
7.s2,深度复制待下刷数据的对象元数据获取临时对象元数据;
8.s3,配置可回放磁盘空间资源申请管理器为第一状态;
9.s4,利用临时对象元数据来处理待下刷数据的写过程,得到更新后的临时对象元数据和磁盘写入准备信息,所述磁盘写入准备信息包括磁盘空间信息和待下刷数据信息;
10.s5,通过异步写根据磁盘写入准备信息将待下刷数据写入对应磁盘;
11.s6,配置可回放磁盘空间资源申请管理器为第二状态;
12.s7,利用对象元数据来处理待下刷数据写过程,得到并持久化更新后的对象元数据。
13.更进一步地,配置待下刷数据的写过程通过磁盘申请请求向预设的可回放磁盘空间资源申请管理器申请磁盘空间。
14.更进一步地,所述可回放磁盘空间资源申请管理器的第一状态和第二状态通过接口配置,进行待下刷数据写时通过接口配置为第一状态,进行对象元数据更新时通过接口配置为第二状态。
15.更进一步地,在第一状态下,所述可回放磁盘空间资源申请管理器响应磁盘申请请求,分配真实的磁盘空间,获取分配的磁盘空间的磁盘空间信息,将磁盘空间信息与对应的磁盘申请请求记录;
16.在第二状态下,所述可回放磁盘空间资源管理器响应磁盘申请请求,获取待下刷数据所在磁盘空间的磁盘空间信息,利用第一状态下所记录的磁盘申请请求中的参数对待下刷数据所在磁盘空间的磁盘空间信息校验检查,并反馈第一状态下的磁盘空间信息。
17.更进一步地,配置s1、s2-s4、s6-s7之间为互斥过程。
18.更进一步地,互斥过程转换过程中,检测对象元数据是否改变;是则,终止分布式存储写缓冲数据分步下刷的流程。
19.更进一步地,利用对象元数据来处理待下刷数据写过程,既得到更新后的对象元数据,又得到磁盘写入准备信息,丢弃得到的磁盘写入准备消息,持久化更新后的对象元数据。
20.更进一步地,将s4中得到的磁盘写入准备信息按顺序存入队列中,异步写根据队列中所存的磁盘写入准备信息进行待下刷数据的刷写。
21.第二方面,本技术提供一种分布式存储写缓冲数据分步下刷装置,包括:处理单元、存储单元、接口单元、总线单元和供电单元,其中所述总线单元连接所述处理单元及接口单元,所述供电单元对所述处理单元、存储单元、接口单元及总线单元供电,所述存储单元存储至少一条指令,所述处理单元读取并执行所述指令实现所述的分布式存储写缓冲数据分步下刷方法。
22.第三方面,本技术提供一种实现分布式存储写缓冲数据分步下刷方法的介质,所述实现分布式存储写缓冲数据分步下刷方法的介质存储至少一条指令,读取并执行所述指令实现所述的分布式存储写缓冲数据分步下刷方法。
23.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:
24.本技术对分布式存储谢缓存数据分步下刷方法通过两次写处理过程实现。其中第一次写处理过程是利用临时对象元数据实现的,其作用是将待下刷数据从高速存储设备写到磁盘上,并未对待下刷数据的对象元数据进行更新;第二次写处理过程是通过对象元数据实现的,需要反馈第一次写处理过程中存放待下刷数据的磁盘空间的磁盘空间信息,来完成对象元数据的更新;在第二次写处理过程中不需要将待下刷数据写入磁盘。从而实现将高速存储设备中数据下刷分成可以异步的两个过程实现。
25.第一次写处理过程优先将待下刷数据写入磁盘,第二次写处理过程更新对象元数据。保证了业务写的优先,通过待下刷数据写和更新对象元数据的异步,提高了数据下刷的效率,并且降低了程序的复杂度,便于维护。
附图说明
26.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
27.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
28.图1为本技术实施例提供的第一状态下的可回放磁盘空间资源申请管理器响应由待下刷数据的写过程发出的磁盘申请请求的流程图;
29.图2为本技术实施例提供第二状态下的可回放磁盘空间资源申请管理器响应由待下刷数据的写过程发出的磁盘申请请求的流程图;
30.图3为本技术实施例提供的分布式存储写缓冲数据分步下刷方法的流程图;
31.图4为本技术实施例提供的分布式存储写缓冲数据分步下刷装置的示意图。
具体实施方式
32.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
33.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
34.实施例1
35.本技术实施例提供一种分布式存储写缓冲数据分步下刷方法。本技术对分布式存储谢缓存数据分步下刷方法通过两次写处理过程实现。其中,第一次写处理过程是利用临时对象元数据实现的,其作用是将待下刷数据从高速存储设备写到磁盘上,并未对待下刷数据的对象元数据进行更新;第二次写处理过程是通过对象元数据实现的,需要反馈第一次写处理过程中存放待下刷数据的磁盘空间的磁盘空间信息,进而通过反馈的磁盘空间信息来完成对象元数据的更新;在第二次写处理过程中不需要将待下刷数据写入磁盘。本技术实现将高速存储设备中数据下刷分成可以异步的两个过程实现。
36.在现有数据写的资源管理机制中,第二次写过程无法重复申请得到第一写处理过程中存储待下刷数据的磁盘空间,因此,为实现本方法,本技术创建了可回放磁盘空间资源申请管理器,并且配置待下刷数据的写过程向所述可回放磁盘空间资源申请管理器发送磁盘申请请求。
37.具体实施过程中,所述可回放磁盘空间资源申请管理器包括第一状态和第二状态,所述可回放磁盘空间资源申请管理器的第一状态和第二状态通过接口配置,进行待下刷数据写时通过接口配置为第一状态,进行对象元数据更新时通过接口配置为第二状态。
38.参阅图1所示,在第一状态下,所述可回放磁盘空间资源申请管理器响应由待下刷
数据的写过程发出的磁盘申请请求执行以下步骤:
39.s10,分配真实的磁盘空间,真实的磁盘空间用于存放待下刷数据;
40.s20,获取分配的磁盘空间的磁盘空间信息;
41.s30,将磁盘空间信息与对应的磁盘申请请求记录;记录过程中,按顺序记录所分配磁盘空间的磁盘空间信息,记录磁盘申请请求时,按顺序记录磁盘申请请求中的参数。
42.s40,反馈磁盘空间信息,所反馈的磁盘空间信息用于寻址磁盘空间来存放待下刷数据。
43.参阅图2所示,在第二状态下,所述可回放磁盘空间资源管理器响应由待下刷数据的写过程发出的磁盘申请请求执行以下步骤:
44.s100,获取待下刷数据所在磁盘空间的磁盘空间信息;
45.s200,利用第一状态下所记录的磁盘申请请求中的参数对待下刷数据所在磁盘空间的磁盘空间信息校验检查,校验通过则执行s300,校验未通过则提示错误并中断。
46.s300,反馈第一状态下所记录的磁盘空间信息,所反馈的磁盘空间信息用于更新对象元数据。
47.参阅图3所示,本技术所述的分布式存储写缓冲数据分步下刷方法包括:
48.s1,读取高速存储设备中所存储的数据以确定待下刷数据。
49.s2,深度复制待下刷数据的对象元数据获取临时对象元数据;深度复制为被复制的对象元数据请求了新的内存进行存储,使得修改临时对象元数据的内存数据并不会对对象元数据的内存数据造成影响。
50.s3,配置可回放磁盘空间资源申请管理器为第一状态。具体实施过程中,调用可回放磁盘空间资源申请管理器的接口进行配置。配置为第一状态后的可回放磁盘空间资源申请管理器在响应磁盘申请请求时,反馈磁盘空间信息,并记录磁盘空间信息和对应的磁盘申请请求中的参数。
51.s4,利用临时对象元数据来处理待下刷数据的写过程,得到更新后的临时对象元数据和磁盘写入准备信息,所述磁盘写入准备信息包括磁盘空间信息和待下刷数据信息,磁盘写入准备信息的磁盘空间信息来源于可回放磁盘空间资源申请管理器的反馈;本过程通过临时对象元数据来处理待下刷数据的写过程,因此,会更新临时对象元数据。
52.具体实施过程中,磁盘写入准备信息按顺序存入队列中;具体的,一种可行的所述队列可以为fifo队列,先进入到fifo队列的磁盘写入准备信息会先被异步写处理,从而实现按顺序处理磁盘写入准备信息。
53.s5,根据磁盘写入准备信息的内容,通过异步写将待下刷数据写入由磁盘空间信息寻址得到的磁盘空间内;具体实施过程中,异步写根据磁盘写入准备信息在队列中的顺序来进行相应的待下刷数据的刷写。
54.经过上述过程完成了第一次写处理的过程,在第一次写处理过程中,高速存储设备中的待下刷数据会被写入到磁盘空间里,并更新临时对象元数据。
55.s6,配置可回放磁盘空间资源申请管理器为第二状态;具体的,具体实施过程中,调用可回放磁盘空间资源申请管理器的接口进行配置。配置为第二状态后的可回放磁盘空间资源申请管理器在响应磁盘申请请求时,获取待下刷数据所在磁盘空间的磁盘空间信息;利用第一状态下所记录的磁盘申请请求中的参数对待下刷数据所在磁盘空间的磁盘空
间信息校验检查,校验通过则反馈第一状态下所记录的磁盘空间信息。
56.s7,利用对象元数据来处理待下刷数据写过程,得到并持久化更新后的对象元数据。具体实施过程中,该过程得到更新后的对象元数据和磁盘写入准备信息。由于待下刷数据的写过程在第一次写处理中实现,因此,丢弃所得到的磁盘写入准备信息。
57.配置s1、s2-s4、s6-s7三个过程之间为互斥过程。具体实施过程中,通过互斥锁的方式将s1、s2-s4、s6-s7三个过程设置为互斥过程。
58.互斥过程转换过程中,检测对象元数据是否改变;是则,终止分布式存储写缓冲数据分步下刷的流程,后续的流程阶段不再执行。在分布式存储中,对象数据的操作者可能有多个且操作在相近的时间内进行,对象元数据发生改变,高速存储设备中的待下刷数据不是最新的。
59.实施例2
60.参阅图4所示,本技术实施例提供一种分布式存储写缓冲数据分步下刷装置,包括:处理单元、存储单元、接口单元、总线单元和供电单元,其中所述总线单元连接所述处理单元及接口单元,所述供电单元对所述处理单元、存储单元、接口单元及总线单元供电,所述存储单元存储至少一条指令,所述处理单元读取并执行所述指令实现所述的分布式存储写缓冲数据分步下刷方法。
61.实施例3
62.本技术实施例提供一种实现分布式存储写缓冲数据分步下刷方法的介质,所述实现分布式存储写缓冲数据分步下刷方法的介质存储至少一条指令,读取并执行所述指令实现所述的分布式存储写缓冲数据分步下刷方法。
63.本技术对分布式存储谢缓存数据分步下刷方法通过两次写处理过程实现。其中第一次写处理过程是利用临时对象元数据实现的,其作用是将待下刷数据从高速存储设备写到磁盘上,并未对待下刷数据的对象元数据进行更新;第二次写处理过程是通过对象元数据实现的,需要反馈第一次写处理过程中存放待下刷数据的磁盘空间的磁盘空间信息,来完成对象元数据的更新;在第二次写处理过程中不需要将待下刷数据写入磁盘。从而实现将高速存储设备中数据下刷分成可以异步的两个过程实现。
64.第一次写处理过程优先将待下刷数据写入磁盘,第二次写处理过程更新对象元数据。保证了业务写的优先,通过待下刷数据写和更新对象元数据的异步,提高了数据下刷的效率,并且降低了程序的复杂度,便于维护。
65.在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
66.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
67.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
68.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种分布式存储写缓冲数据分步下刷方法,其特征在于,包括:s1,读取高速存储设备中所存储的数据以确定待下刷数据;s2,深度复制待下刷数据的对象元数据获取临时对象元数据;s3,配置可回放磁盘空间资源申请管理器为第一状态;s4,利用临时对象元数据来处理待下刷数据的写过程,得到更新后的临时对象元数据和磁盘写入准备信息,所述磁盘写入准备信息包括磁盘空间信息和待下刷数据信息;s5,通过异步写根据磁盘写入准备信息将待下刷数据写入对应磁盘;s6,配置可回放磁盘空间资源申请管理器为第二状态;s7,利用对象元数据来处理待下刷数据写过程,得到并持久化更新后的对象元数据。2.根据权利要求1所述分布式存储写缓冲数据分步下刷方法,其特征在于,配置待下刷数据的写过程通过磁盘申请请求向预设的可回放磁盘空间资源申请管理器申请磁盘空间。3.根据权利要求1所述分布式存储写缓冲数据分步下刷方法,其特征在于,所述可回放磁盘空间资源申请管理器的第一状态和第二状态通过接口配置;进行待下刷数据写时,通过接口配置为第一状态,进行对象元数据更新时,通过接口配置为第二状态。4.根据权利要求1所述分布式存储写缓冲数据分步下刷方法,其特征在于,在第一状态下,所述可回放磁盘空间资源申请管理器响应磁盘申请请求,分配真实的磁盘空间,获取分配的磁盘空间的磁盘空间信息,将磁盘空间信息与对应的磁盘申请请求记录;在第二状态下,所述可回放磁盘空间资源管理器响应磁盘申请请求,获取待下刷数据所在磁盘空间的磁盘空间信息,利用第一状态下所记录的磁盘申请请求中的参数对待下刷数据所在磁盘空间的磁盘空间信息校验检查,并反馈第一状态下的磁盘空间信息。5.根据权利要求1所述分布式存储写缓冲数据分步下刷方法,其特征在于,配置s1、s2-s4、s6-s7之间为互斥过程。6.根据权利要求4所述分布式存储写缓冲数据分步下刷方法,其特征在于,互斥过程转换过程中,检测对象元数据是否改变;是则,终止分布式存储写缓冲数据分步下刷的流程。7.根据权利要求1所述分布式存储写缓冲数据分步下刷方法,其特征在于,利用对象元数据来处理待下刷数据写过程,既得到更新后的对象元数据,又得到磁盘写入准备信息,丢弃得到的磁盘写入准备消息,持久化更新后的对象元数据。8.根据权利要求1所述分布式存储写缓冲数据分步下刷方法,其特征在于,将s4中得到的磁盘写入准备信息按顺序存入队列中,异步写根据队列中所存的磁盘写入准备信息进行待下刷数据的刷写。9.一种分布式存储写缓冲数据分步下刷装置,其特征在于,包括:处理单元、存储单元、接口单元、总线单元和供电单元,其中所述总线单元连接所述处理单元及接口单元,所述供电单元对所述处理单元、存储单元、接口单元及总线单元供电,所述存储单元存储至少一条指令,所述处理单元读取并执行所述指令实现如权利要求1-8任一所述的分布式存储写缓冲数据分步下刷方法。10.一种实现分布式存储写缓冲数据分步下刷方法的介质,其特征在于,所述实现分布式存储写缓冲数据分步下刷方法的介质存储至少一条指令,读取并执行所述指令实现如权利要求1-8任一所述的分布式存储写缓冲数据分步下刷方法。
技术总结
本申请涉及分布式存储写缓冲数据分步下刷方法、装置及介质。本申请深度复制待下刷数据的对象元数据,生成临时对象元数据,利用临时对象元数据来处理待下刷数据的写过程,得到存储待下刷数据磁盘空间的磁盘空间信息,进而形成磁盘写入准备信息;之后便按磁盘写入准备信息将待下刷数据写入到慢速的磁盘上,此过程与常规手段相比并不更新对象元数据,仅写待下刷数据;完成写入后,利用对象元数据再次来处理待下刷数据的写过程,完成对象元数据的更新。实现了待下刷数据下刷过程中数据写和对象元数据更新的异步,保证了业务写的优先,提高了数据下刷的效率,且无需对对象元数据进行记录并更新,并且降低了程序的复杂度,便于维护。便于维护。便于维护。
技术研发人员:王勇
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2021.11.12
技术公布日:2022/3/8