CN117472817A - 数据处理方法、装置、系统及网卡 - Google Patents
数据处理方法、装置、系统及网卡 Download PDFInfo
- Publication number
- CN117472817A CN117472817A CN202210868114.2A CN202210868114A CN117472817A CN 117472817 A CN117472817 A CN 117472817A CN 202210868114 A CN202210868114 A CN 202210868114A CN 117472817 A CN117472817 A CN 117472817A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- client
- copy
- indication information
- 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
Links
- 238000003672 processing method Methods 0.000 title abstract description 25
- 230000015654 memory Effects 0.000 claims abstract description 378
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000012545 processing Methods 0.000 claims description 53
- 230000000717 retained effect Effects 0.000 claims description 2
- 238000012546 transfer Methods 0.000 abstract description 6
- 230000004044 response Effects 0.000 description 29
- 230000006870 function Effects 0.000 description 21
- 238000007726 management method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/282—Cycle stealing DMA
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据处理方法、装置、系统及网卡,应用于远程直接内存访问架构中的存储节点。该方法中存储节点检测到要将第一数据从第一存储器复制到第二存储器时,在第一存储器中保留第一数据的副本,则即使访问第一数据的客户端根据第一数据被迁移至第二存储器之前的存储位置在第一存储器中访问第一数据,存储节点也能够向客户端发送第一数据的副本,使该客户端成功访问到正确的第一数据。相对于客户端访问存储节点的第一存储器确定第一数据存储于第一存储器后,存储节点在客户端通过网络访问存储节点的时延内将第一数据迁移至第二存储器,客户端无法在第一存储器中读取正确的第一数据的方案,提高了数据访问的准确性。
Description
技术领域
本申请涉及通信领域,尤其涉及一种数据处理方法、装置、系统及网卡。
背景技术
目前,存储系统中的控制器根据数据的访问频率(或访问热度)进行数据迁移。如第一存储器的存取速度大于第二存储器的存储速度,将访问频率较高的数据存储在第一存储器中,将访问频率较低的数据存储在第二存储器中。
客户端通过网络读取服务器的内存中的数据时,客户端首先确定要访问的数据存储于服务器的内存中,再对服务器的内存进行访问来读取数据。但客户端两次访问服务器的内存之间存在时间间隔,若在该时间间隔内数据迁移至外部存储器中,导致客户端无法获取到要访问的数据的问题。
发明内容
本申请实施例提供一种数据处理方法、装置、系统及网卡,能够解决由于服务器在客户端的访问时延内将数据迁移至外部存储器中导致客户端无法获取到要访问的数据的问题,从而提高数据访问的准确性。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种数据处理方法。该数据处理方法应用于存储节点,该存储节点包括第一存储器和第二存储器,第一存储器的读写速度大于所述第二存储器的读写速度。该数据处理方法包括:存储节点检测到要将第一数据从第一存储器复制到第二存储器时,在第一存储器中保留第一数据的副本,则当存储节点外的其他节点通过客户端在存储节点的第一存储器中访问第一数据,存储节点能够从第一存储器获取第一数据的副本,并向客户端发送第一数据的副本。
由此,存储节点在将第一数据换出至第二存储器后仍在第一存储器中保留第一数据,从而在对存储节点进行数据访问的节点的客户端未感知到存储节点换出第一存储器中的第一数据的情况下,保证客户端能够正确地访问第一数据,保证了RDMA的数据一致性。例如,对第一数据进行访问的客户端在存储节点将第一数据换出至第二存储器之前确定第一数据存储于第一存储器,在第一数据换出至第二存储器之后发起数据访问来读取第一存储器中的第一数据,由于第一存储器中保留有第一数据的副本,客户端能够正确地获取第一数据,保证客户端进行数据访问的数据一致性。
其中,第一存储器可以是动态随机存储器,第二存储器是闪存。此外,第一存储器支持远程直接内存访问,第二存储器不支持远程直接内存访问。
作为一种可能的实现方式,第一数据的副本在第一存储器中保留一定时长,存储节点在一定时长后删除第一存储器中的第一数据的副本。例如,存储节点基于定时器进行计时的方式确定一定时长,在计时结束时删除第一存储器中的第一数据的副本。
可选地,第一数据的副本在第一存储器中保留的一定时长大于客户端通过网络访问第一存储器的网络时延。
由此,在第一数据换出至第二存储器后,至少经过客户端通过网络访问第一存储器的网络时延的时长内,客户端根据第一数据在换出至第二存储器前所对应的指示信息也能够在第一存储器中获取第一数据的副本。此外,由于在该一定时长后客户端能够在第二存储器中获取第一数据,存储节点在一定时长后删除第一存储器内的第一数据的副本,减少了对第一存储器的存储空间的浪费。
作为一种可能的实现方式,第一存储器中还存储有第一数据的指示信息,第一数据的指示信息用于指示第一数据存储于第一存储器或第二存储器。
例如,指示信息设置于位图中,位图中的不同比特位表示不同数据存储于第一存储器或第二存储器。若比特位为第一标识表示数据存储于第一存储器,则比特位为第二标识表示数据存储于第二存储器。其中,第一标识可以是0,则第二标识是1,第一标识还可以是1,则第二标识是0。
作为一种可能的实现方式,存储节点检测到要将第一数据从第一存储器复制到第二存储器时,将第一数据的指示信息从第一标识修改为第二标识,以使客户端在存储节点删除第一存储器中的第一数据的副本后再次对第一数据进行数据访问,能够根据第一数据的指示信息在第二存储器中获取第一数据。
例如,存储节点在第一存储器中的第一数据的副本被删除后接收到第一数据的访问请求,向客户端发送第一数据的指示信息,获取客户端根据指示信息发送的第二数据访问请求,第二数据访问请求用于在第二存储器中访问第一数据,则存储节点根据第二数据访问请求从第二存储器向客户端发送第一数据。
第二方面,提供一种数据处理装置,所述装置包括用于执行第一方面或第一方面任一种可能实现方式中的数据处理方法的各个模块。
需要说明的是,第二方面所述的数据处理装置可以是终端设备或网络设备,也可以是可设置于终端设备或网络设备中的芯片(系统)、网卡或其他部件或组件,还可以是包含终端设备或网络设备的装置,本申请对此不做限定。
此外,第二方面所述的数据处理装置的技术效果可以参考第一方面所述的数据处理方法的技术效果,此处不再赘述。
第三方面,提供了一种数据处理系统,该系统包括计算节点和存储节点,计算节点用于利用客户端访问存储节点中的第一数据,存储节点用于在客户端访问第一数据时,执行第一方面中任一种可能设计中的数据处理方法的操作步骤。
第四方面,提供了一种网卡,该网卡用于执行第一方面中任一种可能设计中的数据处理方法的操作步骤。
此外,第三方面和第四方面的技术效果可以参考第一方面所述的数据处理方法的技术效果,此处不再赘述。
第五方面,提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在计算机中运行时,使得计算机执行如第一方面中任意一种可能的实现方式中所述方法的操作步骤。
第六方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面中任意一种可能的实现方式中所述方法的操作步骤。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请实施例提供的一种RDMA通信结构的示意图;
图2A为本申请实施例提供的一种RDMA READ请求消息和RDMA READ响应消息的结构示意图;
图2B为本申请实施例提供的又一种RDMA READ请求消息和RDMA READ响应消息的结构示意图;
图3为本申请实施例提供的一种请求端与响应端的交互示意图;
图4为本申请实施例提供的一种RDMA读操作的流程示意图;
图5为本申请实施例提供的一种数据处理系统的架构示意图;
图6为本申请实施例提供的一种服务器的结构示意图;
图7为本申请实施例提供的一种数据处理方法的流程示意图;
图8为本申请提供的一种数据处理装置的结构示意图。
具体实施方式
首先介绍本申请实施例所涉及的远程直接内存访问(remote direct memoryaccess,RDMA)等技术术语。
随着NVMe SSD的兴起,主机客户端访问存储节点的协议从小型计算机系统接口(small computer system interface,SCSI)向NVMe过渡,相应地,前端网络也从光纤通道(fibre channel,FC)网络、传输控制协议/网际协议(transmission control protocol/internet protocol,TCP/IP)网络向网络端的NVMe(NVMe over Fabric,NoF)网络迁移。
NoF协议支持内存(memory)类型和消息(message)类型的操作,其中,PCIe支持内存类型的操作,FC支持消息类型的操作,RDMA支持内存类型和消息类型的操作。
RDMA是一种绕过远程主机操作系统内核访问内存中数据的技术。由于不经过操作系统,从而节省了大量CPU资源,也提高了系统吞吐量、降低了系统的网络通信延迟。适合在大规模并行计算机集群中应用。
RDMA可以通过前端网络将存储节点的存储空间中的数据作为消息,以RDMA报文形式传输至主机客户端的存储空间,或者,通过前端网络将主机客户端的存储空间中的数据作为消息,以RDMA报文形式传输至存储节点的存储空间。这些传输和拷贝工作主要由存储节点和主机客户端的网络接口卡(例如,RDMA网络接口卡(RDMA network interface card,RNIC))执行,不需要处理器执行,因此不影响主机客户端的性能。
目前,RDMA的硬件实现方式包括无限带宽(Infiniband,IB)、基于融合以太网的RDMA(RDMA over converged ethernet,RoCE)(包括RoCEv1和RoCEv2)、互联网广域RDMA协议(internet wide area RDMA protocol,iWARP)等。其中,Infiniband是一种专为RDMA设计的网络,从硬件级别保证可靠传输。RoCE和iWARP都是基于以太网的RDMA技术,支持相应的动词(Verbs)接口,RoCE也支持硬件级别保证可靠传输。
RDMA是传输层网络协议,在通道适配器(channel adapter,CA)中使用队列对(queue pair,QP)实现对消费者(consumer)的数据进行发送和接收。每个QP包含一个发送队列(send queue,SQ)和一个接收队列(receive queue,RQ),其中,SQ负责消息的发送,RQ负责消息的接收。每个QP的SQ和RQ分别关联一个完成队列(completion queue,CQ)。每个QP都拥有自己的连接上下文(connection context)用于维护其连接状态,SQ、RQ以及CQ也分别拥有自己的队列上下文(queue context)用于维护其队列使用状态。
本申请实施例中涉及的消费者指使用QP进行消息收发的主体,一般指软件进程,例如NoF协议软件。
发送消息时,消费者向请求端(requester)的QP中的SQ提交(post)工作队列元素(work queue element,WQE),WQE包括RDMA操作类型、指向待传输的消息的存储空间的起始地址、待传输的消息的大小。待传输的数据作为一个消息,其长度支持0字节~2G字节。网络接口卡根据路径最大传输单元(path maximum transmission unit,PMTU)将WQE指向的数据分段成报文(packet)后发送到网络。当网络接口卡将一个WQE指向的消息的所有内容传输完成后,向与SQ关联的CQ提交一个完成队列元素(completion queue element,CQE),以通知消费者完成了其提交的某个WQE指示的RDMA操作。
对于接收SEND消息,接收消息前,消费者预先向响应端(responder)的QP中的RQ提交WQE。WQE包括能够存储数据的存储空间的指针、能够存储数据的存储空间的大小。网络接口卡从前端网络接收数据后写入到RQ的WQE指向的存储空间。当网络接口卡完成数据的接收后,向与RQ关联的CQ提交一个CQE,以通知消费者其完成了一个RDMA消息的接收。
对于接收RDMA READ响应消息,网络接口卡将接收的数据写入对应的RDMA READ操作的WQE指向的存储空间,并且对于接收RDMA READ响应消息的尾包或单包,当网络接口卡完成数据的接收后,向与SQ关联的CQ提交一个CQE,以通知消费者完成了其提交的某个WQE指示的RDMA READ操作。
对于接收RDMA WRITE消息或RDMA SEND消息的确认报文,网络接口卡向与SQ关联的CQ提交一个CQE,以通知消费者完成了其提交的某个WQE指示的RDMA WRITE操作或RDMASEND操作。关于SEND消息、RDMA READ响应消息和RDMA WRITE消息的确认报文见后面的描述。
RDMA支持可靠连接的QP连接和不可靠连接的QP连接,其中可靠连接的QP连接只支持一对一通信模型,即一个节点上的一个QP只能与其它节点的一个QP建立QP连接,任何QP都不能同时与其它节点的多个QP建立QP连接。示例性的,如图1所示,节点1的消费者A的QPx与节点2的消费者B的QP a建立QP连接,节点1的消费者A的QP x不能再同时与其他QP(例如QP b、QP c)建立QP连接。NoF使用支持可靠连接的QP连接的RDMA进行通信。
RDMA支持的消息类型的操作包括发送操作(SEND operation),该操作涉及处理器,适用于传输控制类报文(或称命令消息)。
RDMA支持的内存类型的操作包括RDMA读操作(RDMA READ operation)、RDMA写操作(RDMA WRITE operation)。这些操作不涉及处理器,数据的读或写都通过网络接口卡操作存储空间来完成,适用于传输数据类报文(或称数据消息)。
其中,发送操作也可以称为推送操作(push operation)。请求端(requester)将数据推送给响应端(responder),而不必知道数据在响应端中存储的位置。响应端的通道适配器(channel adapter)将数据放入其QP的下一个可用存储空间,存储空间由QP的RQ中位于头部的WQE指示。
本申请实施例中主要涉及RDMA读操作,下面对RDMA读操作进行说明。
RDMA读操作用于请求端读取响应端的存储空间中的数据。
在允许请求端进行RDMA读操作之前,响应端首先允许请求端访问其虚拟地址,即将RDMA读操作要读取的数据的虚拟地址、长度和M_Key密钥发送给请求端。示例性的,可以通过前文所述的发送操作来将上述信息发送给请求端。
请求端可以通过发送RDMA READ请求(RDMA READ Request)消息来发起RDMA读操作,该消息中包括响应端的存储空间的虚拟地址、RDMA操作的数据的长度和M_Key密钥。响应端向请求端发送RDMA READ响应(RDMA READ Response)消息,该消息中包括读取的数据。读取的数据的长度可以在0字节到231字节之间,如果长度大于PMTU,将按照PMTU大小分段为多个报文,以便通过多个RDMA READ响应消息的报文进行传输,请求端再将这些报文重新组合得到数据。对于可靠连接,RDMA READ响应消息没有相应的确认报文,请求端如果发现RDMA READ响应消息丢包,会重新发起RDMA读操作。
示例性的,假设RDMA READ响应消息被分段为三个报文,则基于IB协议的RDMAREAD请求消息和RDMA READ响应消息的结构如图2A所示,基于RoCEv2协议的RDMA READ请求消息和RDMA READ响应消息的结构如图2B所示。可靠连接的请求端与响应端之间的交互过程如图3所示。图2A和图2B中的每个报文中的各字段的作用可参考RDMA协议中的相关描述,在此不再赘述。
上文展示了RDMA技术中的RDMA读操作的技术原理,主机客户端与存储节点利用上述RDMA读操作完成输入/输出(input/output,I/O)的读过程如图4所示。
主机客户端首先在网络中发现存储节点并与存储节点建立连接。在主机客户端向存储节点进行I/O读过程中,主机客户端向存储节点发送SEND消息,该报文的数据负载即为I/O读命令。对于可靠连接,存储节点可以向主机客户端发送SEND消息的确认报文,表示接收到I/O读命令。存储节点获取I/O数据后,即从HDD或SSD等存储介质获取I/O数据后,存储节点(作为请求端)向主机客户端(作为响应端)发送RDMA WRITE消息,该报文的数据负载即为I/O数据,主机客户端向存储节点发送RDMA WRITE消息的确认报文。存储节点向主机客户端发送SEND消息,该报文中包括I/O响应,表示完成I/O读过程,主机客户端向存储节点发送SEND消息的确认报文,表示接收到I/O响应。
本申请实施例提供了一种数据处理方法,尤其是一种存储节点在数据换出时延迟删除数据的数据处理方法,即存储节点在检测到需要将第一数据从第一存储器复制到第二存储器时,在第一存储器中保留所述第一数据的副本,然后根据客户端的数据访问请求,从第一存储器中取出第一数据的副本,并将第一数据的副本发送至客户端。如此,客户端在读取第一数据之前确定第一数据存储于第一存储器中时,即使存储节点在客户端对第一存储器中的第一数据进行读取之前将第一数据换出至第二存储器,由于第一存储器中保留有第一数据的副本,客户端能够在第一存储器中读取第一数据的副本。从而在未感知到存储节点换出第一存储器中的第一数据的情况下,保证客户端能够正确地访问第一数据,保证了RDMA的数据一致性。
下面结合附图对本申请实施例的实施方式进行详细描述。
图5为本申请实施例提供的一种数据处理系统的架构示意图。数据处理系统500包括计算节点集群和存储节点集群。
其中,计算节点集群包括一个或多个计算节点(图5中示出了两个计算节点即计算节点510a和计算节点510b,但不限于两个计算节点)。
计算节点是用户侧的一种计算设备,如服务器、台式计算机等。在硬件层面,计算节点中设置有处理器和内存(图5中未示出)。在软件层面,以计算节点510a和存储节点520a为例,计算节点510a上运行有应用程序(application)511a(简称应用)和客户端程序512a(简称客户端)。应用511a是对用户呈现的各种应用程序的统称。客户端512a用于接收由应用511a触发的数据访问请求,并且与存储节点520a交互,向存储节点520a发送所述数据访问请求。客户端512a还用于接收来自存储节点的数据,并向应用511a转发所述数据。可以理解的是,当客户端512a是软件程序时,客户端512a的功能由计算节点510a所包含的处理器运行内存中的程序来实现。客户端512a也可以由位于计算节点510a内部的硬件组件来实现。计算节点集群中的任意一个客户端512a可以访问存储节点集群中的任意一个存储节点。例如,计算节点510a的客户端512a向存储节点520a发送数据访问请求,来读取待读取数据的指示信息,该指示信息用于指示待读取数据的存储位置。计算节点510a的客户端512a还可以根据指示信息向存储节点520a发送数据访问请求,来读取存储节点520a的存储器中的待读取数据。可选地,上述数据访问请求可以是RDMA READ请求消息。
存储节点集群包括一个或多个存储节点(图5中示出了三个存储节点即存储节点520a、存储节点520b和存储节点520c,但不限于三个存储节点),各个存储节点之间可以互联。存储节点如服务器、台式计算机或者存储阵列的控制器、硬盘框等。在功能上,存储节点主要用于对数据进行计算或处理等。
在硬件上,以存储节点520a为例,存储节点520a至少包括处理器521a、存储器522a和网卡525a。存储器522a包括第一存储器523a和第二存储器524a。
处理器521a是中央处理器(central processing unit,CPU),用于处理来自存储节点520a外部的数据,或者存储节点520a内部生成的数据。在本实施例中,处理器521a可以用于根据数据的被访问频率指示第一存储器523a和第二存储器524a之间进行数据的换入或换出。例如,处理器521a检测到第一存储器523a中的第一数据的被访问频率较低,则将第一数据换出至第二存储器524a,或者处理器521a检测到第二存储器524a中的第二数据的被访问频率较高,则将第二数据换出至第一存储器523a。此外,处理器521a用于检测是否需要将第一数据从第一存储器523a换出至第二存储器524a,并在检测到需要将第一数据从第一存储器523a换出至第二存储器524a时,在第一存储器523a中保留第一数据的副本。处理器521a还用于对第一数据的副本执行延迟淘汰(delay destage),即在一定时长后删除第一存储器523a中的第一数据的副本。可选地,处理器521a采用定时器的计时功能来确定上述一定时长,该一定时长大于客户端512a通过网络访问第一存储器523a的网络时延。例如,网络时延是指存储节点520a向计算节点510a发送表示第一数据的存储位置的信息,至存储节点520a接收到计算节点510a发送的数据访问请求的间隔时长。
网卡525a用于对存储器522a的访问流程进行控制,例如对地址信号、数据信号以及各种命令信号的控制,使访问存储器522a的设备能够使用存储器522a中存储的数据。在本申请实施例中,网卡525a用于接收客户端512a发送的数据访问请求,并根据数据访问请求从第一存储器523a中获取第一数据的指示信息或第一数据的副本,并向计算节点510a的客户端512a发送第一数据的指示信息或第一数据的副本。
存储器522a用于存储数据。第一存储器523a的读写速度可以大于第二存储器524a的读写速度,此外,第一存储器523a可以是支持RDMA的存储器,第二存储器524a可以是不支持RDMA的存储器。本申请实施例中,第一存储器523a中存储有被访问频率较高的数据,以及用于指示待访问数据的存储位置的指示信息。第二存储器524a中存储有被访问频率较低的数据。
上述指示信息可以是全局数组,例如位图。若指示信息为位图,位图的每个比特位与一个数据相对应,该比特位的数值用于指示对应数据的存储位置。例如,第一数据在位图中的对应比特位是第一标识,表示第一数据存储于第一存储器523a。第一数据在位图中的对应比特位是第二标识,表示第一数据存储于第二存储器524a。可选地,第一标识可以是1,则第二标识为0,或者第一标识可以是0,则第二标识为1。
存储器522a可以包括内存和/或硬盘。内存是指与处理器直接交换数据的内部存储器,内存可以随时进行快速读写数据,作为操作系统或其他正在运行中的程序的临时数据存储器。在本实施例中,存储器522a的内存包括至少两种存储器,即第一存储器523a和第二存储器524a。例如,第一存储器523a是动态随机存取存储器(Dynamic Random AccessMemory,DRAM),第二存储器524a是闪存,即快闪记忆体(NADN Memory)。
DRAM和NADN Memory在本实施例中只是示例性的说明,第一存储器523a和第二存储器524a还可以采用其他随机存取存储器。例如,第一存储器523a还可以是静态随机存取存储器(Static Random Access Memory,SRAM)、相变存储器(Phase Change Memory,PCM)等,第二存储器524a还可以是储存级存储器(Storage Class Memory,SCM)等。若第一存储器523a和第二存储器524a是只读存储器,举例来说,可以是可编程只读存储器(Programmable Read Only Memory,PROM)、可抹除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)等。另外,第一存储器523a和第二存储器524a还可以是双列直插式存储器模块或双线存储器模块(Dual In-line Memory Module,简称DIMM),即由动态随机存取存储器(DRAM)组成的模块。在后面的描述中,均以DRAM和NADNMemory为例进行说明,但不代表存储节点不包含其他类型的存储器。
本实施例中的存储器还可以包括硬盘。与内存不同的是,硬盘读写数据的速度比内存慢,通常用于持久性地存储数据。以存储节点520a为例,其内部可以设置一个或多个硬盘;或者,在存储节点520a的外部还可以挂载一个硬盘框,在硬盘框中设置多个硬盘。无论哪一种部署方式,这些硬盘都可以视作存储节点520a所包含的硬盘。硬盘类型为固态硬盘、机械硬盘,或者其他类型的硬盘。类似的,存储节点集群中的其他存储节点,如存储节点520b、存储节点520c也可以包含各种类型的硬盘。一个存储节点中可以包含一个或多个同一种类型的存储器。
值得注意的是,图5只是示意图,不应理解为对本申请的限定,该数据处理系统500中还可以包括其他设备,在图5中未画出。
结合上述数据处理系统500,本实施例提供的数据处理方法可以应用于分布式场景中,例如大数据分析应用场景、大数据视频云应用场景等。
例如,在大数据分析应用场景中,计算节点510a为金融机构的云计算平台的计算设备,存储节点520a是金融机构在各地区营业网点的服务器。当云计算平台的应用程序511a进行账户金额核算业务,则通过第一次RDMA读操作从账户金额核算业务所涉及的账户所属的营业网点的服务器获取相关数据的指示信息,根据指示信息确定相关数据存储于服务器的第一存储器523a中,再对第一存储器523a中的相关数据进行第二次RDMA读操作。服务器在对云计算平台的第一次RDMA读操作后,基于冷热数据识别算法确定即将被云计算平台访问的上述相关数据需要被换出至第二存储器524a中,则将该相关数据复制到第二存储器524a中,并在第一存储器523a中保存该相关数据的副本。从而,云计算平台根据第一次RDMA读操作获取的指示信息对第一存储器523a进行访问时能够获取到需要的相关数据,从而完成账户金额核算业务的计算,避免云计算平台从营业网点的服务器中获取到错误数据,从而提高了账户金额核算业务的计算准确性。
在大数据分析应用场景、大数据视频云应用场景等分布式场景中,通常采用服务器来存储数据,以及处理数据访问请求,接下来请参考图6,图6为本申请实施例提供的一种服务器的结构示意图,图5中的任一存储节点可通过图6示出的服务器600来实现。
服务器600包括基板管理控制器(baseboard management controller,BMC)610、处理器620、内存630、硬盘640和网卡650。
基板管理控制器610,可以对设备进行固件升级,对设备的运行状态进行管理以及排除故障等。处理器可通过外围器件互联(Peripheral Component Interconnectexpress,PCIe)总线、通用串行总线(universal serial bus,USB),或者集成电路总线(Inter-Integrated Circuit,I2C)等总线访问基板管理控制器610。基板管理控制器610还可以和至少一个传感器相连。基板管理控制器610通过传感器获取计算机设备的状态数据,其中状态数据包括:温度数据,电流数据、电压数据等等。在本申请中不对状态数据的类型做具体限制。基板管理控制器610通过PCIe总线或者其他类型的总线和处理器通信,例如,将获取到的状态数据,传递给处理器进行处理。基板管理控制器610也可以对存储器中的程序代码进行维护,包括升级或恢复等等。基板管理控制器610还可以对服务器600内的电源电路或时钟电路进行控制等。总之,基板管理控制器610可以通过以上方式实现对服务器600的管理。然而,基板管理控制器610只是一个可选设备。在一些实施方式中,处理器可以直接和传感器通信,从而对计算机设备直接进行管理和维护。值得说明的是,服务器中器件的连接方式除了采用上述PCIe总线、USB总线、I2C总线外,还可以通过扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cachecoherent interconnect for accelerators,CCIX)等。总线还可以分为地址总线、数据总线、控制总线等。处理器通过双倍速率(double data rate,DDR)总线和内存630相连。这里,不同的内存630可能采用不同的数据总线与处理器通信,因此DDR总线也可以替换为其他类型的数据总线,本申请实施例不对总线类型进行限定。另外,服务器600还包括各种输入输出(input/output,I/O)设备,处理器可以通过PCIe总线访问这些I/O设备。处理器是服务器600的运算核心和控制核心。处理器中可以包括一个或多个处理器核(core)。处理器可以是一块超大规模的集成电路。在处理器中安装有操作系统和其他软件程序,从而处理器能够实现对内存630及各种PCIe设备的访问。可以理解的是,在本发明实施例中,处理器可以是中央处理器(central processing unit,CPU),可以是其他特定集成电路(applicationspecific integrated circuit,ASIC)。处理器还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、现场可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。实际应用中,服务器200也可以包括多个处理器。
处理器620用于执行远端请求的业务。该远端是指与处理器620通信的其他服务器或客户端,还可以是指与处理器620进行通信的应用程序等。
内存630,也称为主存(main memory)。内存630通常用来存放操作系统中各种正在运行的软件、输入和输出数据以及与外存交换的信息等。为了提高处理器620的访问速度,内存630需要具备访问速度快的优点。在传统的计算机系统架构中,通常采用动态随机存取存储器作为内存630。处理器620能够通过内存控制器高速访问内存630,对内存630中的任意一个存储单元进行读操作或写操作。除了DRAM之外,内存630还可以是其他随机存取存储器,例如静态随机存取存储器等。本实施例不对内存630的数量和类型进行限定,例如内存630包括第一存储器和第二存储器,第一存储器用于存储被访问频率高的数据,以及用于表示数据存储于第一存储器或第二存储器的指示信息,第二存储器用于存储被访问频率较低的数据。此外,可对内存630进行配置使其具有保电功能。保电功能是指系统发生掉电又重新上电时,存储器中存储的数据也不会丢失。具有保电功能的内存630被称为非易失性存储器。
在本实施例中,处理器620可以对内存630进行管理,如处理器620可以基于DMA技术将内存630的至少部分存储空间(例如第一存储器)设置为直接内存访问空间(DMA空间),该DMA空间可以保存处理器620执行业务所需的业务数据或函数等信息。
在一种可选的实现方式中,处理器620可以将内存630的部分或全部存储空间进行虚拟化获得一个存储资源池,以便存储服务器600在运行过程中所需的其他数据。如内存630包括多个内存页(page),内存页是内存630的数据I/O操作的最小单位,内存页也称为数据读写的原子单位。每个内存页对应内存630的一段存储地址空间,如一个内存页可以用于存储4千字节(kilo bytes,KB)的数据,则该内存页对应4KB的存储地址空间。另外,一个内存页也可以对应更大或更小的存储地址空间,如2KB或8KB等。
在本实施例中,处理器620可以将内存630的一部分存储空间设置为DMA空间,将内存630的另一份存储空间设置为存储资源池,本申请对此不予限定。
I/O设备是指可以进行数据传输的硬件,也可以理解为与I/O接口对接的设备。常见的I/O设备有网卡、打印机、键盘、鼠标等,如I/O设备可以是图6所示出的网卡650。所有的外存也可以作为I/O设备,如硬盘、软盘、光盘等。处理器620可通过PCIe总线访问各个I/O设备。需要说明的是,PCIe总线只是其中的一个示例,可以被替换为其他总线,例如UB总线或CXL等。
如图6所示,网卡650包括处理器651、存储器652和通信接口653。在一些可能的示例中,包含处理单元和网络适配器(network interface card,NIC)的网卡也被称为智能网卡(intelligent NIC,iNIC)。
处理器651是指具有处理能力的处理器,例如数据处理单元(data processingunit,DPU)。DPU具有CPU的通用性和可编程性,但更具有专用性,可以在网络数据包,存储请求或分析请求上高效运行。DPU通过较大程度的并行性(需要处理大量请求)与CPU区别开来。可选的,这里的DPU也可以替换成图形处理单元(graphics processing unit,GPU)、嵌入式神经网络处理器(neural-network processing units,NPU)等处理芯片。在本实施例中,处理器651用于基于冷热数据识别算法检测第一存储器和第二存储器中的数据是否需要执行换出操作,并在检测到需要将第一存储器中的数据换出至第二存储器时在第一存储器中保留数据的副本,以及根据远端的请求获取数据或数据的指示信息,并向远端返回数据或数据的指示信息。
存储器652可以是指与处理器651直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作系统或其他正在运行中的程序的临时数据存储器。存储器652包括至少两种存储器,例如存储器652既可以是随机存取存储器,也可以是ROM。举例来说,随机存取存储器是DRAM,或者存储级存储器(storage class memory,SCM)。DRAM是一种半导体存储器,与大部分RAM一样,属于一种易失性存储器(volatile memory)设备。SCM是一种同时结合传统储存装置与存储器特性的复合型储存技术,存储级存储器能够提供比硬盘更快速的读写速度,但存取速度上比DRAM慢,在成本上也比DRAM更为便宜。然而,DRAM和SCM在本实施例中只是示例性的说明,存储器652还可以包括其他随机存取存储器,例如SRAM等。而对于只读存储器,举例来说,可以是PROM、EPROM等。另外,存储器652还可以是双列直插式存储器模块或双线存储器模块(dual in-line memory module,DIMM),即由DRAM组成的模块,还可以是固态硬盘(solid state disk,SSD)。实际应用中,网卡650中可配置多个存储器652,以及不同类型的存储器652。本实施例不对存储器652的数量和类型进行限定。此外,可对存储器652进行配置使其具有保电功能。保电功能是指系统发生掉电又重新上电时,存储器652中存储的数据也不会丢失。具有保电功能的存储器被称为非易失性存储器。
在一种可能的情形中,存储器652中存储有软件程序,处理器651运行存储器652中的软件程序可实现数据访问(如数据同步)、计算业务或者虚拟机迁移的管理等。
通信接口653用于实现的服务器600与其他设备进行通信的网络接口卡,例如,通信接口653可以实现从并行到串行的数据转换、数据包的装配和拆装、网络存取控制、数据缓存和网络信号中的一种或多种功能。
下面将结合附图对本实施例提供的数据处理方法的具体实现方式进行详细描述。如图7所示,图7为本申请实施例提供的一种数据处理方法的流程示意图,该数据处理方法可以应用于图5所示出的数据处理系统500,或图6所示的服务器600与远端,这里以计算节点510a和存储节点520a来执行本实施例的数据处理方法为例进行说明。
步骤701、存储节点520a注册内存域(Memory Region,MR)。
存储节点520a利用RDMA软件层在第一存储器523a中注册内存域,即网卡525a在第一存储器523a中设置一块用于存放收发的数据的内存空间。
步骤702、计算节点510a与存储节点520a建立RDMA连接。
计算节点510a的QP与存储节点520a的QP建立链接,来实现计算节点510a与存储节点520a之间的RDMA连接。
可选地,计算节点510a与存储节点520a基于套接字(Socket)进行RDMA QP间的建立链接,即先在两个节点间通过Socket建立TCP/IP的连接,然后通过这条连接来交互双方的QP信息,完成RDMA QP间的建链。其中,上述QP信息可以包括全局标识(GlobalIndentifier,GID)、队列对编号(Queue Pair Number,QPN)、虚拟地址(Virtual Address,VA)、M_Key密钥等,全局标识、队列对编号、虚拟地址和M_Key密钥的具体内容和作用可以参考RDMA协议中的描述,在此不再赘述。
步骤703、计算节点510a向存储节点520a发送指示信息访问请求。
计算节点510a的客户端512a根据用户请求确定需要访问第一数据,向存储节点520a发送指示信息访问请求。指示信息访问请求用于读取第一数据的指示信息,指示信息访问请求包含第一数据的虚拟地址。可选地,指示信息访问请求是RDMA READ请求消息。
步骤704、存储节点520a根据指示信息访问请求确定第一数据的指示信息。
存储节点520a的网卡525a接收并解析指示信息访问请求,获得第一数据的虚拟地址,将虚拟地址转换为物理地址,并利用处理器521a确定物理地址对应的指示信息,例如位图中对应的比特位的值。
以指示信息为位图为例,物理地址在位图中对应的比特位的值为1表示第一数据存储于第一存储器523a,物理地址在位图中对应的比特位的值为0表示第一数据存储于第二存储器524a。位图在第一存储器523a中占用的内存空间是存储节点520a注册内存域得到的,用于存储位图的内存空间具有锁定的虚拟地址和物理地址的映射关系,即会长期存在于第一存储器523a的物理内存中不被换页。
可选地,在计算节点510a对存储节点520a进行数据访问之前,存储节点520a根据第一存储器523a中已存储的数据更新位图,将第一存储器523a中已存储的数据对应的位图的比特位的值设置为1。
步骤705、存储节点520a向计算节点510a发送指示信息访问响应。
存储节点520a利用网卡525a接收到指示信息访问请求即RDMA READ请求消息后,根据RDMA READ请求消息执行RDMA读操作的步骤向计算节点510a返回指示信息访问响应。其中,指示信息访问响应为RDMA READ响应消息,该消息中包括表示第一数据存储于第一存储器523a或第二存储器524a的数据。
上述存储节点520a根据RDMA READ请求消息向计算节点510a返回RDMA READ响应消息的步骤请参考上文中对RDMA技术的描述内容,在此不再赘述。
步骤706、存储节点520a将第一数据从第一存储器523a换出至第二存储器524a,在第一存储器523a中保留第一数据的副本。
存储节点520a的处理器521a根据冷热数据识别算法确定第一数据为被访问频率较低的数据,第一数据需要被换出至第二存储器524a,则处理器521a指示第一存储器523a将第一数据换出至第二存储器524a,并指示在第一存储器523a中保留第一数据的副本。可选地,上述冷热数据识别算法可以是最近最少使用(least recently used,LRU)算法、最不经常使用(least frequently used,LFU)算法等。
在本申请实施例中,第一数据换出至第二存储器524a后,处理器521a根据第一数据的存储位置更新位图。例如,处理器521a在第一数据换出至第二存储器524a后确定第一数据存储于第二存储器524a,则将位图中与第一数据对应的比特位的值修改为0。
由此,存储节点520a将第一数据换出至第二存储器524a,并将位图中与第一数据对应的比特位的值修改为0,若计算节点510a的客户端512a在步骤705后向存储节点520a发送第二数据访问请求,来再次发起RDMA读操作来对第一数据进行数据访问,计算节点510a根据位图中与第一数据对应的比特位的值确定第一数据存储于第二存储器524a,利用双边数据访问操作在第二存储器524a中获取第一数据。从而确保了位图更新后计算节点对第一数据进行数据访问的数据一致性。
步骤707、计算节点510a根据指示信息访问响应对第一存储器523a中的第一数据进行数据访问。
计算节点510a接收到指示信息访问响应后,根据指示信息访问响应携带的表示第一数据存储于第一存储器523a或第二存储器524a的数据,确定第一数据存储于第一存储器523a,则向存储节点520a发送第一数据访问请求,来对第一存储器523a中的第一数据进行数据访问。其中,第一数据访问请求可以是RDMA READ请求消息。
步骤708、存储节点520a从第一存储器523a中获取第一数据的副本。
存储节点520a的网卡525a将计算节点510a的第一数据访问请求要读取的第一数据的内存空间的虚拟地址转换为物理地址,读取该物理地址内的第一数据的副本。
步骤709、存储节点520a向计算节点510a发送第一数据的副本。
存储节点520a的网卡525a将读取的第一数据的副本封装成第一数据访问响应,并向计算节点510a发送第一数据访问响应。其中,第一数据访问响应可以是RDMA READ响应消息。
步骤710、存储节点520a删除第一存储器523a中的第一数据的副本。
存储节点520a的处理器521a在确定第一存储器523a保留第一数据的副本大于或等于一定时长后,指示第一存储器523a删除第一存储器523a中的第一数据的副本。
可选地,处理器521a利用定时器确定第一存储器523a中的第一数据的副本的删除时间。上述一定时长大于计算节点510a的客户端512a通过网络对存储节点520a的第一存储器523a执行数据访问的网络时延。
作为一种可能的实现方式,本申请实施例提供的数据处理方法的上述步骤,可以是计算节点510a的客户端512a的功能和存储节点的服务端的功能实现的。
基于本实施例提供的上述数据处理方法,存储节点在检测到第一数据需要从第一存储器换出至第二存储器时,存储节点将第一数据对应的指示信息修改为指示第一数据存储于第二存储器的状态,并将第一数据复制到第二存储器,但不将第一存储器中的第一数据删除掉,即同时保留第一数据的两份副本。存储节点在一定时长后删除第一存储器中的第一数据的副本,该一定时长大于计算节点对存储节点进行RDMA读操作的网络耗时时长。如此,计算节点通过第一次RDMA读操作从存储节点获取的指示信息标识第一数据存储于第一存储器,再通过第二次RDMA读操作在第一存储器中读取第一数据,即使存储节点在两次RDMA读操作的间隔时间内将第一数据换出至第二存储器,计算节点的第二次RDMA读操作也能够在第一存储器中读取到延迟淘汰的第一数据的副本,确保计算节点访问到的是正确的第一数据,从而避免了计算节点访问到的数据不一致的问题。
可以理解的是,为了实现上述实施例中功能,服务器包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
图8为本申请提供的一种数据处理装置的结构示意图。数据处理装置可以用于实现上述方法实施例中存储节点的功能,因此也能实现上述方法实施例所具备的有益效果。在本申请的实施例中,该数据处理装置可以是如图5所示的任一个存储节点,或者是图6所示出的服务器600,还可以是应用于服务器的模块(如芯片)。
数据处理装置800包括处理模块810、收发模块820和存储模块830。处理模块810用于实现上述方法实施例中处理器521a和/或网卡525a的处理功能。收发模块用于实现上述方法实施例中网卡525a的数据传输功能。存储模块830用于实现上述方法实施例中存储器522a的功能。例如,当数据处理装置800用于实现图7所示的方法实施例时,处理模块810用于执行步骤701、步骤704、步骤706、步骤707、步骤708和步骤710,收发模块820用于执行步骤702、步骤703、步骤705和步骤709。
该数据处理装置800用于实现上述数据处理方法的具体过程包括:
处理模块810用于检测到需要将第一数据从第一存储器复制到第二存储器时,在第一存储器中保留第一数据的副本,第一存储器的读写速度大于第二存储器的读写速度;
收发模块820用于获取第一数据访问请求,第一数据访问请求用于在第一存储器中读取第一数据的副本;
处理模块810还用于从第一存储器获取第一数据的副本;
收发模块820还用于向客户端发送第一数据的副本。
作为一种可能的实现方式,第一数据的副本在第一存储器中保留一定时长。
作为一种可能的实现方式,一定时长大于客户端通过网络访问第一存储器的网络时延。
作为一种可能的实现方式,处理模块810还用于:在一定时长后删除第一存储器中的第一数据。
作为一种可能的实现方式,一定时长是基于定时器进行计时的方式确定的。
作为一种可能的实现方式,第一存储器中存储有第一数据的指示信息,第一数据的指示信息用于指示第一数据存储于第一存储器或第二存储器,处理模块810还用于:将第一数据的指示信息从第一标识修改为第二标识,第一标识用于指示第一数据存储于第一存储器,第二标识用于指示第一数据存储于第二存储器。
作为一种可能的实现方式,收发模块820还用于:根据访问请求向客户端发送第一数据的指示信息;获取客户端根据指示信息发送的第二数据访问请求,第二数据访问请求用于在第二存储器中读取第一数据;当第二存储器存储有第一数据,根据第二数据访问请求从第二存储器向客户端发送第一数据。
作为一种可能的实现方式,指示信息设置于位图中。
作为一种可能的实现方式,第一存储器为动态随机存取存储器,第二存储器为闪存。
应理解的是,本发明本申请实施例的数据处理装置800可以通过CPU实现,也可以通过ASIC实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD)、FPGA、通用阵列逻辑(generic array logic,GAL)或其任意组合。数据处理装置800通过软件实现图7中所示的数据处理方法时,数据处理装置800及其各个模块也可以为软件模块。
有关上述数据处理装置800更详细的描述可以直接参考上述图7所示的实施例中相关描述直接得到,这里不加赘述。
示例的,当数据处理装置800通过硬件实现时,该硬件可以是一种计算设备,如上述的服务器,或应用在服务器的处理器或芯片等,如该计算设备包括接口电路和控制电路。
接口电路用于接收来自计算设备之外的其它设备的信号并传输至控制电路,或将来自控制电路的信号发送给计算设备之外的其它设备。
控制电路通过逻辑电路或执行代码指令用于实现上述实施例中任一种可能实现方式的方法。有益效果可以参见上述实施例中任一方面的描述,此处不再赘述。
应理解,根据本申请实施例的服务器可对应于申请实施例中的数据处理装置800,并可以对应于执行根据本申请实施例的方法图7中的相应主体,并且数据处理装置800中的各个模块的上述和其它操作和/或功能分别为了实现图7中的方法的相应流程,为了简洁,在此不再赘述。
可以理解的是,本申请的实施例中的处理器可以是CPU、NPU或GPU,还可以是其它通用处理器、DSP、ASIC、FPGA或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。
Claims (20)
1.一种数据处理方法,其特征在于,包括:
检测到需要将第一数据从第一存储器复制到第二存储器时,在所述第一存储器中保留所述第一数据的副本,所述第一存储器的读写速度大于所述第二存储器的读写速度;
获取第一数据访问请求,所述第一数据访问请求用于在所述第一存储器中读取所述第一数据的副本;
从所述第一存储器获取所述第一数据的副本;
向客户端发送所述第一数据的副本。
2.根据权利要求1所述的方法,其特征在于,所述第一数据的副本在所述第一存储器中保留一定时长。
3.根据权利要求2所述的方法,其特征在于,所述一定时长大于客户端通过网络访问所述第一存储器的网络时延。
4.根据权利要求2或3中所述的方法,其特征在于,在所述第一存储器中保留所述第一数据的副本之后,所述方法还包括:
在所述一定时长后删除所述第一存储器中的所述第一数据的副本。
5.根据权利要求4所述的方法,其特征在于,所述一定时长是基于定时器进行计时的方式确定的。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述第一存储器中存储有所述第一数据的指示信息,所述第一数据的指示信息用于指示所述第一数据存储于所述第一存储器或所述第二存储器,检测到需要将第一数据从第一存储器复制到第二存储器时,所述方法还包括:
将所述第一数据的指示信息从第一标识修改为第二标识,所述第一标识用于指示所述第一数据存储于所述第一存储器,所述第二标识用于指示所述第一数据存储于所述第二存储器。
7.根据权利要求6所述的方法,其特征在于,在所述将所述第一数据的指示信息从第一标识修改为第二标识之后,所述方法还包括:
根据访问请求向所述客户端发送所述第一数据的所述指示信息;
获取所述客户端根据所述指示信息发送的第二数据访问请求,所述第二数据访问请求用于在所述第二存储器中读取所述第一数据;
根据所述第二数据访问请求从所述第二存储器向所述客户端发送所述第一数据。
8.根据权利要求6或7所述的方法,其特征在于,所述指示信息设置于位图中。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述第一存储器为动态随机存取存储器,所述第二存储器为闪存。
10.一种数据处理装置,其特征在于,所述装置包括:
处理模块,用于检测到需要将第一数据从第一存储器复制到第二存储器时,在所述第一存储器中保留所述第一数据的副本,所述第一存储器的读写速度大于所述第二存储器的读写速度;
收发模块,用于获取第一数据访问请求,所述第一数据访问请求用于在所述第一存储器中读取所述第一数据的副本;
所述处理模块,还用于从所述第一存储器获取所述第一数据的副本;
所述收发模块,还用于向客户端发送所述第一数据的副本。
11.根据权利要求10所述的装置,其特征在于,所述第一数据的副本在所述第一存储器中保留一定时长。
12.根据权利要求11所述的装置,其特征在于,所述一定时长大于客户端通过网络访问所述第一存储器的网络时延。
13.根据权利要求11或12所述的装置,其特征在于,所述处理模块还用于:
在所述一定时长后删除所述第一存储器中的所述第一数据的副本。
14.根据权利要求13所述的装置,其特征在于,所述一定时长是基于定时器进行计时的方式确定的。
15.根据权利要求10-14中任一项所述的装置,其特征在于,所述第一存储器中存储有所述第一数据的指示信息,所述第一数据的指示信息用于指示所述第一数据存储于所述第一存储器或所述第二存储器,所述处理模块还用于:
将所述第一数据的指示信息从第一标识修改为第二标识,所述第一标识用于指示所述第一数据存储于所述第一存储器,所述第二标识用于指示所述第一数据存储于所述第二存储器。
16.根据权利要求15所述的装置,其特征在于,所述收发模块还用于:
根据访问请求向所述客户端发送所述第一数据的所述指示信息;
获取所述客户端根据所述指示信息发送的第二数据访问请求,所述第二数据访问请求用于在所述第二存储器中读取所述第一数据;
当所述第二存储器存储有所述第一数据,根据所述第二数据访问请求从所述第二存储器向所述客户端发送所述第一数据。
17.根据权利要求15或16所述的装置,其特征在于,所述指示信息设置于位图中。
18.根据权利要求10-17中任一项所述的装置,其特征在于,所述第一存储器为动态随机存取存储器,所述第二存储器为闪存。
19.一种数据处理系统,其特征在于,所述系统包括计算节点和存储节点,所述计算节点用于利用客户端访问所述存储节点中的第一数据,所述存储节点用于在所述客户端访问第一数据时,执行如权利要求1-9中任一方法中的步骤。
20.一种网卡,其特征在于,所述网卡用于在客户端访问第一数据时,执行如权利要求1-9中任一方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210868114.2A CN117472817A (zh) | 2022-07-21 | 2022-07-21 | 数据处理方法、装置、系统及网卡 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210868114.2A CN117472817A (zh) | 2022-07-21 | 2022-07-21 | 数据处理方法、装置、系统及网卡 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117472817A true CN117472817A (zh) | 2024-01-30 |
Family
ID=89629880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210868114.2A Pending CN117472817A (zh) | 2022-07-21 | 2022-07-21 | 数据处理方法、装置、系统及网卡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117472817A (zh) |
-
2022
- 2022-07-21 CN CN202210868114.2A patent/CN117472817A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10223326B2 (en) | Direct access persistent memory shared storage | |
TWI814975B (zh) | 用於利用自我調整寫緩衝區釋放的存儲介質編程方法與裝置、以及其系統單晶片 | |
US11163452B2 (en) | Workload based device access | |
JP2021190123A (ja) | キャッシュコヒーレントインターコネクトを使用するシステム及び方法 | |
US10423332B2 (en) | Fibre channel storage array having standby controller with ALUA standby mode for forwarding SCSI commands | |
US10241722B1 (en) | Proactive scheduling of background operations for solid state drives | |
US11966612B2 (en) | Solid-state disk (SSD) data migration | |
US9213500B2 (en) | Data processing method and device | |
US11240306B2 (en) | Scalable storage system | |
US11741034B2 (en) | Memory device including direct memory access engine, system including the memory device, and method of operating the memory device | |
US11606429B2 (en) | Direct response to IO request in storage system having an intermediary target apparatus | |
US20230017643A1 (en) | Composable infrastructure enabled by heterogeneous architecture, delivered by cxl based cached switch soc | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
US10437747B2 (en) | Memory appliance couplings and operations | |
CN116185553A (zh) | 数据迁移方法、装置及电子设备 | |
WO2023125524A1 (zh) | 数据存储方法、系统、存储访问配置方法及相关设备 | |
WO2019089057A1 (en) | Scalable storage system | |
US11487432B2 (en) | Direct response to IO request in storage system with remote replication | |
US11994944B2 (en) | Efficient networking for a distributed storage system | |
JP5893028B2 (ja) | キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法 | |
US20230325277A1 (en) | Memory controller performing selective and parallel error correction, system including the same and operating method of memory device | |
WO2022073399A1 (zh) | 存储节点、存储设备及网络芯片 | |
US20220187992A1 (en) | Systems and methods for data copy offload for storage devices | |
CN117472817A (zh) | 数据处理方法、装置、系统及网卡 | |
CN115495433A (zh) | 一种分布式存储系统、数据迁移方法及存储装置 |
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 |