数据处理设备和数据处理的方法与流程

文档序号:12946710阅读:180来源:国知局
数据处理设备和数据处理的方法与流程

本发明涉及信息技术领域,特别涉及一种数据处理的方法和数据处理设备。



背景技术:

随着信息技术的不断发展,移动业务普及带来客户端数量的飞速增长,对服务端响应客户端的能力提出了更高的要求。同时大数据计算的普及,加剧了对计算实时性的要求。处理这些业务的服务器的处理速度,直接影响到业务处理的速度以及用户的满意度。

为提升服务器业务处理的速度,提升内存读写数据的速度是其中一个因素。同时,由于内存中的数据的容易丢失的特性,在异常断电或重新启动时,内存中的数据就会丢失。为保证内存中数据的安全性,通常会用非易失性的存储介质来备份内存中的数据,在内存中的数据丢失时,能够恢复内存中丢失的数据。

非易失性的存储介质能够持久化地保存数据,即使是在掉电等情况下,数据仍然不会丢失。大容量的非易失性存储介质,其存取数据的速度慢,而内存存取数据的速度快,如果在将写入内存的数据向非易失性存储介质备份过程中,发生内存数据丢失的情况,未来得及进行备份的数据将无法得到恢复,内存中数据的安全性无法得到保障。



技术实现要素:

本发明实施例提供一种数据处理设备和数据处理的方法,以解决在异常情况下写入内存的数据因备份速度慢导致的数据备份失败,内存中数据的安全性不高的问题。

本发明实施例提供了一种数据处理设备,所述数据处理设备包括控制单元,内存,第一非易失性存储单元和第二非易失性存储单元,所述第一非易失性存储单元写数据的速度高于所述第二非易失性存储单元写数据的速度,所述内存用于存储所述数据处理设备需要存储的业务数据;

所述控制单元,用于将需要写入所述内存的第一数据写入所述内存,将所述第一数据以日志文件形式写入所述第一非易失性存储单元,并将写入所述第一非易失性存储单元中的第一数据的日志文件写入所述第二非易失性存储单元。

可选的,所述控制单元包括内存读写控制单元和持久化控制单元;

所述内存读写控制单元,用于将所述第一数据写入所述内存,并将所述第一数据以日志文件形式写入所述第一非易失性存储单元;

所述持久化控制单元,用于将写入所述第一非易失性存储单元中的第一数据的日志文件写入所述第二非易失性存储单元。

所述内存读写控制单元,还用于将第二数据写入所述内存,并将所述第二数据以日志文件形式写入所述第一非易失性存储单元。

可选的,所述持久化控制单元,还用于从所述内存获取所述第一数据并写入所述第二非易失性存储单元。

可选的,所述控制单元还包括数据整理单元;

所述数据整理单元,用于将所述第二非易失性存储单元中所述第一数据的日志文件转换为第一数据。

可选的,所述控制单元还包括数据恢复单元;

所述数据恢复单元,用于用所述第二非易失性存储单元中的第一数据,恢复所述内存中丢失的所述第一数据。

可选的,所述数据恢复单元,还用于用所述第二非易失性存储单元中的所述第一数据的日志文件恢复所述内存中丢失的第一数据,用所述第一非易失性存储单元中的所述第二数据的日志文件,恢复所述内存中丢失的第二数据。

可选的,所述数据恢复单元,还用于用所述第二非易失性存储单元中的所述第一数据恢复所述内存中丢失的第一数据,用所述第一非易失性存储单元中的所述第二数据的日志文件,恢复所述内存中丢失的第二数据。

可选的,所述数据恢复单元,还用于用所述第二非易失性存储单元中的所述第一数据和所述第一数据的日志文件恢复所述内存中丢失的第一数据,用所述第一非易失性存储单元中的所述第二数据的日志文件,恢复所述内存中丢失的第二数据。

可选的,所述持久化控制单元,还用于所述第一非易失性存储单元中的第一数据的日志文件写入所述第二非易失性存储单元后,通知所述第一非易失性存储单元释放所述第一数据的日志文件占用的空间。

可选的,所述持久化控制单元,还用于在内存读写控制单元向所述第一非易失性存储单元写入所述第二数据时,暂停将所述第一非易失性存储单元中的所述第一数据的日志文件写入所述第二非易失性存储单元。

可选的,所述第一非易失性存储单元写数据的速度与所述内存写数据的速度相同。

本发明实施例还提供了一种数据处理设备,所述数据处理设备包括控制单元,内存,第一非易失性存储单元和第二非易失性存储单元,所述第一非易失性存储单元写数据的速度高于所述第二非易失性存储单元写数据的速度,所述内存用于存储所述数据处理设备需要存储的业务数据;

所述控制单元,用于将需要写入所述内存的第一数据写入所述内存,将所述第一数据以日志文件形式写入所述第一非易失性存储单元;

所述控制单元,还用于从所述内存所述第一数据,并将获取到的所述第一数据转换为日志文件写入所述第二非易失性存储单元。

可选的,所述控制单元包括内存读写控制单元和持久化控制单元;

所述内存读写控制单元,用于将第一数据写入所述内存,并将所述第一数据以日志文件形式写入所述第一非易失性存储单元;

所述持久化控制单元,用于用于从所述内存所述第一数据,并将获取到的所述第一数据转换为日志文件写入所述第二非易失性存储单元。

可选的,所述内存读写控制单元,还用于将第二数据写入所述内存,并将所述第二数据以日志文件形式写入所述第一非易失性存储单元。

可选的,所述持久化控制单元,还用于从所述内存获取所述第一数据并写入所述第二非易失性存储单元。

可选的,所述控制单元还包括数据整理单元;

所述数据整理单元,用于将所述第二非易失性存储单元中所述第一数据的日志文件转换为第一数据。

可选的,所述控制单元还包括数据恢复单元;

所述数据恢复单元,用于用所述第二非易失性存储单元中的第一数据,恢复所述内存中丢失的所述第一数据。

可选的,所述数据恢复单元,还用于用所述第二非易失性存储单元中的所述第一数据的日志文件恢复所述内存中丢失的第一数据,用所述第一非易失性存储单元中的所述第二数据的日志文件,恢复所述内存中丢失的第二数据。

可选的,所述数据恢复单元,还用于用所述第二非易失性存储单元中的所述第一数据恢复所述内存中丢失的第一数据,用所述第一非易失性存储单元中的所述第二数据的日志文件,恢复所述内存中丢失的第二数据。

可选的,所述数据恢复单元,还用于用所述第二非易失性存储单元中的所述第一数据和所述第一数据的日志文件恢复所述内存中丢失的第一数据,用所述第一非易失性存储单元中的所述第二数据的日志文件,恢复所述内存中丢失的第二数据。

可选的,所述第一非易失性存储单元写数据的速度与所述内存写数据的速度相同。

本发明实施例还提供了一种数据处理设备,所述数据处理设备包括控制单元,内存,第一非易失性存储单元和第二非易失性存储单元,所述第一非易失性存储单元写数据的速度高于所述第二非易失性存储单元写数据的速度,所述内存用于存储所述数据处理设备需要存储的业务数据;

所述控制单元,用于将需要写入所述内存的第一数据写入所述内存,将所述第一数据以日志文件形式写入所述第一非易失性存储单元;并将所述内存中的第一数据写入所述第二非易失性存储单元。

可选的,所述控制单元包括内存读写控制单元和持久化控制单元;

所述内存读写控制单元,用于将第一数据写入所述内存,并将所述第一数据以日志文件形式写入所述第一非易失性存储单元;

所述持久化控制单元,用于将所述内存中的第一数据写入所述第二非易失性存储单元。

可选的,所述内存读写控制单元,还用于将第二数据写入所述内存,并将所述第二数据以日志文件形式写入所述第一非易失性存储单元。

可选的,所述控制单元还包括数据恢复单元;

所述数据恢复单元,用于用所述第二非易失性存储单元中的第一数据,恢复所述内存中丢失的所述第一数据。

本发明实施例提供了一种数据处理的方法,所述数据处理方法应用于数据处理设备中,包括:

接收要写入所述数据处理设备中内存的第一数据,所述内存用于存储所述数据处理设备需要存储的业务数据;

将所述第一数据写入所述内存,并将所述第一数据以日志文件形式写入第一非易失性存储单元;

将写入所述第一非易失性存储单元中的第一数据的日志文件,写入第二非易失性存储单元,所述第一非易失性存储单元写数据的速度高于所述第二非易失性存储单元写数据的速度。

可选的,所述方法还包括:

将第二数据写入所述内存,并将所述第二数据以日志文件形式写入所述第一非易失性存储单元。

可选的,所述方法还包括:从所述内存获取所述第一数据并写入所述第二非易失性存储单元。

可选的,所述方法还包括:将所述第二非易失性存储单元中所述第一数据的日志文件转换为第一数据。

可选的,在所述内存中的所述第一数据丢失时,用所述第二非易失性存储单元中的第一数据,恢复所述第一数据。

可选的,在所述内存中的所述第一数据丢失时,用所述第二非易失性存储单元中的所述第一数据的日志文件恢复所述内存中丢失的第一数据;

在所述内存中的所述第二数据丢失时,用所述第一非易失性存储单元中的所述第二数据的日志文件,恢复所述内存中丢失的第二数据。

可选的,在所述内存中的所述第一数据丢失时,用所述第二非易失性存储单元中的所述第一数据恢复所述内存中丢失的第一数据;

在所述内存中的所述第二数据丢失时,用所述第一非易失性存储单元中的所述第二数据的日志文件,恢复所述内存中丢失的第二数据。

可选的,所述用所述第二非易失性存储单元中的所述第一数据恢复所述内存中丢失的第一数据包括:

判断是否完成所述第一数据的日志文件到所述第一数据的转换;

在未完成转换时,用已经转换后的第一数据和未转换的第一数据的日志文件,恢复所述内存中的第一数据;

在完成转换时,用转换后的第一数据恢复所述内存中的第一数据。

可选的,在将所述第一非易失性存储单元中的第一数据的日志文件写入所述第二非易失性存储单元后,通知所述第一非易失性存储单元释放所述第一数据的日志文件占用的空间。

可选的,在将所述第二数据以日志文件形式写入所述第一非易失性存储单元时,暂停将所述第一非易失性存储单元中的所述第一数据的日志文件写入所述第二非易失性存储单元。

可选的,所述第一非易失性存储单元写数据的速度与所述内存写数据的速度相同。

本发明实施例还提供了另一种数据处理的方法,所述数据处理方法应用于数据处理设备中,包括:

接收要写入所述数据处理设备中内存的第一数据,所述内存用于存储所述数据处理设备需要存储的业务数据;

将所述第一数据写入所述内存,并将所述第一数据以日志文件形式写入第一非易失性存储单元;

将写入所述内存的所述第一数据的写入第二非易失性存储单元,所述第一非易失性存储单元写数据的速度高于所述第二非易失性存储单元写数据的速度。

可选的,所述方法还包括:

将第二数据写入所述内存,并将所述第二数据以日志文件形式写入所述第一非易失性存储单元。

可选的,所述将写入所述内存的所述第一数据写入第二非易失性存储单元包括:

将写入所述内存的第一数据写入所述第二非易失性存储单元;或,

将写入所述内存的第一数据转换为日志文件后写入所述第二非易失性存储单元。

可选的,所述方法还包括:

在将写入所述内存的第一数据转换为日志文件后写入所述第二非易失性存储单元后,将所述第二非易失性存储单元中所述第一数据的日志文件转换为第一数据。

可选的,在所述内存中的所述第一数据丢失时,如果所述第二非易失性存储单元中存储有所述第一数据,用所述第二非易失性存储单元中的第一数据,恢复所述第一数据;如果所述第二非易失性存储单元中只存储所述第一数据的日志文件,所述第一数据的日志文件恢复所述内存丢失的第一数据;如果在将所述第二非易失性存储单元中所述第一数据的日志文件转换为第一数据过程中所述内存中的第一数据丢失,用已经转换后的第一数据和未转换的第一数据的日志文件,恢复所述内存中的第一数据。

可选的,在所述内存中的所述第二数据丢失时,用所述第一非易失性存储单元中的所述第二数据的日志文件,恢复所述内存中丢失的第二数据。

可选的,所述用所述第二非易失性存储单元中的所述第一数据恢复所述内存中丢失的第一数据包括:

判断是否完成所述第一数据的日志文件到所述第一数据的转换;

在未完成转换时,用已经转换后的第一数据和未转换的第一数据的日志文件,恢复所述内存中的第一数据;

在完成转换时,用转换后的第一数据恢复所述内存中的第一数据。

可选的,所述第一非易失性存储单元写数据的速度与所述内存写数据的速度相同。

本发明实施例还提供了一种数据处理的方法,所述数据处理方法应用于数据处理设备中,包括:

接收要写入所述数据处理设备中内存的第一数据,所述内存用于存储所述数据处理设备需要存储的业务数据;

将所述第一数据写入所述内存,并将所述第一数据以日志文件形式写入第一非易失性存储单元;

将所述内存中的所述第一数据转换为日志文件,并写入第二非易失性存储单元,所述第一非易失性存储单元写数据的速度高于所述第二非易失性存储单元写数据的速度。

可选的,所述方法还包括:

将第二数据写入所述内存,并将所述第二数据以日志文件形式写入所述第一非易失性存储单元。

可选的,所述方法还包括:

将所述内存中的所述第一数据写入所述第二非易失性存储单元。

可选的,所述方法还包括:

将所述第二非易失性存储单元中所述第一数据的日志文件转换为第一数据。

可选的,在所述内存中的所述第一数据丢失时,用所述第二非易失性存储单元中的第一数据,恢复所述内存中丢失的所述第一数据。

可选的,在所述内存中的所述第一数据丢失时,用所述第二非易失性存储单元中的所述第一数据的日志文件恢复所述内存中丢失的第一数据;

在所述内存中的所述第二数据丢失时,用所述第一非易失性存储单元中的所述第二数据的日志文件,恢复所述内存中丢失的第二数据。

可选的,在所述内存中的所述第一数据丢失时,用所述第二非易失性存储单元中的所述第一数据恢复所述内存中丢失的第一数据;

在所述内存中的所述第二数据丢失时,用所述第一非易失性存储单元中的所述第二数据的日志文件,恢复所述内存中丢失的第二数据。

可选的,所述用所述第二非易失性存储单元中的所述第一数据恢复所述内存中丢失的第一数据包括:

判断是否完成所述第一数据的日志文件到所述第一数据的转换;

在未完成转换时,用已经转换后的第一数据和未转换的第一数据的日志文件,恢复所述内存中的第一数据;

在完成转换时,用转换后的第一数据恢复所述内存中的第一数据。

可选的,所述第一非易失性存储单元写数据的速度与所述内存写数据的速度相同。

本发明实施例还提供了一种数据处理的方法,所述数据处理方法应用于数据处理设备中,包括:

接收要写入所述数据处理设备中内存的第一数据;

将所述第一数据写入所述内存,并将所述第一数据以日志文件形式写入第一非易失性存储单元;

将所述内存中的所述第一数据写入第二非易失性存储单元,所述第一非易失性存储单元写数据的速度高于所述第二非易失性存储单元写数据的速度。

可选的,

将第二数据写入所述内存,并将所述第二数据以日志文件形式写入所述第一非易失性存储单元。

可选的,在所述内存中的所述第一数据丢失时,用所述第二非易失性存储单元中的第一数据,恢复所述第一数据。

可选的,所述第一非易失性存储单元写数据的速度与所述内存写数据的速度相同。

本发明实施例提供的数据处理设备和数据处理方法,通过将写入内存的第一数据以日志文件形式写入第一非易失性存储单元,并将写入所述第一非易失性存储单元的第一数据的日志文件写入所述第二非易失性存储单元,由于第一非易失性存储单元写数据的速度高于第二非易失性存储单元写数据的速度,因此,能够实现内存中数据的快速备份,在内存中的数据因异常情况丢失时,能够保证内存中数据的安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一种数据处理设备结构示意图;

图2为本发明实施例一种数据处理设备的具体实现方式示意图;

图3为本发明实施例一种数据处理方法的流程示意图;

图4为本发明实施例一种数据处理方法的具体实现流程示意图;

图5为本发明实施例一种数据处理设备的在服务器中具体应用的结构示意图;

图6为图5中内存读写控制单元与内存进行数据读写过程的流程示意图;

图7为图5中将一个具体的业务数据写入内存和第一非易失性存储单元的实现方式示意图;

图8-a为图5中从第一非易失性存储单元获取第一数据的日志文件进行数据持久化的流程示意图;

图8-b为图5中从从内存获取第一数据的日志文件进行数据持久化的流程示意图;

图9为图5中数据整理单元将内存中业务数据写入第二非易失性存储单元数据区的流程示意图;

图10为图5中数据恢复单元数据恢复过程的流程示意图;

图11为本发明实施例提供的另一种数据处理的方法的流程示意图;

图12为图11所述方法的进一步实现流程示意图;

图13为本发明实施例另一种数据处理的方法的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

参考图1,图1为本发明实施例一种数据处理设备100结构示意图,所述数据处理设备100包括内存101,控制单元102,第一非易失性存储单元103和第二非易失性存储单元104,所述第一非易失性存储单元103写数据的速度高于所述第二非易失性存储单元104写数据的速度;

所述控制单元102,用于将第一数据写入所述内存101,将所述第一数据以日志文件形式写入所述第一非易失性存储单元103,并将写入所述第一非易失性存储单元103中的第一数据的日志文件写入所述第二非易失性存储单元104。

上述数据处理设备100,通过控制单元102将写入内存101的第一数据以日志文件形式写入第一非易失性存储单元103,并将写入所述第一非易失性存储单元103的第一数据的日志文件写入所述第二非易失性存储单元104,由于第一非易失性存储单元103写数据的速度高于第二非易失性存储单元104写数据的速度,因此,能够实现业务数据的快速备份,尤其是对于内存中存储处理设备需要存储的业务数据的情况下,能够保证内存数据的安全性;同时,通过日志文件形式存储第一数据,由于日志文件中带有元数据,可以只记录发生变化的数据并能够实现数据的恢复,在第一非易失性存储单元103的容量小于内存101的容量时,能够实现快速的数据备份并在内存中的数据丢失时恢复内存中丢失的数据。

作为另一种可选的实现方式,所述控制单元102,还用于将第一数据写入所述内存101,将所述第一数据以日志文件形式写入所述第一非易失性存储单元103;并将写入所述内存的第一数据写入所述第二非易失性存储单元104。通过将第一数据转换为日志文件写入第一非易失性存储单元103并将写入所述内存的第一数据写入所述第二非易失性存储单元104,能够实现第一非易失性存储单元103的读写分离,避免了第一非易失性存储单元103在写入数据的同时处理第二非易失性存储单元104读数据的请求,进一步提升了第一非易失性存储单元103写入日志文件的效率。

作为一种可选的实现方式,第一非易失性存储单元103写数据的速度与所述内存写数据的速度相同或相近,这样能够保证写入内存101中的数据同步到第一非易失性存储单元103中,在内存101因异常导致数据丢失时,第一非易失性存储单元103中的日志文件能够用于恢复丢失的数据。

参考图2,图2为本发明实施例一种数据处理设备100的具体实现方式示意图。如图2所示,所述控制单元100可以包括内存读写控制单元105和持久化控制单元106;

所述内存读写控制单元105,用于将所述第一数据写入所述内存101,并将所述第一数据以日志文件形式写入所述第一非易失性存储单元103;

所述持久化控制单元106,用于将写入所述第一非易失性存储单元103中的第一数据的日志文件写入所述第二非易失性存储单元104。

作为另一种实现方式,所述内存读写控制单元105,用于将第一数据写入所述内存101,并将所述第一数据以日志文件形式写入所述第一非易失性存储单元103;

所述持久化控制单元106,用于将所述内存中的第一数据写入所述第二非易失性存储单元104。所述持久化控制单元106,还可以将所述内存101中的第一数据转换为日志文件写入所述第二非易失性存储单元104。

可选的,所述内存读写控制单元105,还用于将第二数据写入所述内存101,并将所述第二数据以日志文件形式写入所述第一非易失性存储单元103。

其中,通过日志文件形式将第二数据存储于第一非易失性存储单元103中,在内存101中的数据丢失时,能够用第一非易失性存储单元103中的数据恢复丢失的数据;特别的,所述第二数据可以是所述内存中的数据发生变化的数据,由于日志文件带有元数据,能够根据元数据和变化数据实现数据的恢复,在第一非易失性存储单元103的存储空间小于内存101的空间时,能够实现内存在异常丢失数据时数据的恢复。

可选的,所述控制单元还包括数据整理单元107,用于将所述第二非易失性存储单元104中所述第一数据的日志文件转换为第一数据。

相应的,所述控制单元102还包括数据恢复单元108,用于用所述第二非易失性存储单元104中的第一数据,恢复所述内存中丢失的所述第一数据。

作为另一种可选的实现方式,所述持久化控制单元106,还用于从所述内存101获取所述第一数据并写入所述第二非易失性存储单元104。这样,就不需要第二非易失性存储单元104将第一数据的日志文件转换为第一数据,进一步提升了数据处理设备处理数据的效率。

在所述第二非易失性存储单元104还未开始将所述第一数据的日志文件转换为第一数据,内存101中的数据就丢失时,所述数据恢复单元108用所述第二非易失性存储单元104中的所述第一数据的日志文件恢复所述内存101中丢失的第一数据,用所述第一非易失性存储单元103中的所述第二数据的日志文件,恢复所述内存101中丢失的第二数据。

在所述第二非易失性存储单元104已经完成将所述第一数据的日志文件转换为第一数据,如果内存101中的数据丢失,所述数据恢复单元108用所述第二非易失性存储单元104中的所述第一数据恢复所述内存101中丢失的第一数据,用所述第一非易失性存储单元103中的所述第二数据的日志文件,恢复所述内存中丢失的第二数据。

在所述第二非易失性存储单元104尚未完成将所述第一数据的日志文件转换为第一数据时出现内存101中数据丢失,所述数据恢复单元108,还用于用所述第二非易失性存储单元中的所述第一数据和所述第一数据的日志文件恢复所述内存中丢失的第一数据,用所述第一非易失性存储单元103中的所述第二数据的日志文件,恢复所述内存中丢失的第二数据。即数据恢复单元108用已经转换的第一数据部分和未转换的第一数据的日志文件部分来恢复内存101中的第一数据。

通过所述数据恢复单元108将内存101中丢失的数据恢复,实现了内存101快速读写数据,在出现内存101中的数据丢失时,丢失的数据能及时得到恢复,保证了业务数据的安全性。

作为一种可选的实现方式,所述持久化控制单元106,还用于所述第一非易失性存储单元103中的第一数据的日志文件写入所述第二非易失性存储单元104后,通知所述第一非易失性存储单元103释放所述第一数据的日志文件占用的空间。这样,第一非易失性存储单元103中能够循环存储写入内存101中的数据,提高了第一非易失性存储单元103的使用率。

作为一种可选的实现方式,所述持久化控制单元106,还用于在内存读写控制单元105向所述第一非易失性存储单元103写入所述第二数据时,暂停将所述第一非易失性存储单元103中的所述第一数据的日志文件写入所述第二非易失性存储单元104。这样,第一非易失性存储单元103能够实现纯净的连续写,相对于在向第一非易失性存储单元103写入数据的同时从第一非易失性存储单元读数据的情况,提高了第一非易失性存储单元103写入数据的速度。

上述数据处理设备中的内存可以是动态随机存取存储器dram,第一非易失性存储单元可以是nvm(non-volatilememory,非易失性存储器),本发明实施例不限定其具体的实现方式。

参考图3,图3为本发明实施例一种数据处理方法的流程示意图,所述数据处理的方法应用于数据处理设备中,所述方法包括:

步骤300:接收要写入所述数据处理设备中内存的第一数据;

步骤302:将所述第一数据写入所述内存,并将所述第一数据以日志文件形式写入第一非易失性存储单元;

步骤304:将写入所述第一非易失性存储单元中的第一数据的日志文件,写入第二非易失性存储单元,所述第一非易失性存储单元写数据的速度高于所述第二非易失性存储单元写数据的速度。

通过将写入内存的第一数据以日志文件形式写入第一非易失性存储单元,并将写入所述第一非易失性存储单元的第一数据的日志文件写入第二非易失性存储单元,由于第一非易失性存储单元写数据的速度高于第二非易失性存储单元写数据的速度,因此,能够实现业务数据的快速备份,尤其是对于内存中存储处理设备需要存储的业务数据的情况下,能够保证内存数据的安全性;同时,通过日志文件形式存储第一数据,由于日志文件中带有元数据,可以只记录发生变化的数据并能够实现数据的恢复,在第一非易失性存储单元的容量小于内存的容量时,能够实现快速的数据备份并在内存中的数据丢失时恢复内存中丢失的数据。

可选的,第一非易失性存储单元写数据的速度与所述内存写数据的速度相同或相近,这样能够保证写入内存中的数据同步到第一非易失性存储单元中,在内存因异常导致数据丢失时,第一非易失性存储单元中的日志文件能够用于恢复丢失的数据。

参考图4,图4为本发明实施例一种数据处理的方法一种具体实现流程示意图。如图4所示,本发明实施例的数据处理方法还包括:

步骤306:将第二数据写入所述内存,并将所述第二数据以日志文件形式写入所述第一非易失性存储单元。

其中,通过日志文件形式将数据存储于第一非易失性存储单元中,在内存中的数据丢失时,能够用第一非易失性存储单元中的数据恢复丢失的数据;特别的,所述第二数据可以是所述内存中的数据发生变化的数据,由于日志文件带有元数据,能够根据元数据和变化数据实现数据的恢复,在第一非易失性存储单元的存储空间小于内存的空间时,能够实现内存在异常丢失数据时数据的恢复。

所述方法还可以包括:

步骤308:将所述第二非易失性存储单元中所述第一数据的日志文件转换为第一数据;可选的,在步骤306之后,所述方法还可以包括:从所述内存获取所述第一数据并写入所述第二非易失性存储单元。这样就不需要执行步骤308,能够进一步提升数据备份的效率。

步骤310:在所述内存中的所述第一数据丢失时,用所述第二非易失性存储单元中的第一数据,恢复所述第一数据。具体可以包括:在所述内存中的所述第一数据丢失时,如果所述第二非易失性存储单元中存储有所述第一数据,用所述第二非易失性存储单元中的第一数据,恢复所述第一数据;如果所述第二非易失性存储单元中只存储所述第一数据的日志文件,所述第一数据的日志文件恢复所述内存丢失的第一数据;如果在将所述第二非易失性存储单元中所述第一数据的日志文件转换为第一数据过程中所述内存中的第一数据丢失,用已经转换后的第一数据和未转换的第一数据的日志文件,恢复所述内存中的第一数据。

可选的,在所述内存中的所述第二数据丢失时,用所述第一非易失性存储单元中的所述第二数据的日志文件,恢复所述内存中丢失的第二数据。

可选的,所述用所述第二非易失性存储单元中的所述第一数据恢复所述内存中丢失的第一数据包括:判断是否完成所述第一数据的日志文件到所述第一数据的转换;在未完成转换时,用已经转换后的第一数据和未转换的第一数据的日志文件,恢复所述内存中的第一数据;在完成转换时,用转换后的第一数据恢复所述内存中的第一数据。

通过上述将内存中丢失的数据恢复方式,实现了内存快速读写数据,且在出现内存中的数据丢失时,丢失的数据能及时得到恢复,保证了业务数据的安全性。

作为本发明实施例的另一个方面,上述方法还可以包括:在将所述第一非易失性存储单元中的第一数据的日志文件写入所述第二非易失性存储单元后,通知所述第一非易失性存储单元释放所述第一数据的日志文件占用的空间;这样,第一非易失性存储单元中能够循环存储写入内存中的数据,提高了第一非易失性存储单元的使用率。

作为本发明实施例的另一个方面,上述方法还可以包括:在将并将所述第二数据以日志文件形式写入所述第一非易失性存储单元时,暂停将所述第一非易失性存储单元中的所述第一数据的日志文件写入所述第二非易失性存储单元。这样,第一非易失性存储单元能够实现纯净的连续写,相对于在向第一非易失性存储单元写入数据的同时从第一非易失性存储单元读数据的情况,提高了第一非易失性存储单元写入数据的速度。

上述步骤中,所述内存可以是动态随机存取存储器dram(dynamicrandomaccessmemory,动态随机存取存储器),所述第一非易失性存储单元可以是nvm,本发明实施例不限定其具体的实现方式。

参考图11,图11为本发明实施例提供的另一种数据处理的方法的流程示意图,所述数据处理方法应用于数据处理设备中,包括:

步骤1100:接收要写入所述数据处理设备中内存的第一数据;

步骤1102:将所述第一数据写入所述内存,并将所述第一数据以日志文件形式写入第一非易失性存储单元;

步骤1104:将所述内存中的所述第一数据转换为日志文件,并写入第二非易失性存储单元,所述第一非易失性存储单元写数据的速度高于所述第二非易失性存储单元写数据的速度。

通过将写入内存的第一数据以日志文件形式写入第一非易失性存储单元,并将所述内存中的所述第一数据转换为日志文件,并写入第二非易失性存储单元,由于第一非易失性存储单元写数据的速度高于第二非易失性存储单元写数据的速度,因此,能够实现业务数据的快速备份,尤其是对于内存中存储处理设备需要存储的业务数据的情况下,能够保证内存数据的安全性;同时,通过日志文件形式存储第一数据,由于日志文件中带有元数据,可以只记录发生变化的数据并能够实现数据的恢复,在第一非易失性存储单元的容量小于内存的容量时,能够实现快速的数据备份并在内存中的数据丢失时恢复内存中丢失的数据。

参考图12,图12为上述图11所述方法的进一步实现流程示意图,所述方法还包括:

步骤1106:将第二数据写入所述内存,并将所述第二数据以日志文件形式写入所述第一非易失性存储单元。

步骤1108:所述方法还包括:

将所述第二非易失性存储单元中所述第一数据的日志文件转换为第一数据。

将所述第二非易失性存储单元中所述第一数据的日志文件转换为第一数据,能够实现对内存中的第一数据丢失时,用第二非易失性存储单元中的第一数据恢复内存中的第一数据。

作为一种可选的实现方式,还可以将所述内存中的所述第一数据写入所述第二非易失性存储单元,这样就省去将第二非易失性存储单元中所述第一数据的日志文件转换为第一数据的步骤,进一步提升了数据存储的效率。

在所述内存中的所述第一数据丢失时,可以用所述第二非易失性存储单元中的第一数据,恢复所述内存中丢失的所述第一数据。也可以用所述第二非易失性存储单元中的所述第一数据的日志文件恢复所述内存中丢失的第一数据。如果在第二非易失性存储单元中的所述第一数据的日志文件转换过程中发生内存中第一数据丢失,则所述方法还可以包括:判断是否完成所述第一数据的日志文件到所述第一数据的转换;在未完成转换时,用已经转换后的第一数据和未转换的第一数据的日志文件,恢复所述内存中的第一数据;在完成转换时,用转换后的第一数据恢复所述内存中的第一数据。

可选的,在所述内存中的所述第二数据丢失时,用所述第一非易失性存储单元中的所述第二数据的日志文件,恢复所述内存中丢失的第二数据。

通过上述将内存中丢失的数据恢复方式,实现了内存快速读写数据,且在出现内存中的数据丢失时,丢失的数据能及时得到恢复,保证了业务数据的安全性。

参考图13,图13为本发明实施例另一种数据处理的方法的流程示意图,所述数据处理方法应用于数据处理设备中,包括:

步骤1300:接收要写入所述数据处理设备中内存的第一数据;

步骤1302:将所述第一数据写入所述内存,并将所述第一数据以日志文件形式写入第一非易失性存储单元;

步骤1304:将所述内存中的所述第一数据写入第二非易失性存储单元,所述第一非易失性存储单元写数据的速度高于所述第二非易失性存储单元写数据的速度。

通过将写入内存的第一数据以日志文件形式写入第一非易失性存储单元,并将所述内存中的所述第一数据写入第二非易失性存储单元,由于第一非易失性存储单元写数据的速度高于第二非易失性存储单元写数据的速度,因此,能够实现业务数据的快速备份,尤其是对于内存中存储处理设备需要存储的业务数据的情况下,能够保证内存数据的安全性;同时,通过日志文件形式存储第一数据,由于日志文件中带有元数据,可以只记录发生变化的数据并能够实现数据的恢复,在第一非易失性存储单元的容量小于内存的容量时,能够实现快速的数据备份并在内存中的数据丢失时恢复内存中丢失的数据。

可选的,所述方法还包括:将第二数据写入所述内存,并将所述第二数据以日志文件形式写入所述第一非易失性存储单元。

可选的,在所述内存中的所述第一数据丢失时,用所述第二非易失性存储单元中的第一数据,恢复所述第一数据。

可选的,所述第一非易失性存储单元写数据的速度与所述内存写数据的速度相同。

通过上述将内存中丢失的数据恢复方式,实现了内存快速读写数据,且在出现内存中的数据丢失时,丢失的数据能及时得到恢复,保证了业务数据的安全性。

下面以服务器为例对本发明实施例的数据处理设备和数据处理方法的实现方式做详细说明。该数据处理设备可以是一台服务器,包括cpu、内存、系统总线、电源等硬件设备以及操作系统等运行在这些硬件上的软件。以操作系统为linux操作系统为例进行说明,该服务器上的linux操作系统中的块设备子系统与服务器中的内存连接,从所述内存读取业务数据或向所述内存写入业务数据。

参考图5,图5为本发明实施例一种数据处理设备的在服务器中具体应用的结构示意图。图5中内存读写控制单元105与块设备子系统连接进行业务数据的读写控制,并将需要存储的所有业务数据存储在内存101中,该内存101可以是dram。同时,所述内存读写控制单元105将需要写入内存101的数据以日志文件方式存储于第一非易失性存储单元103的日志区中。持久化控制单元106从内存101读取业务数据存储于第二非易失性存储单元104的日志区,所述第二非易失性存储单元104的日志区以日志文件方式存储业务数据,数据区存储业务数据的原始格式。同时,数据整理单元107还将第二非易失性存储单元104的日志区的数据或第一非易失性存储单元103的日志区中的数据整理到数据区,并将相应日志区中的日志文件删除,以释放其日志文件占用的空间。在内存101中的业务数据丢失时,数据恢复单元108从持久化存储单元的数据区读取数据恢复到所述内存101中,或通过第一非易失性存储单元103或第二非易失性存储单元104中的日志文件恢复内存101中丢失的数据。

其中,高速存储介质第一非易失性存储单元103和第二非易失性存储单元104选型举例如表1所示(仅列出了部分组合):

表1

参考图6,图6为图5中内存读写控制单元105与内存101进行数据读写过程的流程示意图,包括:

其读数据a1的具体过程如下:

a11:linux块设备子系统发起读取业务数据的请求,该读请求携带有lba(logicblockaddress,逻辑块地址)地址;

a12:内存读写控制单元105根据读请求中的lba地址计算出所请求业务数据在内存中的偏移量;

作为一种可选实现方式,本步骤中计算内存中的偏移量可以通过如下方式实现:

如果内存是连续预占且预先申请占用从dram_start到dram_start+dram_size这一段物理内存,则计算方法为:

dram_offset(lba)=dram_start+lba

如果内存是分段预占,且预先申请占用n段物理内存,每段物理内存大小为dram_seg_size,每段物理内存自身是连续的,段与段之间可以不连续;所有的段起始地址存在数组dram_base[n]中;则计算方法为:

dram_offset(lba)=dram_base[lba/dram_seg_size]+lba%dram_seg_size

a13:内存读写控制单元105根据内存偏移量向内存101中请求业务数据;

即内存读写控制单元105根据内存偏移量从内存101获取数据并存入块设备子系统预先分配的缓存中。

a14:内存读写控制单元105获取内存中的数据;

a15:内存读写控制单元105将读取到的数据返回给块设备子系统。

上述读业务数据的过程,因内存101中包含需要读取的全部业务数据,步骤a12的获取内存偏移量的方式与传统缓存查询等缓存管理相比,时间开销和空间开销极小;提升了业务数据读取的效率。

图5中读数据a2的具体过程如下:

a21:块设备子系统发起业务数据写请求,该写请求携带有lba地址;

a22:内存读写控制单元105根据请求中的lba地址计算出所请求的业务数据在内存中的偏移量;

本步骤中计算内存中的偏移量与步骤a12中的实现方式类似,不再赘述。

a23:内存读写控制单元105根据计算后得到的内存偏移量向内存101写入业务数据;

a24:内存101向内存读写控制单元105返回写成功;

a25:内存读写控制单元105将写入内存101的业务数据转换为日志数据以连续写的方式写入第一非持久化存储单元103的日志空间;

其中,第一非易失性存储单元103的日志空间可以采用循环使用模式,通过持久化控制单元106将业务数据的日志文件存储于第二非易失性存储单元104之后,第一非易失性存储单元103中所占相应业务数据的日志文件所占用的空间被释放,被释放的空间变成新的可用日志空间。如表2所述,loc1和loc2之间的空间不可用,loc1之前已经被持久化控制单元106持久化的日志数据所占用的空间被释放。

表2

a26:第一非易失性存储单元103向内存读写控制单元105返回写成功;

a27:向内存读写控制单元105向块设备子系统返回写成功。

以写入的业务数据为为例,说明本发明实施例中将业务数据以随机写的方式写入内存101(dram)中,以及以连续写的方式将该数据转换为日志文件写入第一非易失性存储单元103中的具体实现方式。参考图7,图7为本发明实施例将一个具体的业务数据写入内存101和第一非易失性存储单元103的实现方式示意图。图7中,写入内存101是随机写的方式,即步骤a22可采用随机写的方式;在向第一非易失性存储单元103写数据时,以连续写的方式,即将步骤a25将日志文件“9a2b8c3d2e1f”写入第一非易失性存储单元103的日志区中。

上述写业务数据的过程中,因内存中包含所有需要存储的业务数据,在写处理过程中,没有传统缓存查询、缓存更新等缓存管理的时间开销和空间开销;提升了业务数据存储的效率。以全连续写的方式,能够提升写入第一非持久化存储单元103中业务数据日志文件的效率。所述全连续写的方式,是连续地将数据写入第一非持久化存储单元103,并且在数据写入过程中不读取第一非持久化存储单元103中的数据。

图8-a为图5中从第一非易失性存储单元获取第一数据的日志文件进行数据持久化的流程示意图;如图8-a所示,第二非易失性存储单元104从第一非易失性存储单元103获取日志文件的过程为:

b20’:持久化控制单元106向第一非易失性存储单元103请求要持久化的业务数据的日志文件;

b21’:持久化控制单元106将要持久化将第一非易失性存储单元103中的日志文件写入第二非易失性存储单元104的日志区;

b22’:在写入成功后,持久化存储单元向持久化控制单元106返回写成功消息;

b31’:持久化控制单元106通知内存读写控制单元105释放所述第一非易失性存储单元103中相应日志文件占用的日志空间;

b32’:第一非易失性存储单元103向持久化控制单元106返回释放成功的消息。

图8-b为图5中从从内存获取第一数据的日志文件进行数据持久化的流程示意图,如图8-b所示,第二非易失性存储单元104从内存101获取日志文件的过程为:

b11:内存读写控制单元105通知持久化控制单元106有新的业务数据需要持久化存储,该通知携带有lba地址和数据的大小size;

b12:持久化控制单元106根据lba地址计算需要持久化存储的业务数据在内存的偏移量;

b13:持久化控制单元106依据所述内存的偏移量从内存101中读取需要持久化的数据;

b14:持久化控制单元106成功读取需要持久化的业务数据;

b21:持久化控制单元106将要持久化的业务数据转换成日志格式写入第二非易失性存储单元104的日志区;可选的,持久化控制单元106还可以将要持久化的业务数据直接写入第二非易失性存储单元104的数据区;

该步骤写入第二非易失性存储单元104日志区的方式与步骤a25类似,不再赘述。

b22:在写入成功后,持久化存储单元向持久化控制单元106返回写成功消息;

b31:持久化控制单元106通知内存读写控制单元105释放步骤b21写入的业务数据在第一非易失性存储单元103中占用的日志空间;

b32:第一非易失性存储单元103向持久化控制单元106返回释放成功的消息。

上述业务数据的持久化过程中,在步骤b13,持久化控制单元106直接从内存101读取业务数据,没有从第一非易失性存储单元103读取业务数据,实现了读写分离,减轻了第一非易失性存储单元103的压力,提高了第一非易失性存储单元103存储内存中业务数据的效率。

参考图9,图9为图5中数据整理单元107将内存101中业务数据写入第二非易失性存储单元104数据区的流程示意图,包括:

c11:持久化控制单元106通知数据整理单元107有新的业务数据需要整理,即有新的业务数据需要写入第二非易失性存储单元104的数据区,该通知中携带要整理的业务数据在内存的lba地址以及size;

c12:数据整理单元107根据lba地址计算需要整理的业务数据在出内存偏移量;

该步骤中计算内存偏移量的方式与上述步骤a12类似,不再赘述。

c13:数据整理单元107根据计算出的内存偏移量从内存101中读出需要写入持久化存储单元数据区;

c14:内存101返回读业务数据成功的消息;

c21:数据整理单元107将要整理的数据写入第二非易失性存储单元104的数据区;

c22:第二非易失性存储单元104将写成功的信息返回给数据整理单元107;

c31:数据整理单元107通知持久化控制单元106删除已经写入第二非易失性存储单元104数据区的业务数据在第一非易失性存储单元103中的日志文件,以释放该业务数据占用的第一非易失性存储单元103的空间;

c32:持久化控制单元106返回释放成功的消息给数据整理单元107。

上述实现方法中,在步骤c13,数据整理单元107直接从内存101读取业务数据,减轻了第二非易失性存储单元104的压力,实现了读写分离,提高了第二非易失性存储单元104写入日志文件的效率。

上述步骤c21也可以将待整理的业务数据从第二非易失性存储单元104中的日志空间将待整理的业务数据存储到第二非易失性存储单元104的数据空间;相应的,数据整理单元107通知持久化控制单元106删除已经写入第二非易失性存储单元104数据区的业务数据在日志区的日志文件,以释放该业务数据占用的第二非易失性存储单元104的日志空间。

通过将写入内存101的业务数据以日志文件形式存储在第一非易失性存储单元103的日志区以及第二非易失性存储单元104的日志区,能够在所述数据处理设备100因断电等故障重新启动导致内存101(dram)中的业务数据丢失时,通过这些日志文件,恢复内存101中丢失的数据。作为一种可选方式,数据整理单元107可以先将第二非易失性存储单元104的日志区中还未写入数据区的日志文件转换为业务数据并存储数据区;如果数据处理设备100重启前,还存在未写入第二非易失性存储单元104日志区的业务数据,由于第一非易失性存储单元103存储数据的速度高于第二非易失性存储单元104存储数据的速度,则数据整理单元107从第一非易失性存储单元103的日志区获取其日志文件,并将该日志文件转换为业务数据写入第二非易失性存储单元104的数据区。

参考图10,图10为图5中数据恢复单元108数据恢复过程的流程示意图,

在数据处理设备100初始化阶段,数据恢复单元108调用子数据整理单元107先进行数据整理(步骤d111和步骤d112),以整理异常断电或者正常下电前未整理完的数据。数据恢复过程如下:

d211:数据恢复单元108读取第二非易失性存储单元104数据区的元数据信息,确定待恢复数据的起始位置和大小;

d212:数据恢复单元108依顺序读取业务数据;

d213:第二非易失性存储单元104返回读成功消息;

d221:数据恢复单元108将读取到的业务数据依顺序写入内存101中;

d222:内存101想数据恢复单元108返回写入业务数据成功的消息。

上述顺序读取和写入的方式,还能够达到最大的带宽吞吐,进一步提升了数据读写的速度和效率。

作为一种可选的实现方式,上述数据整理和恢复可以并发进行,即步骤d111和步骤d221可以同时进行。如果在数据整理过程中,内存101中的数据丢失,则用已经整理的数据和未整理的日志文件,恢复内存101中丢失的数据。如果写入内存101中的数据在写入第一非易失性存储单元103后,还未将日志文件写入第二非易失性存储单元104,内存101中的数据丢失,则用第一非易失性存储单元103中的日志文件恢复内存101中丢失的数据。

图5所示的实现方式是在服务器侧实现的技术方案,作为可选的实现方式,本发明实施例的数据处理设备和方法还可以在存储侧和硬件板卡中实现。在存储侧实现上述数据处理设备和方法,能够实现远端共享的内存来存储需要存储的所有业务数据。在硬件板卡中实现,并将具备本发明实施例数据处理设备功能和能实现本发明实施例数据处理方法的硬件板卡接入服务器中实现。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1