CN114356219A - 数据处理方法、存储介质和处理器 - Google Patents

数据处理方法、存储介质和处理器 Download PDF

Info

Publication number
CN114356219A
CN114356219A CN202111495805.4A CN202111495805A CN114356219A CN 114356219 A CN114356219 A CN 114356219A CN 202111495805 A CN202111495805 A CN 202111495805A CN 114356219 A CN114356219 A CN 114356219A
Authority
CN
China
Prior art keywords
storage device
target
persistent memory
target data
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111495805.4A
Other languages
English (en)
Inventor
许�鹏
吴忠杰
杜宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202111495805.4A priority Critical patent/CN114356219A/zh
Publication of CN114356219A publication Critical patent/CN114356219A/zh
Priority to PCT/CN2022/131054 priority patent/WO2023103704A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据处理方法、存储介质和处理器。其中,应用于存储引擎,包括:确定目标数据从目标应用传输至存储设备的第一持久化内存区域;向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。本发明解决了对数据进行存储效率低的技术问题。

Description

数据处理方法、存储介质和处理器
技术领域
本发明涉及数据处理领域,具体而言,涉及一种数据处理方法、存储介质和处理器。
背景技术
目前,在存储引擎中,通常先将数据先传输到主机内存,或非易失性设备(ApachePass,简称为AEP)内存,然后再将数据从主机内存或AEP中转发至存储设备,为服务质量(QoS)优化带来了复杂性,以及高成本,从而存在对数据进行存储效率低的技术问题。
针对上述的对数据进行存储效率低的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据处理方法、存储介质和处理器,以至少解决对数据进行存储效率低的技术问题。
根据本发明实施例的一个方面,提供了一种数据处理方法。该方法可以应用于存储引擎,包括:确定目标数据从目标应用传输至存储设备的第一持久化内存区域;向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。
根据本发明实施例的另一个方面,提供了另一种数据处理方法。该方法可以应用于存储设备,包括:在存储设备的第一持久化内存区域接收来自目标应用的目标数据;基于来自存储引擎的目标指令,将目标数据从第一持久化内存区域写入至存储设备的存储器中。
根据本发明实施例的另一个方面,提供了另一种数据处理方法。该方法可以应用于存储引擎,包括:响应作用于操作界面上的第一确定指令,确定目标数据从目标应用传输至存储设备的第一持久化内存区域;在操作界面上显示目标数据的存储结果,其中,存储结果用于表示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。
根据本发明实施例的另一个方面,提供了另一种数据处理方法。该方法可以应用于存储引擎,包括:通过调用第一接口确定目标数据,其中,第一接口包括第一参数,第一参数的参数值为目标数据;确定目标数据从目标应用传输至存储设备的第一持久化内存区域;向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中;通过调用第二接口输出存储结果,其中,第二接口包括第二参数,第二参数的参数值为存储结果,存储结果用于表示存储设备将目标数据从第一持久化内存区域写入至存储器中。
根据本发明实施例的另一个方面,提供了一种数据处理装置。该装置可以应用于存储引擎,包括:第一确定单元,用于确定目标数据从目标应用传输至存储设备的第一持久化内存区域;第一发送单元,用于向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。
根据本发明实施例的另一个方面,提供了另一种数据处理装置。该装置可以应用于存储设备,包括:接收单元,用于在存储设备的第一持久化内存区域接收来自目标应用的目标数据;写入单元,用于基于来自存储引擎的目标指令,将目标数据从第一持久化内存区域写入至存储设备的存储器中。
根据本发明实施例的另一个方面,提供了另一种数据处理装置。该装置可以应用于存储引擎,包括:第二确定单元,用于响应作用于操作界面上的第一确定指令,确定目标数据从目标应用传输至存储设备的第一持久化内存区域;显示单元,用于在操作界面上显示目标数据的存储结果,其中,存储结果用于表示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。
根据本发明实施例的另一个方面,提供了另一种数据处理装置。该装置可以应用于存储引擎,包括:第一调用单元,用于通过调用第一接口确定目标数据,其中,第一接口包括第一参数,第一参数的参数值为目标数据;第三确定单元,用于确定目标数据从目标应用传输至存储设备的第一持久化内存区域;第二发送单元,用于向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中;第二调用单元,用于通过调用第二接口输出存储结果,其中,第二接口包括第二参数,第二参数的参数值为存储结果,存储结果用于表示存储设备将目标数据从第一持久化内存区域写入至存储器中。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质。该计算机可读存储介质包括存储的程序,其中,在程序被处理器运行时控制计算机可读存储介质所在设备执行本发明实施例的数据处理方法。
根据本发明实施例的另一方面,还提供了一种处理器。该处理器用于运行程序,其中,程序运行时执行本发明实施例的数据处理方法。
在本发明实施例中,确定目标数据从目标应用传输至存储设备的第一持久化内存区域;向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。也就是说,本申请通过使用存储设备的持久化内存区域的功能来优化数据写入,可以使得目标数据直接从持久化内存区域传输到存储设备的存储器,而不是先传输到主机内存(或AEP),然后再转发到存储设备,从而解决了对数据进行存储的效率低的技术问题,达到了提高对数据进行存储的效率的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种用于实现数据处理方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本发明实施例的一种数据处理方法的流程图;
图3是根据本发明实施例的一种数据处理方法的流程图;
图4是根据本发明实施例的一种数据处理方法的流程图;
图5是根据本发明实施例的一种数据处理方法的流程图;
图6是根据相关技术中的一种数据写入的方法的流程图;
图7是根据相关技术中的另一种数据写入的方法的流程图;
图8是根据本发明实施例的一种数据写入的方法的流程图;
图9是根据本发明实施例的一种数据处理装置的示意图;
图10是根据本发明实施例的另一种数据处理装置的示意图;
图11是根据本发明实施例的另一种数据处理装置的示意图;
图12是根据本发明实施例的另一种数据处理装置的示意图;
图13是根据本发明实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
远程过程调用协议(Remote Procedure Call Protocol,简称为RPC),是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议;
直接存储器访问(Direct Memory Access,简称为DMA),允许不同速度的硬件装置来进行,而不需要依赖于中央处理器(Central Processing Unit,简称为CPU)的大量中断负载;
持久内存区域(PMR),在非易失性内存主机控制器接口规范(Non-VolatileMemory express,简称为NVMe)规范中定义,为高速串行计算机扩展总线标准(PeripheralComponent Interconnect Expres,简称为PCIe)存储设备提供了一种将其内部内存映射到系统PCIe地址空间的方法;
NAND闪存(Flash),是一种比硬盘驱动器更好的存储设备,在不超过4GB的低容量应用中表现得尤为明显;
动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),为系统内存,其只能将数据保持很短的时间;
非易失性设备(Apache Pass,简称为AEP)内存,为一种新的非易失性内存,可以通过双列直插式存储模块(Dual-Inline-Memory-Modules,简称为DIMM)接口访问,它可以按字节寻址。
实施例1
根据本发明实施例,还提供了一种数据处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1是根据本发明实施例的一种用于实现数据处理方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的数据处理方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
图2是根据本发明实施例的一种数据处理方法的流程图。如图2所示,该方法可以应用于存储引擎,可以包括以下步骤:
步骤S202,确定目标数据从目标应用传输至存储设备的第一持久化内存区域。
在本发明上述步骤S202提供的技术方案中,目标数据可以为待写入存储设备的数据,其可以为目标应用的数据,其中,目标应用可以执行应用程序(Application)。
可选地,该实施例的存储引擎可以接收目标应用发送的第一目标请求,该目标请求可以包括数据写入命令,以使得存储引擎确定需要进行数据写入任务。可选地,该实施例的存储引擎可以接收目标应用通过远程过程调用协议(Remote Procedure CallProtocol,简称为RPC)来发送上述目标请求,从而该目标请求可以为RPC请求,其中,远程过程调用协议是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
可选地,该实施例的存储引擎发起第二目标请求,该第二目标请求可以为直接存储器访问(Direct Memory Access,简称为DMA)请求,用于指示目标数据可以从目标应用传输至存储设备的第一持久化内存区域(PMR)。其中,DMA允许不同速度的硬件装置来进行,而不需要依赖于中央处理器(Central Processing Unit,简称为CPU)的大量中断负载。可选地,上述存储设备可以为非易失性内存主机控制器接口规范(Non-Volatile Memoryexpress,简称为NVMe)设备。
在该实施例中,上述第一持久化内存区域是在NVMe规范中定义,可以为使用了高速串行计算机扩展总线标准(Peripheral Component Interconnect Expres,简称为PCIe)的存储设备提供了一种将其内部内存映射到系统PCIe地址空间的方法,其可以为一种内存级读写速度、断电后数据不会丢失的存储区域,并且可被主机和其它设备访问到。
可选地,在该实施例中,在目标数据已经从目标应用传输至存储设备的第一持久化内存区域之后,存储引擎可以获取到由网卡发送的通知消息,该通知消息用于表示目标数据已经从目标应用传输至存储设备的第一持久化内存区域,从而使得存储引擎确定了目标数据从目标应用传输至存储设备的第一持久化内存区域。其中,网卡可以为安全智能网卡(SmartNIC)。
步骤S204,向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。
在本发明上述步骤S204提供的技术方案中,在确定目标数据从目标应用传输至存储设备的第一持久化内存区域之后,可以向存储设备发送目标指令,该目标指令可以为非易失性内存主机控制器接口规范(Non-Volatile Memory express,简称为NVMe)命令,可以用于指示将上述目标数据从存储设备的第一持久化内存区域写入存储设备的存储器中,该存储器可以存储设备的内部存储器。
在该实施例中,通过目标指令指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中,由于目标数据是存储在存储设备的内部存储器中,从而不需要额外的PCIe流量,这样就可以节省PCIe矩阵的开销和主机内存带宽,或者节省非易失性设备(Apache Pass,简称为AEP)的带宽。
通过本申请上述步骤S202至步骤S204,确定目标数据从目标应用传输至存储设备的第一持久化内存区域;向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。也就是说,本申请通过使用存储设备的持久化内存区域的功能来优化数据写入,可以使得目标数据直接从持久化内存区域传输到存储设备的存储器,而不是先传输到主机内存(或AEP),然后再转发到存储设备,从而解决了对数据进行存储的效率低的技术问题,达到了提高对数据进行存储的效率的技术效果。
下面对该实施例的上述方法进行进一步地介绍。
作为一种可选的实施方式,该方法还包括:确定与目标数据相关联的第二持久化内存区域;向第二持久化内存区域写入与目标数据相对应的元数据,其中,元数据用于对目标数据进行描述。
在该实施例中,在确定目标数据从目标应用传输至存储设备的第一持久化内存区域之后,可以确定与目标数据相关联的第二持久化内存区域(root ComplexPMR),该第二持久化内存区域也是在NVMe规范中定义,为使用了PCIe的存储设备提供了一种将其内部内存映射到系统PCIe地址空间的方法,其也可以为一种内存级读写速度、断电后数据不会丢失的存储区域,并且可以被主机和其它设备访问到。可选地,该第二持久化内存区域在整个PCIe体系结构中处于核心位置,它是输入输出(I/O)层次系统与CPU/内存系统连接的最顶层。
可选地,该实施例的存储引擎通过与目标数据相关联的第二持久化内存区域写入与目标数据相对应的元数据(Metadata),该元数据也可以称为中介数据、中继数据,为描述目标数据的数据,其可以为描述目标数据的属性(property)的信息,用于支持如指示存储位置、历史数据、资源查找、文件记录等功能。可选地,该实施例的元数据可以是一种电子式目录,为了达到编制目录的目的,可以描述并收藏数据的内容或特色,进而达成协助数据检索的目的。
作为一种可选的实施方式,向第二持久化内存区域写入与目标数据相对应的元数据,包括:通过处理器向第二持久化内存区域写入元数据,其中,处理器对元数据未缓存。
在该实施例中,在实现向第二持久化内存区域写入与目标数据相对应的元数据时,可以是存储引擎的CPU通过与目标数据相关联的第二持久化内存区域写入与目标数据相对应的元数据。在该实施例中,由于CPU对PCIe空间的写是不可缓存的,因而,该实施例的CPU对元数据未缓存,比如,可以不需要刷新缓存线,避免了相关技术中的CPU的写内存是可缓存的,使得CPU需要刷新缓存线。
作为一种可选的实施方式,向第二持久化内存区域写入与目标数据相对应的元数据,包括:向第二持久化内存区域回写入元数据。
在该实施例中,在实现向第二持久化内存区域写入与目标数据相对应的元数据时,可以是利用PCIe写事务实现将目标数据写入第二持久化内存区域,其中,PCIe写事务可以是一个回写操作(write back operation)。
作为一种可选的实施方式,该方法还包括:对第二持久化内存区域进行屏障操作;向第二持久化内存区域回写入元数据,包括:向经屏障操作后的第二持久化内存区域回写入元数据。
在该实施例中,由于PCIe写事务是一个回写操作,为了确保上述元数据到达存储至第二持久化内存区域(PMR),该实施例可以对第二持久化内存区域进行屏障操作(barrier operation)。
作为一种可选的实施方式,对第二持久化内存区域进行屏障操作,包括:基于目标寄存器对第二持久化内存区域进行屏障操作。
在该实施例中,在实现对第二持久化内存区域进行屏障操作时,可以是基于目标寄存器(PMRWBM寄存器)来对第二持久化内存区域进行屏障操作,该目标寄存器可以是在第二持久化内存区域中定义的用于实现对第二持久化内存区域进行屏障操作的寄存器。
作为一种可选的实施方式,该方法还包括:向目标应用发送目标消息,其中,目标消息用于表示已完成对第二持久化内存区域进行屏障操作。
在该实施例中,在基于目标寄存器完成对第二持久化内存区域进行屏障操作之后,存储引擎可以向目标应用发送目标消息,该目标消息可以为RPC响应消息,通过其来响应目标应用,与使得目标应用确定存储引擎已完成对第二持久化内存区域进行屏障操作。
作为一种可选的实施方式,该方法还包括:确定目标数据在存储器中写入成功,则对第一持久化内存区域中目标数据对应的缓冲资源进行释放操作。
在该实施例中,在目标数据在存储设备中写入成功后,存储设备可以向存储引擎发送通知消息,该通知消息用于表示存储设备对目标数据写入成功,比如,存储设备对目标数据安全存储,则可以对第一持久化内存区域中目标数据对应的缓冲资源进行释放操作,该缓冲区域可以为PMR资源(PMR resource)。
存储设备可以为寄存器提供存储空间,并保证该存储空间的非易失性。制定控制器内部存储器(DRAM或SRAM)的一部分,并在发生断电时使用电容器(Capacitor)将数据刷新到NAND闪存上。由于电容有限,容量不会很大,一般有几MB。其中,NAND闪存是一种比硬盘驱动器更好的存储设备,在不超过4GB的低容量应用中表现得尤为明显。
在相关技术中,NV-RAM like可以支持更大的容量,设备将保持刷新数据从PMR到NAND,以同步数据。后端NAND通道带宽将成为PMR DMA带宽的瓶颈。
在另一种相关技术中,可以将非易失性(Non-Volatile)的磁性随机存储器(Magnetic Random Access Memory,简称为MRAM)(或X3D)嵌入存储设备并映射到PMR空间,但与将其用作可由CPU更快访问的双列直插式存储模块(Dual-Inline-Memory-Modules,简称为DIMM)相比,这并不划算。
在该实施例中,对于不同的场景,存储引擎可以选择不同的PMR进行实现,从而在设备成本、用例和实现复杂性之间提供灵活性。与相关技术中的AEP解决方案相比,该实施例使用PMR有以下好处:存储引擎不涉及额外的设备,使系统设备管理更加容易;不占用系统资源,AEP需要从系统中取出DIMM插槽,为其他组件(比如,DRAM)留下较少的插槽,其中,存储引擎中有AEP设备,则成本远高于电容器覆盖的PMR解决方案,虽然它的尺寸大于电容器覆盖的PMR,由于AEP没有NVMe存储设备大,它仍然是存储引擎中的缓存,仍然需要缓存刷新,因此需要从AEP到存储设备的额外数据移动,这被认为是与存储设备相比的额外数据传输。
本发明实施例还提供了另一种数据处理方法。
图3是根据本发明实施例的一种数据处理方法的流程图。如图3所示,该方法可以应用于存储设备,可以包括以下步骤:
步骤S302,在存储设备的第一持久化内存区域接收来自目标应用的目标数据。
在本发明上述步骤S302提供的技术方案中,目标数据可以为待写入存储设备的数据,其可以为目标应用的数据,其中,目标应用可以执行应用程序。
可选地,该实施例的存储引擎可以接收目标应用发送的第一目标请求,该目标请求可以包括数据写入命令,以使得存储引擎确定需要进行数据写入任务。可选地,存储引擎发起第二目标请求,该第二目标请求用于指示目标数据可以从目标应用传输至存储设备的第一持久化内存区域,从而在存储设备的第一持久化内存区域接收来自目标应用的目标数据。
在该实施例中,在存储设备的第一持久化内存区域接收来自目标应用的目标数据之后,SmartNIC可以将通知消息发送至存储引擎,该通知消息用于表示目标数据已经从目标应用传输至存储设备的第一持久化内存区域,从而使得存储引擎确定了目标数据从目标应用传输至存储设备的第一持久化内存区域。
步骤S304,基于来自存储引擎的目标指令,将目标数据从第一持久化内存区域写入至存储设备的存储器中。
在本发明上述步骤S304提供的技术方案中,在存储设备的第一持久化内存区域接收来自目标应用的目标数据之后,可以基于来自存储引擎的目标指令,将目标数据从第一持久化内存区域写入至存储设备的存储器中。
在该实施例中,该目标指令可以为NVMe命令,可以用于指示将上述目标数据从存储设备的第一持久化内存区域写入存储设备的存储器中。存储设备可以响应上述目标指令,将目标数据从第一持久化内存区域写入至存储设备的存储器中。
在该实施例中,通过目标指令指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中,由于目标数据是存储在存储设备的内部存储器中,从而不需要额外的PCIe流量,这样就可以节省PCIe矩阵的开销和主机内存带宽,或者节省AEP的带宽。
本发明实施例还提供了另一种数据处理方法。
图4是根据本发明实施例的一种数据处理方法的流程图。如图4所示,该方法可以应用于存储引擎,可以包括以下步骤:
步骤S402,响应作用于操作界面上的第一确定指令,确定目标数据从目标应用传输至存储设备的第一持久化内存区域。
在本发明上述步骤S402提供的技术方案中,用户可以在操作界面上触发第一确定指令,该第一确定指令用于确定目标数据从目标应用传输至存储设备的第一持久化内存区域,进而响应该第一确定指令,确定目标数据从目标应用传输至存储设备的第一持久化内存区域。
可选地,该实施例的存储引擎可以接收目标应用发送的第一目标请求,该目标请求可以包括数据写入命令,以使得存储引擎确定需要进行数据写入任务。可选地,存储引擎发起第二目标请求,该第二目标请求用于指示目标数据可以从目标应用传输至存储设备的第一持久化内存区域,从而在存储设备的第一持久化内存区域接收来自目标应用的目标数据。
在该实施例中,在存储设备的第一持久化内存区域接收来自目标应用的目标数据之后,SmartNIC可以将通知消息发送至存储引擎,该通知消息用于表示目标数据已经从目标应用传输至存储设备的第一持久化内存区域,进而响应作用于操作界面上的第一确定指令,确定目标数据从目标应用传输至存储设备的第一持久化内存区域。
步骤S404,在操作界面上显示目标数据的存储结果,其中,存储结果用于表示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。
在本发明上述步骤S404提供的技术方案中,在响应作用于操作界面上的第一确定指令,确定目标数据从目标应用传输至存储设备的第一持久化内存区域之后,可以在操作界面上显示目标数据的存储结果,该存储结果可以是基于来自存储引擎的目标指令,将目标数据从第一持久化内存区域写入至存储设备的存储器中的结果。
在该实施例中,通过目标指令指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中,由于目标数据是存储在存储设备的内部存储器中,从而不需要额外的PCIe流量,这样就可以节省PCIe矩阵的开销和主机内存带宽,或者节省AEP的带宽。
本发明实施例还提供了另一种数据处理方法。
图5是根据本发明实施例的一种数据处理方法的流程图。如图5所示,该方法可以应用于存储引擎,可以包括以下步骤:
步骤S502,通过调用第一接口确定目标数据,其中,第一接口包括第一参数,第一参数的参数值为目标数据。
在本发明上述步骤S502提供的技术方案中,第一接口可以是存储引擎与客户端之间进行数据交互的接口。客户端可以将目标数据传入第一接口,作为第一接口的一个第一参数,实现存储引擎确定目标数据的目的。
步骤S504,确定目标数据从目标应用传输至存储设备的第一持久化内存区域。
步骤S506,向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。
步骤S508,通过调用第二接口输出存储结果,其中,第二接口包括第二参数,第二参数的参数值为存储结果,存储结果用于表示存储设备将目标数据从第一持久化内存区域写入至存储器中。
在本发明上述步骤S508提供的技术方案中,第二接口可以是存储引擎与客户端之间进行数据交互的接口,存储引擎可以将存储结果传入第二接口,作为第二接口的一个参数,实现将存储结果下发至客户端的目的。
该实施例通过使用存储设备的持久化内存区域的功能来优化数据写入,可以使得目标数据直接从持久化内存区域传输到存储设备的存储器,而不是先传输到主机内存(或AEP),然后再转发到存储设备;另外,该实施例可以通过使用PMR特性,存储引擎不需要部署其他组件,比如,不需要部署AEP或NV-RAM(而这些组件为服务质量的优化带来了复杂性和高成本),从而解决了对数据进行存储的效率低的技术问题,达到了提高对数据进行存储的效率的技术效果。
实施例2
下面对该实施例的上述方法的优选实施方式进行进一步介绍。
QoS在存储行业变得越来越重要。在存储引擎中,NVMe设备可以被部署为存储设备。由于NVMe存储设备是块设备,数据需要以逻辑块为单位进行传输,其大小可以为4096字节。存储引擎在响应用户操作之前,需要等待NVMe存储设备的确认写入命令。NVMe协议栈通常需要8到12微秒,这对QoS来说是一个很大的损失,尤其是在低队列深度的情况下。
在相关技术中,存在Intel AEP解决方法。该方法的内存可提供GB级别的非易失性内存(NVM)数据缓存。该方法像DIMM插槽一样占用系统资源,并在管理设备上带来额外的工作(例如:数据同步,设备管理等),而且成本相对较高。
在另一种相关技术中,存在NV-RAM的解决方法。该方法是将DRAM与NAND闪存子系统结合以定期同步数据。这还需要一个大电容,以确保在发生断电时,数据可以刷新到NANDFlash上。该方法的大小也是GB级别的,其将占用DIMM插槽,并且需要额外的精力来管理新设备。由于DRAM+NAND+电容器成本很高,因此成本非常高。
在另一种相关技术中,存在NV-RAM like的解决方法。该方法可以支持更大的容量,设备将保持从PMR到NAND的刷新数据以同步数据。后端NAND通道带宽将成为PMR DMA带宽的瓶颈。
在另一种相关技术中,可以将MRAM嵌入NVMe设备并映射到PMR空间,而将其与用作CPU以更快访问的DIMM相比,其成本效率不高。
图6是根据相关技术中的一种数据写入的方法的流程图。如图6所示,该方法可以包括以下步骤:
步骤S601,目标应用向存储引擎发送一个数据写命令的RPC请求。
步骤S602,存储引擎发起DMA请求。
存储引擎发起DMA请求,以将目标数据从目标应用传输到存储引擎的DMA。
步骤S603,在目标数据传输完成后,SmartNIC会通知存储引擎。
步骤S604,存储引擎发送NVMe命令,将存储引擎的主机内存中的数据写入存储设备。
步骤S605,存储设备在目标数据在存储设备中安全后通知存储引擎。
步骤S606,在存储引擎得到存储设备的确认后,释放缓存资源。
步骤S607,在从存储设备获得确认后,存储引擎将用RPC Response消息响应目标应用。
在存储引擎的写数据路径中,主要的延迟发生在存储设备上,通常从发送NVMe命令到获得NVMe响应需要8~12微秒。
为了节省存储设备的主要延迟成本,可以采用内存接口的AEP存储设备,与块设备NVMe存储设备相比,AEP具有字节可寻址的特性,在数据访问时可以具有更高的灵活性和更低的延迟成本。
图7是根据相关技术中的另一种数据写入的方法的流程图。如图7所示,该方法可以包括以下步骤:
步骤S701,目标应用发送一个数据写命令的RPC请求。
步骤S702,存储引擎发起DMA请求,将目标数据从目标应用传输到存储引擎的AEP。
步骤S703,在目标数据传输完成后,SmartNIC会通知存储引擎。
步骤S704,存储引擎CPU通过内存接口将元数据写入与目标数据相关联的AEP。
由于CPU写内存是可缓存的,CPU需要刷新缓存线,以确保元数据同步到AEP设备。
步骤S705,在CPU刷新完成后,存储引擎将用RPC Response消息响应目标应用。
步骤S706,存储引擎发送NVMe命令,将目标数据从存储引擎的AEP写入存储设备。
步骤S707,存储设备在数据在存储设备中安全后通知存储引擎。
步骤S708,存储引擎可以释放AEP缓冲资源。
显然,在目标数据传输到AEP,并将元数据同步到AEP之后,就可以立即确认目标应用的写请求。
Intel AEP DIMM Optane内存可以提供GB级别的NVM数据缓存。虽然它占用系统资源,如内存插槽,并带来额外的管理设备(比如,数据同步,设备管理等)。而且成本相对较高。另外,刷新CPU缓存会对其它任务产生很大的副作用。
该实施例提出了一种新的解决方案,可以通过使用PMR优化存储引擎的QoS,通过使用NVMe PMR(持久内存区域)功能来优化写入延迟,可以用于保护盘古记录存储的网络之间互连的协议(Internet Protocol,简称为IP)。
该实施例的PMR功能可以为NVMe存储设备提供了一种将其内部存储器映射到PCIe矩阵的方法,以便数据可以直接从SmartNIC传输到NVMe存储设备,而不是先传输到主机内存(或AEP),然后再转发到存储设备。
图8是根据本发明实施例的一种数据写入的方法的流程图。如图8所示,该方法可以包括以下步骤:
步骤S801,目标应用发送数据写入命令的RPC请求。
步骤S802,存储引擎发起DMA请求,将目标数据从目标应用传输到存储设备PMR。
步骤S803,SmartNIC在目标数据传输完成后通知存储引擎。
步骤S804,存储引擎CPU通过与目标数据关联的Root Complex PMR写入元数据。
在该实施例中,由于CPU对PCIe BAR空间的写入可能是不可缓存的,因此,CPU不需要刷新缓存线。由于PCIe写事务是写回操作,为了确保元数据到达PMR,需要对PMR进行一个屏障操作,PMR定义了一个PMR WBM寄存器来提供这样的功能。
步骤S805,在对PMR进行屏障操作完成后,存储引擎将使用RPC响应消息响应目标应用。
步骤S806,存储引擎发送NVMe命令,可以将目标数据从存储设备的PMR写入存储设备。
在该实施例中,由于目标数据在存储设备的内部存储器中,因此不需要额外的PCIe流量,这它将节省PCIe矩阵的开销和主机内存带宽(或AEP带宽)。
步骤S807,存储设备在目标数据安全后可以向存储引擎返回确认信息。
步骤S808,存储引擎可以释放PMR资源。
在该实施例中,NVMe设备可以从BAR寄存器中提供存储空间,并保证该存储空间的非易失性;对于电容器保护,该实施例可以制定控制器内部存储器(DRAM或SRAM)的一部分,并在发生断电时使用电容器将数据刷新到NAND闪存上,由于电容有限,容量不会很大,一般有几MB。
对于NV-RAM like,可以支持更大的容量;设备将保持刷新数据从PMR到NAND以同步数据,后端NAND通道带宽将成为PMR DMA带宽的瓶颈。
另一种实现方式是将MRAM(或X3D)嵌入NVMe设备并映射到PMR空间,但将其与用作可由CPU更快访问的DIMM相比,这并不划算。
在该实施例中,对于不同的场景,存储引擎可以选择不同的PMR机械能实现,从而在设备成本、用例和实现复杂性之间提供灵活性。
与相关技术中的AEP解决方案相比,使用PMR有以下好处:存储引擎不涉及额外的设备,这使系统设备管理更加容易;不占用系统资源,AEP需要从系统中取出DIMM插槽,为其它组件(比如,DRAM)留下较少的插槽;存储引擎中有AEP设备,成本远高于电容器覆盖的PMR解决方案,虽然它的尺寸大于电容器覆盖的PMR;由于AEP没有NVMe存储设备大,它仍然是存储引擎中的缓存,仍然需要缓存刷新,因此,需要从AEP到NVMe存储设备的额外数据移动,这被认为是与NVMe存储设备相比的额外数据传输PMR解决方案。
该实施例通过使用存储设备的持久化内存区域的功能来优化数据写入,可以使得目标数据直接从持久化内存区域传输到存储设备的存储器,而不是先传输到主机内存(或AEP),然后再转发到存储设备;另外,该实施例可以通过使用PMR特性,存储引擎不需要部署其他组件,比如,不需要部署AEP或NV-RAM(而这些组件为服务质量的优化带来了复杂性和高成本),从而解决了对数据进行存储的效率低的技术问题,达到了提高对数据进行存储的效率的技术效果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例3
根据本发明实施例,还提供了一种用于实施上述图2所示的数据处理方法的数据处理装置。
图9是根据本发明实施例的一种数据处理装置的示意图。如图9所示,该数据处理装置90可以应用于存储引擎,可以包括:第一确定单元91和第一发送单元92。
第一确定单元91,用于确定目标数据从目标应用传输至存储设备的第一持久化内存区域。
第一发送单元92,用于向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。
此处需要说明的是,上述第一确定单元91和第一发送单元92对应于实施例1中的步骤S202至步骤S204,两个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例一提供的计算机终端10中。
根据本发明实施例,还提供了一种用于实施上述图3所示的数据处理方法的数据处理装置。
图10是根据本发明实施例的另一种数据处理装置的示意图。如图10所示,该数据处理装置100可以应用于存储设备,可以包括:接收单元101和写入单元102。
接收单元101,用于在存储设备的第一持久化内存区域接收来自目标应用的目标数据。
写入单元102,用于基于来自存储引擎的目标指令,将目标数据从第一持久化内存区域写入至存储设备的存储器中。
此处需要说明的是,上述接收单元101和写入单元102对应于实施例1中的步骤S302至步骤S304,两个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例一提供的计算机终端10中。
根据本发明实施例,还提供了一种用于实施上述图4所示的数据处理方法的数据处理装置。
图11是根据本发明实施例的另一种数据处理装置的示意图。如图11所示,该数据处理装置110可以应用于存储设备,可以包括:第二确定单元111和显示单元112。
第二确定单元111,用于响应作用于操作界面上的第一确定指令,确定目标数据从目标应用传输至存储设备的第一持久化内存区域。
显示单元112,用于在操作界面上显示目标数据的存储结果,其中,存储结果用于表示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。
此处需要说明的是,上述第二确定单元111和显示单元112对应于实施例1中的步骤S402至步骤S404,两个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例一提供的计算机终端10中。
根据本发明实施例,还提供了一种用于实施上述图5所示的数据处理方法的数据处理装置。
图12是根据本发明实施例的另一种数据处理装置的示意图。如图12所示,该数据处理装置120可以应用于存储设备,可以包括:第一调用单元121、第三确定单元122、第二发送单元123和第二调用单元124。
第一调用单元121,用于通过调用第一接口确定目标数据,其中,第一接口包括第一参数,第一参数的参数值为目标数据。
第三确定单元122,用于确定目标数据从目标应用传输至存储设备的第一持久化内存区域。
第二发送单元123,用于向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。
第二调用单元124,用于通过调用第二接口输出存储结果,其中,第二接口包括第二参数,第二参数的参数值为存储结果,存储结果用于表示存储设备将目标数据从第一持久化内存区域写入至存储器中。
此处需要说明的是,上述第一调用单元121、第三确定单元122、第二发送单元123和第二调用单元124对应于实施例1中的步骤S502至步骤S508,四个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例一提供的计算机终端10中。
在该实施例的数据处理装置中,通过使用存储设备的持久化内存区域的功能来优化数据写入,可以使得目标数据直接从持久化内存区域传输到存储设备的存储器,而不是先传输到主机内存(或AEP),然后再转发到存储设备,从而解决了对数据进行存储的效率低的技术问题,达到了提高对数据进行存储的效率的技术效果。
实施例4
本发明的实施例可以提供一种数据处理系统。该数据处理系统可以包括计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行应用程序的数据处理方法中以下步骤的程序代码:确定目标数据从目标应用传输至存储设备的第一持久化内存区域;向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。
可选地,图13是根据本发明实施例的一种计算机终端的结构框图。如图13所示,该计算机终端A可以包括:一个或多个(图中仅示出一个):处理器1302、存储器1304、以及传输装置1306。
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的数据处理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:确定目标数据从目标应用传输至存储设备的第一持久化内存区域;向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。
可选地,上述处理器还可以执行如下步骤的程序代码:确定与目标数据相关联的第二持久化内存区域;向第二持久化内存区域写入与目标数据相对应的元数据,其中,元数据用于对目标数据进行描述。
可选地,上述处理器还可以执行如下步骤的程序代码:通过处理器向第二持久化内存区域写入元数据,其中,处理器对元数据未缓存。
可选地,上述处理器还可以执行如下步骤的程序代码:向第二持久化内存区域回写入元数据。
可选地,上述处理器还可以执行如下步骤的程序代码:对第二持久化内存区域进行屏障操作;向经屏障操作后的第二持久化内存区域回写入元数据。
可选地,上述处理器还可以执行如下步骤的程序代码:基于目标寄存器对第二持久化内存区域进行屏障操作。
可选地,上述处理器还可以执行如下步骤的程序代码:向目标应用发送目标消息,其中,目标消息用于表示已完成对第二持久化内存区域进行屏障操作。
可选地,上述处理器还可以执行如下步骤的程序代码:确定目标数据在存储器中写入成功,则对第一持久化内存区域中目标数据对应的缓冲资源进行释放操作。
作为一种可选的示例,处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:在存储设备的第一持久化内存区域接收来自目标应用的目标数据;基于来自存储引擎的目标指令,将目标数据从第一持久化内存区域写入至存储设备的存储器中。
作为另一种可选的示例,处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:响应作用于操作界面上的第一确定指令,确定目标数据从目标应用传输至存储设备的第一持久化内存区域;在操作界面上显示目标数据的存储结果,其中,存储结果用于表示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。
作为另一种可选的示例,处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:通过调用第一接口确定目标数据,其中,第一接口包括第一参数,第一参数的参数值为目标数据;确定目标数据从目标应用传输至存储设备的第一持久化内存区域;向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中;通过调用第二接口输出存储结果,其中,第二接口包括第二参数,第二参数的参数值为存储结果,存储结果用于表示存储设备将目标数据从第一持久化内存区域写入至存储器中。
采用本发明实施例,提供了一种数据处理方法。确定目标数据从目标应用传输至存储设备的第一持久化内存区域;向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。也就是说,本申请通过使用存储设备的持久化内存区域的功能来优化数据写入,可以使得目标数据直接从持久化内存区域传输到存储设备的存储器,而不是先传输到主机内存(或AEP),然后再转发到存储设备,从而解决了对数据进行存储的效率低的技术问题,达到了提高对数据进行存储的效率的技术效果。
本领域普通技术人员可以理解,图13所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图13其并不对上述计算机终端的结构造成限定。例如,计算机终端13还可包括比图13中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图13所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例5
本发明的实施例还提供了一种计算机可读存储介质。可选地,在本实施例中,上述计算机可读存储介质可以用于保存上述实施例一所提供的数据处理方法所执行的程序代码。
可选地,在本实施例中,上述计算机可读存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:确定目标数据从目标应用传输至存储设备的第一持久化内存区域;向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:确定与目标数据相关联的第二持久化内存区域;向第二持久化内存区域写入与目标数据相对应的元数据,其中,元数据用于对目标数据进行描述。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:通过处理器向第二持久化内存区域写入元数据,其中,处理器对元数据未缓存。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:向第二持久化内存区域回写入元数据。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:对第二持久化内存区域进行屏障操作;向经屏障操作后的第二持久化内存区域回写入元数据。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:基于目标寄存器对第二持久化内存区域进行屏障操作。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:向目标应用发送目标消息,其中,目标消息用于表示已完成对第二持久化内存区域进行屏障操作。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:确定目标数据在存储器中写入成功,则对第一持久化内存区域中目标数据对应的缓冲资源进行释放操作。
作为一种可选的示例,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:在存储设备的第一持久化内存区域接收来自目标应用的目标数据;基于来自存储引擎的目标指令,将目标数据从第一持久化内存区域写入至存储设备的存储器中。
作为另一种可选的示例,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:响应作用于操作界面上的第一确定指令,确定目标数据从目标应用传输至存储设备的第一持久化内存区域;在操作界面上显示目标数据的存储结果,其中,存储结果用于表示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中。
作为另一种可选的示例,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:通过调用第一接口确定目标数据,其中,第一接口包括第一参数,第一参数的参数值为目标数据;确定目标数据从目标应用传输至存储设备的第一持久化内存区域;向存储设备发送目标指令,其中,目标指令用于指示存储设备将目标数据从第一持久化内存区域写入至存储设备的存储器中;通过调用第二接口输出存储结果,其中,第二接口包括第二参数,第二参数的参数值为存储结果,存储结果用于表示存储设备将目标数据从第一持久化内存区域写入至存储器中。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种数据处理方法,其特征在于,应用于存储引擎,包括:
确定目标数据从目标应用传输至存储设备的第一持久化内存区域;
向所述存储设备发送目标指令,其中,所述目标指令用于指示所述存储设备将所述目标数据从所述第一持久化内存区域写入至所述存储设备的存储器中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定与所述目标数据相关联的第二持久化内存区域;
向所述第二持久化内存区域写入与所述目标数据相对应的元数据,其中,所述元数据用于对所述目标数据进行描述。
3.根据权利要求2所述的方法,其特征在于,向所述第二持久化内存区域写入与所述目标数据相对应的元数据,包括:
通过处理器向所述第二持久化内存区域写入所述元数据,其中,所述处理器对所述元数据未缓存。
4.根据权利要求2所述的方法,其特征在于,向所述第二持久化内存区域写入与所述目标数据相对应的元数据,包括:
向所述第二持久化内存区域回写入所述元数据。
5.根据权利要求4所述的方法,其特征在于,
所述方法还包括:对所述第二持久化内存区域进行屏障操作;
向所述第二持久化内存区域回写入所述元数据,包括:向经屏障操作后的所述第二持久化内存区域回写入所述元数据。
6.根据权利要求5所述的方法,其特征在于,对所述第二持久化内存区域进行屏障操作,包括:
基于目标寄存器对所述第二持久化内存区域进行屏障操作。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
向所述目标应用发送目标消息,其中,所述目标消息用于表示已完成对所述第二持久化内存区域进行屏障操作。
8.根据权利要求1至7中任意一项所述的方法,其特征在于,所述方法还包括:
确定所述目标数据在所述存储器中写入成功,则对所述第一持久化内存区域中所述目标数据对应的缓冲资源进行释放操作。
9.一种数据处理方法,其特征在于,应用于存储设备,包括:
在存储设备的第一持久化内存区域接收来自目标应用的目标数据;
基于来自存储引擎的目标指令,将所述目标数据从所述第一持久化内存区域写入至所述存储设备的存储器中。
10.一种数据处理方法,其特征在于,应用于存储引擎,包括:
响应作用于操作界面上的第一确定指令,确定目标数据从目标应用传输至存储设备的第一持久化内存区域;
在所述操作界面上显示所述目标数据的存储结果,其中,所述存储结果用于表示所述存储设备将所述目标数据从所述第一持久化内存区域写入至所述存储设备的存储器中。
11.一种数据处理方法,其特征在于,应用于存储引擎,包括:
通过调用第一接口确定目标数据,其中,所述第一接口包括第一参数,所述第一参数的参数值为所述目标数据;
确定所述目标数据从目标应用传输至存储设备的第一持久化内存区域;
向所述存储设备发送目标指令,其中,所述目标指令用于指示所述存储设备将所述目标数据从所述第一持久化内存区域写入至所述存储设备的存储器中;
通过调用第二接口输出存储结果,其中,所述第二接口包括第二参数,所述第二参数的参数值为所述存储结果,所述存储结果用于表示所述存储设备将所述目标数据从所述第一持久化内存区域写入至所述存储器中。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序被处理器运行时控制所述计算机可读存储介质所在设备执行权利要求1至11中任意一项所述的方法。
13.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至11中任意一项所述的方法。
14.一种数据处理系统,其特征在于,包括:
处理器;
存储器,与所述处理器相连接,用于为所述处理器提供处理以下处理步骤的指令:确定目标数据从目标应用传输至存储设备的第一持久化内存区域;向所述存储设备发送目标指令,其中,所述目标指令用于指示所述存储设备将所述目标数据从所述第一持久化内存区域写入至所述存储设备的存储器中。
CN202111495805.4A 2021-12-08 2021-12-08 数据处理方法、存储介质和处理器 Pending CN114356219A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111495805.4A CN114356219A (zh) 2021-12-08 2021-12-08 数据处理方法、存储介质和处理器
PCT/CN2022/131054 WO2023103704A1 (zh) 2021-12-08 2022-11-10 数据处理方法、存储介质和处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111495805.4A CN114356219A (zh) 2021-12-08 2021-12-08 数据处理方法、存储介质和处理器

Publications (1)

Publication Number Publication Date
CN114356219A true CN114356219A (zh) 2022-04-15

Family

ID=81098260

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111495805.4A Pending CN114356219A (zh) 2021-12-08 2021-12-08 数据处理方法、存储介质和处理器

Country Status (2)

Country Link
CN (1) CN114356219A (zh)
WO (1) WO2023103704A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023103704A1 (zh) * 2021-12-08 2023-06-15 阿里巴巴(中国)有限公司 数据处理方法、存储介质和处理器
CN116886719A (zh) * 2023-09-05 2023-10-13 苏州浪潮智能科技有限公司 存储系统的数据处理方法、装置、存储系统、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130111103A1 (en) * 2011-10-28 2013-05-02 International Business Corporation High-speed synchronous writes to persistent storage
CN110727608A (zh) * 2019-09-03 2020-01-24 深圳市道通智能航空技术有限公司 一种日志数据的存储方法、电子设备及存储介质
CN111475099A (zh) * 2019-01-23 2020-07-31 阿里巴巴集团控股有限公司 一种数据存储方法、装置及其设备
US20210157720A1 (en) * 2019-11-26 2021-05-27 Micron Technology, Inc. Enhanced filesystem support for zone namespace memory

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104881371B (zh) * 2015-05-29 2018-02-09 清华大学 持久性内存事务处理缓存管理方法与装置
US10324650B2 (en) * 2016-09-23 2019-06-18 Advanced Micro Devices, Inc. Scoped persistence barriers for non-volatile memories
US11720283B2 (en) * 2017-12-19 2023-08-08 Western Digital Technologies, Inc. Coherent access to persistent memory region range
CN110647480B (zh) * 2018-06-26 2023-10-13 华为技术有限公司 数据处理方法、远程直接访存网卡和设备
CN114356219A (zh) * 2021-12-08 2022-04-15 阿里巴巴(中国)有限公司 数据处理方法、存储介质和处理器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130111103A1 (en) * 2011-10-28 2013-05-02 International Business Corporation High-speed synchronous writes to persistent storage
CN111475099A (zh) * 2019-01-23 2020-07-31 阿里巴巴集团控股有限公司 一种数据存储方法、装置及其设备
CN110727608A (zh) * 2019-09-03 2020-01-24 深圳市道通智能航空技术有限公司 一种日志数据的存储方法、电子设备及存储介质
US20210157720A1 (en) * 2019-11-26 2021-05-27 Micron Technology, Inc. Enhanced filesystem support for zone namespace memory

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023103704A1 (zh) * 2021-12-08 2023-06-15 阿里巴巴(中国)有限公司 数据处理方法、存储介质和处理器
CN116886719A (zh) * 2023-09-05 2023-10-13 苏州浪潮智能科技有限公司 存储系统的数据处理方法、装置、存储系统、设备及介质
CN116886719B (zh) * 2023-09-05 2024-01-23 苏州浪潮智能科技有限公司 存储系统的数据处理方法、装置、存储系统、设备及介质

Also Published As

Publication number Publication date
WO2023103704A1 (zh) 2023-06-15

Similar Documents

Publication Publication Date Title
US10997093B2 (en) NVME data processing method and NVME device
US9678918B2 (en) Data processing system and data processing method
KR102518095B1 (ko) 스토리지 장치 및 시스템
US10423568B2 (en) Apparatus and method for transferring data and commands in a memory management environment
US11966612B2 (en) Solid-state disk (SSD) data migration
US10445018B2 (en) Switch and memory device
US9213609B2 (en) Persistent memory device for backup process checkpoint states
EP3647932B1 (en) Storage device processing stream data, system including the same, and operation method thereof
WO2023103704A1 (zh) 数据处理方法、存储介质和处理器
EP3077914B1 (en) System and method for managing and supporting virtual host bus adaptor (vhba) over infiniband (ib) and for supporting efficient buffer usage with a single external memory interface
KR20190098146A (ko) 바이트 어드레스 지정 가능한 메모리로서 비-휘발성 메모리에 액세스하는 방법 및 장치
CN117591450B (zh) 一种数据处理系统、方法、设备及介质
CN109614264B (zh) 一种数据备份方法、装置及系统
US10564847B1 (en) Data movement bulk copy operation
CN114546902A (zh) 基于多协议访问存储器的系统、设备和方法
KR20200051450A (ko) 스트림 데이터를 처리하는 스토리지 장치, 그것의 포함하는 컴퓨팅 시스템, 그리고 그것의 동작 방법
US10430220B1 (en) Virtual devices as protocol neutral communications mediators
CN111642137A (zh) 快速发送写数据准备完成消息的方法、设备和系统
CN114840447B (zh) 一种加速器
US20140012904A1 (en) Providing byte enables for peer-to-peer data transfer within a computing environment
CN115858434A (zh) 一种计算设备及请求处理方法
JP2000330949A (ja) 仮想記憶システムのページング制御方法および装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination