一种数据存储方法、装置及系统与流程

专利2026-09-04  16


本技术涉及存储,尤其涉及一种数据存储方法、装置及系统。


背景技术:

1、在大数据的时代,日常生活中很多数据都是由数据源源源不断产生的,也称为无界流,比如,服务器日志数据、交易数据,对于这些无界流的处理记为流处理。

2、有状态的流处理就是用于处理这种无界流的应用程序设计模式。当程序收到一个新的事件的时候,它可以从状态存储中读取数据,或者向状态存储写入数据。状态的获取以及更新的逻辑并不复杂,但在流处理中要求数据以近乎实时的方式被处理,因此,状态的产出要保证实时性,因此对状态存储的读写性能要求比较高。然而现有流处理系统中状态存储的读写性能较低,经常会导致业务停顿较长的时间。


技术实现思路

1、本技术提供一种数据存储方法、装置及系统,用于提供一种新的状态存储方式,在有状态的流处理中对于状态具有更高的读写性能。

2、第一方面,本技术提供一种数据存储方法,该方法可由主机执行或主机内的模块执行,该主机连接至远端内存池,主机执行流处理产生数据,该数据例如包括主机中用于执行流处理的算子的状态,状态可以指算子执行流处理的中间计算结果。

3、在该方法中,主机内的获取模块接收备份指令,从本地内存中获取待备份数据(记为第一数据),第一数据包括主机执行流处理产生的数据,如状态,在获取到第一数据之后,将第一数据写入远端内存池。

4、通过上述设计,将执行流处理产生的状态存储在本地内存中,在执行备份时,从本地内存获取待备份的状态,将待备份的状态备份到远端内存池,由于都是内存操作,不需要做归并排序,不需要写磁盘,因此该状态后端具有更高的读写性能、延迟低,能够提升备份速度,且不受本地内存容量的限制。

5、在一种可能的实现方式中,从本地内存中获取待备份的第一数据之前,该方法还包括:主机内的获取模块获取待写入本地内存的所述第一数据,主机内的处理模块为第一数据分配逻辑地址,该逻辑地址与上一次写入本地内存的第二数据的逻辑地址连续,也即,本地内存中存储的数据的逻辑地址连续,可以是连续递增或连续递减,通常为连续递增。在一个示例中,第一数据和第二数据为归属于同一个算子的状态。

6、在一种可能的实现方式中,本地内存包括读写区域和只读区域,比如,以算子为粒度,将本地内存划分多个内存空间,每个算子对应的内存空间包括读写区域和只读区域,只读区域与读写区域的逻辑地址连续,如连续递增,主机包括管理信息,管理信息包括用于指示读写区域的边界地址和只读区域的边界地址的信息,如该信息中记录了读写区域的起始地址、结束地址,只读区域的起始地址,其中,读写区域的起始地址为只读区域的结束地址,或者,该信息中记录了只读区域的起始地址、只读区域的长度和读写区域的长度,或者,该信息中记录了读写区域的起始地址、只读区域的长度和读写区域的长度。其中,待备份数据为只读区域内数据量为预设值的数据。

7、该方法还包括:在获取模块获取到某算子(记为第一算子)生成的待写入本地内存的第一数据之后,先将第一数据写入第一算子对应的内存空间中的读写区域,若在写入第一数据之前,读写区域已经写满,则在写入第一数据之后,更改管理信息中读写区域的结束地址为第一数据的结束地址,根据更改后读写区域的结束地址和读写区域的长度可确定读写区域的起始地址,进一步再根据只读区域的长度可确定只读区域的起始地址。

8、通过上述设计,通过多级缓存来存储数据,可以提高读写性能,另外,由于数据的逻辑地址连续,数据流式流入读写区域后,写入完成后,根据数据的结束地址更新读写区域的结束地址,可方便、快捷地计算只读区域、读写区域的边界地址,如此,可更加快速的从只读区域确定待备份数据。

9、在一种可能的实现方式中,备份指令是在满足下列条件时触发的:只读区域和读写区域已写满,或,第一算子接收到检查点checkpoint消息。

10、在一种可能的实现方式中,当备份指令是第一算子接收到检查点checkpoint消息时,该方法还包括:备份模块向远端内存池发送多副本指令,多副本指令用于指示远端内存池生成增量数据的副本,增量数据可以指远端内存池内已存储的数据中除已生成副本的数据之外的数据。

11、通过上述设计,远端内存池存储数据的副本,当其中一份数据副本丢失时,可以使用其他数据副本恢复,增加远端内存池中数据的可靠性。

12、在一种可能的实现方式中,将所述第一数据写入远端内存池之前,该方法还包括:从配置文件获取远端内存池的地址信息,如ip地址;将第一数据从所述本地内存写入远端内存池,包括:根据该地址信息,将第一数据写入远端内存池。

13、在一种可能的实现方式中,将所述第一数据写入远端内存池,包括:基于高速网络协议将第一数据写入远端内存池,高速网络协议包括远程直接内存访问rdma、ub、tcp。

14、通过上述设计,通过高速网络将本地内存中的数据写入远端内存池,可提升状态存储的写效率,提升备份速度,支持频繁做数据备份。

15、在一种可能的实现方式中,主机包括数据索引,数据索引包括数据的标识和数据的逻辑地址之间的对应关系;将第一数据写入远端内存池之后,还包括:主机接收用于请求读取第一数据的读请求,该读请求包括第一数据的标识,之后根据该数据索引确定第一数据的标识对应的逻辑地址,若本地内存(指第一算子对应的内存空间)对应的逻辑地址包括该逻辑地址,则根据该逻辑地址从本地内存获取第一数据;或者,若本地内存对应的逻辑地址不包括该逻辑地址,则根据该逻辑地址从远端内存池获取第一数据。也就是说,第一数据写入远端内存池之后,第一数据的逻辑地址不变。

16、通过上述设计,主机可基于数据索引确定待读取数据的逻辑地址,并根据该逻辑地址快速从本地内存或远端内存池中读取该数据,由于读操作都在内存中,因此该方式具有较高的读性能。

17、第二方面,本技术实施例还提供了一种数据存储系统,该系统包括计算节点集群和存储节点集群,计算节点集群包括至少一个计算节点,存储节点集群包括多个存储节点,多个存储节点的内存用于组建远端内存池,其中,每个计算节点具有实现上述第一方面的方法实例中主机的功能,有益效果可以参见第一方面的描述此处不再赘述。

18、第三方面,本技术实施例还提供了一种计算装置,该装置具有实现上述第一方面的方法实例中主机的功能,有益效果可以参见第一方面的描述此处不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述装置的结构中包括获取模块、备份模块,可选的,还包括处理模块。这些模块可以执行上述第一方面方法示例中主机的相应功能,具体参见方法示例中的详细描述,此处不做赘述。

19、第四方面,本技术还提供了一种计算装置,所述装置包括处理器和供电电路,供电电路用于为处理器供电,所述处理器执行所述存储器中的程序指令执行上述第一方面或第一方面任一可能的实现方式提供的主机执行的方法。所述存储器与所述处理器耦合,其保存有执行数据处理过程中必要的程序指令和数据。

20、第五方面,本技术还提供了一种计算设备,所述设备包括处理器和存储器,还可以包括通信接口,所述处理器执行所述存储器中的程序指令执行上述第一方面或第一方面任一可能的实现方式中主机执行的方法。所述存储器与所述处理器耦合,其保存有执行数据备份过程中必要的程序指令和数据。所述通信接口,用于与其他设备进行通信,如向远端内存池发送写请求,写请求包括待备份数据,又如,接收客户端发送的读请求。

21、第六方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质被计算设备执行时,所述计算设备执行前述第一方面或第一方面的任意可能的实现方式中主机执行的方法。该存储介质中存储了程序。该存储介质包括但不限于易失性存储器,例如随机访问存储器,非易失性存储器,例如快闪存储器、硬盘(hard disk drive,hdd)、固态硬盘(solid state drive,ssd)。

22、第七方面,本技术提供了一种计算设备程序产品,所述计算设备程序产品包括计算机指令,在被计算设备执行时,所述计算设备执行前述第一方面或第一方面的任意可能的实现方式中主机执行的方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面或第一方面的任意可能的实现方式中提供的方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。

23、第八方面,本技术还提供一种芯片,所述芯片用于通过执行软件程序,实现上述第一方面或第一方面的各个可能的实现方式中主机执行的方法。

24、上述第二方面至第八方面中任一实现方式的有益效果请参见第一方面的描述,此处不再赘述。


技术特征:

1.一种数据存储方法,由主机执行,所述主机连接至远端内存池,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,从本地内存中获取待备份的第一数据之前,所述方法还包括:

3.如权利要求2所述的方法,其特征在于,所述本地内存包括读写区域和只读区域,所述读写区域与所述只读区域的逻辑地址连续,所述主机包括管理信息,所述管理信息中记录了所述读写区域的起始地址、结束地址,所述读写区域的起始地址为所述只读区域的结束地址,所述方法包括:

4.如权利要求3所述的方法,其特征在于,将所述第一数据写入所述读写区域之后,还包括:

5.如权利要求3或4所述的方法,其特征在于,所述备份指令是在满足下列条件时触发的:

6.如权利要求5所述的方法,其特征在于,所述备份指令为接收到检查点checkpoint消息;

7.如权利要求3-6任一项所述的方法,其特征在于,所述主机包括数据索引,所述数据索引包括数据的标识和所述数据的逻辑地址的对应关系;

8.如权利要求1-7任一项所述的方法,其特征在于,将所述第一数据写入远端内存池,包括:

9.一种数据存储系统,其特征在于,所述系统包括计算节点集群和存储节点集群,所述计算节点集群包括至少一个计算节点,所述存储节点集群包括多个存储节点,所述多个存储节点用于提供远端内存池,每个计算节点连接至所述远端内存池;

10.如权利要求9所述的系统,其特征在于,所述计算节点在从本地内存中获取待备份的第一数据之前,还用于获取待写入所述本地内存的所述第一数据;为所述第一数据分配逻辑地址,所述逻辑地址与上一次写入所述本地内存的第二数据的逻辑地址连续。

11.如权利要求10所述的系统,其特征在于,所述本地内存包括读写区域和只读区域,所述读写区域与所述只读区域的逻辑地址连续,所述计算节点包括管理信息,所述管理信息中记录了所述读写区域的起始地址、结束地址,所述读写区域的起始地址为所述只读区域的结束地址;

12.如权利要求11所述的系统,其特征在于,所述计算节点在所述写模块将所述第一数据写入所述读写区域之后,还用于获取待写入所述本地内存的第三数据,为所述第三数据分配逻辑地址,所述逻辑地址与所述第一数据的逻辑地址连续;将所述第三数据写入所述读写区域;更改所述管理信息中所述读写区域的结束地址为所述第三数据的结束地址,以及根据所述读写区域的结束地址、所述读写区域的长度和所述只读区域的长度更新所述读写区域的起始地址、所述只读区域的起始地址;

13.如权利要求11或12所述的系统,其特征在于,所述备份指令是在满足下列条件时触发的:

14.如权利要求13所述的系统,其特征在于,所述备份指令为接收到检查点checkpoint消息;

15.如权利要求11-14任一项所述的系统,其特征在于,所述计算节点包括数据索引,所述数据索引包括数据的标识和所述数据的逻辑地址的对应关系;

16.如权利要求9-15任一项所述的系统,其特征在于,所述计算节点将所述第一数据写入远端内存池时,具体用于基于高速网络协议将所述第一数据写入所述远端内存池,所述高速网络协议包括远程直接内存访问rdma、传输控制协议tcp、ub。

17.一种计算设备,其特征在于,包括处理器和存储器;

18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质被存储设备执行时,所述存储设备执行上述权利要求1-8任一项所述方法。


技术总结
本申请提供一种数据存储方法、装置及系统,在该方法中,主机从本地内存中获取待备份的第一数据,第一数据为所述主机执行流处理产生的数据;将所述第一数据从所述本地内存写入远端内存池。该方法将状态存储在本地内存中,在执行状态备份时,将本地内存中的状态流式备份到远端内存池,由于都是内存操作,不需要写磁盘,读写性能高、延迟低。

技术研发人员:傅紫叶,包小明,徐华,刘春,周敏均
受保护的技术使用者:华为技术有限公司
技术研发日:
技术公布日:2024/6/26
转载请注明原文地址:https://doc.8miu.com/read-1833889.html

最新回复(0)