A data processing method and storage device, the data processing method includes: receiving host sends a NVMe NVMe memory write command, the write command NVMe carrying key and value pointer, the value pointer to the first storage space, the first storage space for storing the value; the NVMe from the memory NVMe to write the key command and value length, according to the value length of the value distribution of second storage space, the second storage space in the memory of the NVMe; the value obtains the NVMe memory from the host to the value stored in the second storage space.
【技术实现步骤摘要】
【国外来华专利技术】一种数据处理方法以及NVMe存储器
本专利技术实施例涉及存储领域,特别涉及NVMe领域。
技术介绍
NVMe(Non-VolatileMemoryExpress,非易失性存储快速)协议是一种使用在存储系统中的高速接口协议,NVMe协议比SCSI协议提供更快的读写速度和更低的延迟,产业重视和普及程度越来越高。随着信息技术的发展,经常使用对象存储(objectstorage)技术。一种常见的对象存储技术是键值(keyvalue,KV)存储。现有技术中,由于NVMe设备仅仅支持块(block)接口,因此如果主机(Host)要把KV数据存储到NVMe存储器中,其步骤是:主机要把KV命令(一般情况下由Key、Value和Metadata构成)转成块数据(例如把一个KV命名拆分/合并成一个或者至少两个块数据);主机给块数据分配LBA地址;主机把块数据发送给NVMe存储器;NVMe存储器收到块数据后按照分配的LBA地址对块数据逐一进行存储。然而,在上述步骤中,把KV数据转换成块数据,以及给块数据分配LBA地址会耗费主机大量的运算资源,导致存储系统的性能下降,对主机和存储控制器的 ...
【技术保护点】
一种数据处理方法,其特征在于,该方法包括:快速非易失性存储NVMe存储器接收主机发送的NVMe写命令,所述NVMe写命令中携带key,所述NMVe写命令携带value指针,所述value指针指向所述主机中的第一存储空间,所述第一存储空间用于存储value,所述key与所述value属于同一个KV对;所述NVMe存储器从所述NVMe写命令中获得所述key,根据所述value指针获得value长度,按照所述value长度为所述value分配第二存储空间,所述第二存储空间在所述NVMe存储器中;所述NVMe存储器发送第一传输请求给所述主机,从所述主机获得所述value,把所述va ...
【技术特征摘要】
【国外来华专利技术】2015.12.28 CN 20151099892881.一种数据处理方法,其特征在于,该方法包括:快速非易失性存储NVMe存储器接收主机发送的NVMe写命令,所述NVMe写命令中携带key,所述NMVe写命令携带value指针,所述value指针指向所述主机中的第一存储空间,所述第一存储空间用于存储value,所述key与所述value属于同一个KV对;所述NVMe存储器从所述NVMe写命令中获得所述key,根据所述value指针获得value长度,按照所述value长度为所述value分配第二存储空间,所述第二存储空间在所述NVMe存储器中;所述NVMe存储器发送第一传输请求给所述主机,从所述主机获得所述value,把所述value保存在所述第二存储空间中。2.如权利要求1所述的数据处理方法,其中,所述NVMe存储器发送第一传输请求给主机以及从所述主机获得所述value,具体包括:所述NVMe存储器发送DMA传输请求给所述主机,从所述主机获得所述value,所述DMA指令携带所述第一存储空间作为访问地址,携带所述第二存储空间作为写入地址,其中,所述NVMe存储器和所述主机用PCIe总线连接。3.如权利要求1所述的数据处理方法,其中,所述NVMe存储器发送第一传输请求给主机以及从所述主机获得所述value,具体包括:所述存储器发送RDMA传输请求给所述主机,从所述主机获得所述value,所述RDMA指令携带所述第一存储空间作为访问地址,携带所述第二存储空间作为写入地址,其中,所述NVMe存储器和所述主机用Fabric总线连接。4.如权利要求1所述的数据处理方法,其中:所述NVMe写命令中进一步携带KV数量的字段,所述KV数量的字段用于描述所述NVMe写命令中KV的数量,所述NVMe存储器从所述NVMe写命令中获得与KV数量相同数量的key,以及获得与KV数量相同数量的value。5.如权利要求1所述的数据处理方法,其中:所述NVMe写命令中进一步携带KV格式的字段,其中,所述KV格式的字段描述所述NVMe写命令中字段的结构,所述NVMe存储器按照所述KV格式字段所定义的字段内容,从所述NVMe写命令中获取各个字段。6.如权利要求1所述的数据处理方法,其中,所述NVMe写命令还携带所述value元数据指针,所述方法还包括:所述NVMe存储器根据所述元数据指针获得元数据长度,按照所述元数据长度为所述元数据分配第四存储空间,所述第四存储空间在所述NVMe存储器中;所述NVMe存储器通过所述第一传输请求从所述主机中获得所述元数据,把所述元数据保存在第四存储空间中。7.如权利要求6所述的数据处理方法,其中:所述元数据传输失败后,所述NVMe存储器释放为所述value分配的存储空间,以及释放为所述元数据分配的第四存储空间。8.如权利要求1所述的数据处理方法,其中,所述NVMe存储器发送第一传输请求给所述主机以及从所述主机获得所述value,具体包括下述其中一种:所述存储器发送至少两个DMA传输请求给所述主机以获得所述value,每个DMA传输请求用于请求获得所述value的一部分,当任意一个DMA传输请求执行失败,则NVMe存储器释放为所述value分配的存储空间,其中,所述NVMe存储器和所述主机用PCIe总线连接;或者所述存储器发送至少两个RDMA传输请求给所述主机以获得所述value,每个RDMA传输请求用于请求获得所述value的一部分,当任意一个RDMA传输请求执行失败,则NVMe存储器释放为所述value分配的存储空间,其中,所述NVMe存储器和所述主机用Frabic连接。9.如权利要求1所述的数据处理方法,其中,所述方法还包括:生成所述key与所述第二存储空间的映射关系。10.如权利要求9所述的数据处理方法,该方法之后,进一步包括:所述NVMe存储器从所述主机接收NVMe读命令,所述NVMe读命令中携带所述key;所述NVMe存储器根据所述key在所述映射关系中查询,获得存储所述value的所述第二存储空间的位置信息,把所述第二存储空间的位置信息发送给所述主机;所述NVMe存储器接收所述主机发送的第二传输请求,所述第二传输请求用于请求获得存储在所述第二存储空间的数据。11.如权利要求10所述的数据处理方法,其中:所述NVMe存储器接收所述主机发送的第二传输请求之前,进一步包括:所述主机根据所述第二存储空间的大小预留所述主机中的第三存储空间;所述NVMe存储器发送所述value给所述主机之后,进一步包括:所述主机把收到的来自所述第二存储空间的数据写入所述第四存储空间空间。12.如权利要求10所述的数据处理方法,所述NVMe存储器接收的所述主机发送的NVMe读命令中还携带所述主机的空闲空间信息,所述NVMe存储器从所述主机接收所述NVMe读命令之后,进一步包括:所述NVMe存储器判断所述主机的空闲存储空间是否大于等于所述第二存储空间,如果是,执行将所述第二存储空间的位置信息发送给所述主机的步骤,如果否,结束步骤。13.如权利要求1所述的数据处理方法,其中:所述第一存储空间用第一存储空间的首地址和所述value长度描述;所述第二存储空间用第二存储空间的首地址描述。14.一种NVMe存储器,包括控制器以及存储介质,所述控制器和所述存储介质连接,所述存储介质用于提供存储空间,其特征在于,所述处理器被配置为执行:接收主机发送的快速非易失性存储NVMe写命令,所述NVMe写命令中携带key,所述NMVe写命令携带value指针,所述value指针指向所述主机中的第一存储空间,所述第一存储空间用于存储value,所述key与所述value属于同一个KV对;从所述NVMe写命令中获得所述key,根据所述value指针获得value长度,按照所述value长度为所述value分配第二存储空间,所述第二存储空间在所述存储介质中;发送第一传输请求给所述主机,从所述主机获得所述value,把所述value保存在所述第二存储空间中。15.如权利要求14所述的NVMe存储器,其中,发送第一传输请求给主机以及从所述主机获得所述value,具体包括:所述NVMe存储器和所述主机用PCIe总线连接,发送DMA传输请求给所述主机,从所述主机获得所述value,所述DMA指令携带所述第一存储空间作为访问地址,携带所述第二存储空间作为写入地址。16.如权利要求14所述的NVMe存储器,其中,发送第一传输请求给主机以及从所述主机获得所述value,具体包括:所述NVMe存储器和所述主机用Fabric总线连接,发送RDMA传输请求给所述主机,从所述主机获得所述value,所述RDMA指令携带所述第一存储空间作为访问地址,携带所述第二存储空间作为写入地址。17.如权利要求14所述的NVMe存储器,其中:所述NVMe写命令中进一步携带KV数量的字段,所述KV数量的字段用于描述所述NVMe写命令中KV的数量,所述NVMe存储器从所述NVMe写命令中获得与KV数量相同数量的key,以及获得与KV数...
【专利技术属性】
技术研发人员:邱鑫,许慧锋,郭海涛,刘洪广,刘华伟,谭春毅,吉辛维克多,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。