一种数据处理方法、装置及电子设备与流程

文档序号:14897323发布日期:2018-07-08 08:47阅读:124来源:国知局

本发明涉及数据传输技术领域,涉及一种数据处理方法、装置及电子设备。



背景技术:

nvdimm也称为非易失性内存,是一种集成了易失性存储器和非易失性存储器的内存。nvdimm兼具了高速数据存取能力和断电不丢失数据的能力,因此,nvdimm得到了广泛的使用。

为了提高电子设备的性能,会在电子设备中同时设置nvdimm和块设备,块设备可以是机械硬盘(hdd)或者固态硬盘(ssd)。在电子设备运行过程中,往往需要将nvdimm存储的数据传输至块设备,例如:电子设备接收到大量数据时,先将数据存储至nvdimm,之后再将数据从nvdimm传输至块设备。

然而,从nvdimm向块设备传输数据的效率较低,需要耗费较长的时间。



技术实现要素:

有鉴于此,本发明提供了一种数据处理方法、装置及电子设备,用以解决现有技术中从nvdimm向块设备传输数据的效率较低,需要耗费较长的时间的问题,其技术方案如下:

一种数据处理方法,应用于电子设备,所述电子设备包括块设备和非易失性内存nvdimm,所述方法包括:

接收数据传输请求,其中,所述数据传输请求指示将所述nvdimm存储的数据传输至所述块设备,所述数据传输请求携带有数据块的标识;

根据所述数据传输请求确定目标数据在所述nvdimm中的存储位置信息,其中,所述目标数据为与所述数据传输请求对应的待传输数据;

以字节访问的方式将所述nvdimm中由所述存储位置信息所指示的所述目标数据直接传输至所述块设备。

其中,所述根据所述数据传输请求确定目标数据在所述nvdimm中的存储位置信息,包括:

根据所述数据传输请求携带的数据块的标识,确定所述目标数据的字节偏移量和字节数。

可选地,所述数据处理方法,还包括:

在将所述目标数据传输至所述块设备后,删除所述nvdimm中存储的所述目标数据。

可选地,所述数据处理方法,还包括:

在将所述目标数据传输至所述块设备后,释放所述目标数据在所述nvdimm中所占用的空间。

一种数据处理装置,应用于电子设备,所述电子设备包括块设备和非易失性内存nvdimm;

所述数据处理装置包括:接收模块、确定模块和传输模块;

所述接收模块,用于接收数据传输请求,其中,所述数据传输请求指示将所述nvdimm存储的数据传输至所述块设备,所述数据传输请求携带有数据块的标识;

所述确定模块,用于根据所述数据传输请求确定目标数据在所述nvdimm中的存储位置信息,其中,所述目标数据为与所述数据传输请求对应的待传输数据;

所述传输模块,用于以字节访问的方式将所述nvdimm中由所述存储位置信息所指示的所述目标数据直接传输至所述块设备。

其中,所述确定模块,具体用于根据所述数据传输请求携带的数据块的标识确定目标数据的字节偏移量和字节数。

一种电子设备,包括:块设备、非易失性内存nvdimm和处理器;

所述处理器,用于接收数据传输请求,其中,所述数据传输请求指示将所述nvdimm存储的数据传输至所述块设备,所述数据传输请求携带有数据块的标识;以及,根据所述数据传输请求确定目标数据在所述nvdimm中的存储位置信息,并以字节访问的方式将所述nvdimm中由所述存储位置信息所指示的所述目标数据直接传输至所述块设备,其中,所述目标数据为与所述数据传输请求对应的待传输数据。

其中,所述处理器在根据所述数据传输请求确定目标数据在所述nvdimm中的存储位置信息时,具体用于根据所述数据传输请求携带的数据块的标识确定所述目标数据的字节偏移量和字节数。

优选地,所述处理器,还用于在将所述目标数据传输至所述块设备后,删除所述nvdimm中存储的所述目标数据。

优选地,所述处理器,还用于在将所述目标数据传输至所述块设备后,释放所述目标数据在所述nvdimm中所占用的空间。

上述技术方案具有如下有益效果:

本发明提供的数据处理方法、装置及电子设备,基于nvdimm可以按字节访问的特性,可直接将nvdimm中的数据传输至块设备,而不需要电子设备中的块设备层从nvdimm中读取数据块,将数据块传输至电子设备的内存,之后再由内存传输至块设备,因此,能够提升从nvdimm向块设备传输数据的效率,缩短传输数据所耗费的时间。

附图说明

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

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

图2为现有技术中将nvdimm中的数据块传输至块设备的传输过程示意图;

图3为本发明实施例中将nvdimm中的数据块传输至块设备的传输过程示意图;

图4为本发明实施例提供的数据处理装置的结构示意图;

图5为本发明实施例提供的电子设备的结构示意图。

具体实施方式

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

nvdimm是可以按字节访问的高速设备,然而现有技术中,在内核态,nvdimm仅以块设备的形式存在,因此,在内核态时,硬盘和nvdimm直接的数据传输依然走的是块级拷贝路径,块级拷贝需要将数据块拷贝到内存,即,将nvdimm中的数据传输至硬盘的过程为:先将nvdimm中的数据块拷贝至内存,再将拷贝至内存中的数据传输至硬盘,这种传输方式一方面浪费了高速设备nvdimm的性能,另一方面导致传输数据的效率较低。

现有技术中,数据可以由内存直接传输至硬盘,而nvdimm实质也是内存,理论上,数据应该也可以由nvdimm直接传输至硬盘,从这点出发,本发明实施例提供了一种数据处理方法,该数据处理方法的基本思想即为:充分利用nvdimm本身为内存,也可以按字节访问的特性,直接从nvdimm传输数据到硬盘,而不经内存,从而提高数据传输效率。以下对本发明实施例提供的数据处理方法进行说明。

请参阅图1,示出了本发明实施例提供的数据处理方法的流程示意图,该数据处理方法应用于电子设备,该电子设备可以包括块设备和非易失性内存nvdimm,该数据处理方法可以包括:

步骤s101:接收数据传输请求。

其中,数据传输请求指示将nvdimm存储的数据传输至块设备,数据传输请求携带有数据块的标识,块设备可以但不限定为hdd、ssd等。

步骤s102:根据数据传输请求确定目标数据在nvdimm中的存储位置信息。

具体地,基于nvdimm的按字节访问特性,根据数据传输请求确定目标数据在nvdimm中的存储位置信息。其中,目标数据为与数据传输请求对应的待传输数据。目标数据在nvdimm中的存储位置信息为按字节访问方式访问nvdimm时目标数据的存储位置信息。

在本实施例中,根据数据传输请求确定目标数据在nvdimm中的存储位置信息,包括:根据数据传输请求携带的数据块的标识,确定目标数据的字节偏移量和字节数,其中,数据块的标识可以为数据块的位置标识。需要说明的是,由于现有技术中从nvdimm中读取的是数据块,即读取数据的方式为按块读取,而在本方案中,从nvdimm中读取数据的方式为按字节读取,因此,需要通过按块访问的地址确定按字节访问的地址。

步骤s103:以字节访问的方式将nvdimm中由存储位置信息所指示的目标数据直接传输至块设备。

需要说明的是,现有技术中,为了完成数据块的传输,必须在内存里面组装一个bio(blockio)数据结构,bio数据结构中有一个指针指向数据所在的内存页,而bio数据结构的组装必须将nvdimm中的数据块拷贝到内存的页中才能完成,请参阅图2,示出了现有技术中将nvdimm中的数据块传输至块设备(如hdd、ssd)中的传输过程示意图。

与现有技术相比,本发明实施例取消了将nvdimm中的数据块拷贝到内存中这一步骤,而是通过nvdimm按字节访问的特性,基于nvdimm中的目标数据(待传输数据块)所在位置确定目标数据的字节偏移量和字节数,将目标数据映射到虚拟内存中,而bio数据结构中的指针只需要指向这个虚拟内存页即可完成组装,进而以字节访问的方式将nvdimm中的目标数据直接传输至块设备(如hdd、ssd等),请参阅图3,示出了本发明实施例中将nvdimm中的数据块传输至块设备(如hdd、ssd等)中的传输过程示意图。

对比图2和图3可以看出,现有技术中将nvdimm中的数据读取到内存之后,bio数据结构中的指针指向的是内存中的内存页,而本发明实施例中bio数据结构中的指针直接指向了nvdimm,这意味着可以直接从nvdimm中读取数据然后传输至块设备,而不需要经过内存,传输过程更加简单。

本发明实施例提供的数据处理方法,基于nvdimm可以按字节访问的特性,可直接将nvdimm中的数据传输至块设备,而不需要电子设备中的块设备层从nvdimm中读取数据块,将数据块传输至电子设备的内存,之后再由内存传输至块设备,由此可见,本发明实施例充分利用nvdimm的性能,可以避免跨越块设备层的内存拷贝,从而能够提升从nvdimm向块设备传输数据的效率,缩短传输数据所耗费的时间。

可以了解的是,为了充分利用nvdimm的存储空间,使新的数据能够存储进来,优选地,在将nvdimm中的目标数据存储至块设备(如hdd、ssd等)后,上述实施例提供的数据处理方法还可以包括:删除nvdimm中存储的目标数据。

进一步地,在将目标数据传输至块设备后,上述实施例提供的数据处理方法还可以包括:释放目标数据在nvdimm中所占用的空间。

与上述数据处理方法相对应,本发明实施例还提供了一种数据处理装置,该数据处理装置应用于电子设备,该电子设备包括块设备和非易失性内存nvdimm,请参阅图4,示出了该数据处理装置的结构示意图,该数据处理装置可以包括:接收模块401、确定模块402和传输模块403。

接收模块401,用于接收数据传输请求。

其中,数据传输请求指示将nvdimm存储的数据传输至块设备,数据传输请求携带有数据块的标识,块设备可以但不限定为hdd、ssd等。

确定模块402,用于根据接收模块401接收的数据传输请求确定目标数据在nvdimm中的存储位置信息。

其中,目标数据为与数据传输请求对应的待传输数据。

传输模块403,用于以字节访问的方式将nvdimm中由确定模块402确定存储位置信息所指示的目标数据直接传输至块设备。

本发明实施例提供的数据处理装置,基于nvdimm可以按字节访问的特性,可直接将nvdimm中的数据传输至块设备,而不需要电子设备中的块设备层从nvdimm中读取数据块,将数据块传输至电子设备的内存,之后再由内存传输至块设备,由此可见,本发明实施例充分利用nvdimm的性能,可以避免跨越块设备层的内存拷贝,从而能够提升从nvdimm向块设备传输数据的效率,缩短传输数据所耗费的时间。

在上述实施例提供的数据处理装置中,确定模块402,具体用于根据所述数据传输请求携带的数据块的标识确定目标数据的字节偏移量和字节数。

优选地,上述实施例提供的数据处理装置还可以包括:删除模块。

删除模块,用于在传输模块403将目标数据传输至块设备后,删除nvdimm中存储的目标数据。

优选地,上述实施例提供的数据处理装置还可以包括:存储空间释放模块。

存储空间释放模块,用于在传输模块403将目标数据传输至块设备后,释放目标数据在nvdimm中所占用的存储空间。

本发明实施例还提供了一种电子设备,请参阅图5,示出了该电子设备的结构示意图,该电子设备可以包括:块设备501、非易失性内存nvdimm502和处理器503。

处理器503,用于接收数据传输请求,数据传输请求指示将nvdimm存储的数据传输至块设备501,数据传输请求携带有数据块的标识;以及,根据数据传输请求确定目标数据在nvdimm502中的存储位置信息,并以字节访问的方式将nvdimm502中由存储位置信息所指示的目标数据直接传输至块设备501,其中,目标数据为与数据传输请求对应的待传输数据。

本发明实施例提供的电子设备,基于nvdimm可以按字节访问的特性,可直接将nvdimm中的数据传输至块设备,而不需要从nvdimm中读取数据块,将数据块传输至电子设备的内存,之后再由内存传输至块设备,由此可见,本发明实施例充分利用nvdimm的性能,可以避免跨越块设备层的内存拷贝,从而能够提升从nvdimm向块设备传输数据的效率,缩短传输数据所耗费的时间。

在一种可能的实现方式中,上述实施例提供的电子设备中,处理器503在根据数据传输请求确定目标数据在nvdimm中的存储位置信息时,具体用于根据数据传输请求携带的数据块的标识确定目标数据的字节偏移量和字节数。

优选地,在上述实施例提供的电子设备中,处理器503还用于在将目标数据传输至块设备后,删除nvdimm中存储的目标数据。

优选地,在上述实施例提供的电子设备中,处理器503,还用于在将目标数据传输至块设备后,释放目标数据在nvdimm中所占用的空间。

另外,上述实施例提供的电子设备还可以包括:总线、通信接口、输入设备和输出设备。块设备、nvdimm502、处理器、通信接口、输入设备和输出设备通过总线相互连接。

总线可包括一通路,在计算机系统各个部件之间传送信息。

输入设备可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入装置、触摸屏、计步器或重力感应器等。

输出设备可包括允许输出信息给用户的装置,例如显示屏、打印机、扬声器等。

通信接口可包括使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(ran),无线局域网(wlan)等。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

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

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

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

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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