一种数据处理方法和装置制造方法及图纸

技术编号:36537597 阅读:18 留言:0更新日期:2023-02-01 16:26
本申请实施例提供一种数据处理方法和装置,涉及通信技术领域,用以减少内存持久化守护进程被调度执行的次数。该方案包括:接收第一数据操作请求,第一数据操作请求包括数据以及数据对应的第一地址,第一地址为数据在数据处理装置中的存储地址;根据第一地址,从日志列表中的N个条目中确定第一地址对应的目标条目,其中,N个条目与LLC中的N个cache line一一映射,日志列表存储在非易失性快速存储介质中;若第一数据操作请求之前的数据操作请求写入的地址对应的cache line与第一地址对应的cache line相同,则删除目标条目中的日志,根据第一数据操作请求,在目标条目上记录第一数据操作请求对应的日志;存储该数据。存储该数据。存储该数据。

【技术实现步骤摘要】
一种数据处理方法和装置
[0001]本申请是向中国专利局提交的申请号为201810779536.6,申请日为2018年7月16日,专利技术创造名称为“一种数据处理方法和装置”的专利技术专利申请的分案申请。


[0002]本申请实施例涉及通信
,尤其涉及一种数据处理方法和装置。

技术介绍

[0003]存储型内存(storage class memory,SCM)指在断电后数据不会消失的字节级存储器,又可以称为非易失性内存。与动态随机存取存储器(dynamic random access memory,DRAM)相比,SCM具有断电非易失性和存储密度大的特性。随着SCM的成熟,现有的计算机系统架构面临重大革新。
[0004]远端直接内存访问(remote direct memory access,RDMA)可以绕过内核软件栈,经过硬件RDMA网络接口卡(RDMA network interface card,RNIC)通过直接内存访问(direct memory access,DMA)的方式直接读写远端内存中的数据。在分布式存储系统中,为了充分利用SCM的介质特性,RDMA+SCM的结合成为了必然的选择。
[0005]虽然SCM是非易失性的,但是当前处理器中各级缓冲存储器(cache)却是易失的,即断电之后,cache中的数据会丢失。因此,为了保证数据高可靠性,必须及时将cache中的数据刷回到SCM中,保证数据持久化。如果访问存储在本地内存中的数据,则可以通过CLFLUSH指令将缓存行(cache line)刷回。如果是通过RDMA访问存储在远端的数据,则在访问完远端的数据之后,需要通知远端中央处理器(central processing unit,CPU)调用CLFLUSH指令将对应的cache line刷回SCM中。整个过程会导致访问远端的数据交互流程复杂,且时延极高,无法充分利用SCM和RDMA的特性。
[0006]如图1所示,如果CPU的数据直接访问输入输出(data direct input/output,DDIO)开启,客户端(client)首先通过RDMA Write操作请求向服务器(server)写数据。在client收到目标服务器反馈的用于指示所请求的数据已写入server的响应以后,然后client再通过RDMA send向server发起持久化操作请求,以请求server将client请求写入的数据在内存中持久化。
[0007]但是,图1中client向服务器写数据时,需要调用六次网络接口,三次网络传输,以及一次CPU cache line flush操作。如果考虑到中间涉及到的操作系统调度等开销,则图1中的延时需要几十微秒。相比之下,一次RDMA Write仅需要1微秒(us)~2us,而一次SCM写,则最多需要500纳秒(ns)。由此可见,上述方案流程完全掩盖了SCM带来的好处。

技术实现思路

[0008]本申请实施例提供一种数据处理方法和装置,用以减少内存持久化守护进程被调度执行的次数。
[0009]为了解决上述技术问题,本申请实施例提供如下技术方案:
[0010]第一方面,本申请实施例提供一种数据处理方法,该数据处理方法包括:接收包括数据以及数据对应的第一地址的第一数据操作请求,其中,第一地址为数据在数据处理装置中的存储地址;
[0011]根据所述第一地址,从日志列表中的N个条目中确定所述第一地址对应的目标条目,其中,N个条目与所述LLC中的N个cache line一一映射,一个条目用于记录发送给所述数据处理装置的数据操作请求对应的日志,N为大于或等于1的整数,所述日志列表存储在所述非易失性快速存储介质中;
[0012]若所述第一数据操作请求之前的数据操作请求写入的地址对应的cache line与所述第一地址对应的cache line相同,则删除所述目标条目中的日志,根据第一数据操作请求,在所述目标条目上记录第一数据操作请求对应的日志,其中,所述第一数据操作请求对应的日志包括所述数据、所述第一地址以及所述第一数据操作请求的操作类型;存储所述数据。
[0013]本申请实施例提供一种数据处理方法,通过在具有非易失性快速存储介质的数据处理装置中,将接收到第一数据操作请求对应的日志记录到存储在非易失性快速存储介质中的日志列表里,由于快速存储介质是非易失性的,这样当数据处理装置时,可以通过日志列表中的记录恢复第一数据操作请求,并且要求请求发起端重新发起相应的内存操作。由于本申请实施例只需要两次网络接口调用(例如,用于发起数据传输请求和获取传输结束的标记),一次网络传输(例如,将数据从客户端发送到数据处理装置),因此与现有技术相比减少了内存持久化守护进程被调度执行的次数。
[0014]另外,如果第一地址对应的cache line和某一个地址对应的cache line相同,则本申请实施例通过将第一数据操作请求对应的日志记录在第一地址确定的目标条目上,这样可以不断淘汰对相同cache line的数据操作请求,达到记录最后一次cache line操作的目的,又因为日志列表存储在非易失的快速存储介质中,因此,存储系统突然断电时,只需要根据日志列表中的内容恢复对应的cache line操作即可。
[0015]一种可能的实现方式中,若所述第一数据操作请求之前的数据操作请求写入的地址对应的cache line与所述第一地址对应的cache line不相同,则根据第一数据操作请求,在所述目标条目上记录第一数据操作请求对应的日志。
[0016]一种可能的实现方式中,如果第一数据操作请求所请求的有效载荷Payload的长度大于预设字节,则将第一数据操作请求所请求的有效载荷与预设字节相等的部分记录至目标条目,并将第一数据操作请求所请求的有效载荷中除预设字节以外的部分记录在由第一地址和预设字节确定的条目中。
[0017]一种可能的实现方式中,根据所述第一地址,从N个条目中确定第一地址对应的目标条目,包括:确定第一地址对应的cache line;根据N个cache line与N个条目之间的映射关系以及第一地址对应的cache line,从N个条目中确定目标条目。
[0018]一种可能的实现方式中,日志列表包括多级子日志列表,多级子日志列表包括的N个条目之间一一映射,多级子日志列表具有不同的优先级,本申请实施例提供的方法还包括:第二操作请求对应的cache line与所述第一操作请求对应的cache line相同;在确定所述第二地址对应的第一条目上记录有所述第一操作请求对应的日志时,按照预设优先级顺序依次将多级子日志列表中前一级子日志列表中第一条目上记录的日志迁移至与所述
前一级子日志列表相邻的下一级子日志列表中第一条目上;将所述第二数据操作请求对应的日志记录在优先级最高的子日志列表中第一条目上。
[0019]一种可能的实现方式中,存储数据,包括:通过直接内存访问DMA方式将数据存储在数据处理装置中第一地址对应的c本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:接收第一数据操作请求,所述第一数据操作请求包括数据以及所述数据对应的第一地址,所述第一地址为所述数据在数据处理装置中的存储地址;根据所述第一地址,从日志列表中的N个条目中确定所述第一地址对应的目标条目,其中,N个条目与所述数据处理装置中的末级缓存LLC中的N个cache line一一映射,一个条目用于记录发送给所述数据处理装置的数据操作请求对应的日志,N为大于或等于1的整数,所述日志列表存储在所述非易失性快速存储介质中;若所述第一数据操作请求之前的数据操作请求写入的地址对应的cache line与所述第一地址对应的cache line相同,则删除所述目标条目中的日志,根据第一数据操作请求,在所述目标条目上记录第一数据操作请求对应的日志,其中,所述第一数据操作请求对应的日志包括所述数据、所述第一地址以及所述第一数据操作请求的操作类型;存储所述数据。2.根据权利要求1所述的一种数据处理方法,其特征在于,若所述第一数据操作请求之前的数据操作请求写入的地址对应的cache line与所述第一地址对应的cache line不相同,则根据第一数据操作请求,在所述目标条目上记录第一数据操作请求对应的日志。3.根据权利要求2所述的一种数据处理方法,其特征在于,如果所述第一数据操作请求所请求的有效载荷Payload的长度大于预设字节,则将所述第一数据操作请求所请求的有效载荷与所述预设字节相等的部分记录至所述目标条目,并将所述第一数据操作请求所请求的有效载荷中除所述预设字节以外的部分记录在由所述第一地址和所述预设字节确定的其他条目中。4.根据权利要求2或3所述的一种数据处理方法,其特征在于,所述根据所述第一地址,从所述N个条目中确定所述第一地址对应的目标条目,包括:确定所述第一地址对应的cache line;根据所述N个cache line与所述N个条目之间的映射关系以及所述第一地址对应的cache line,从所述N个条目中确定所述目标条目。5.根据权利要求1

4任一项所述的一种数据处理方法,其特征在于,所述日志列表包括多级子日志列表,所述多级子日志列表包括的N个条目之间一一映射,所述多级子日志列表具有不同的优先级,所述方法还包括:接收第二数据操作请求,所述第二操作请求对应的cache line与所述第一操作请求对应的cache line相同;在确定所述第二地址对应的第一条目上记录有所述第一操作请求对应的日志时,按照预设优先级顺序依次将所述多级子日志列表中前一级子日志列表中第一条目上记录的日志迁移至与所述前一级子日志列表相邻的下一级子日志列表中第一条目上;将所述第二数据操作请求对应的日志记录在优先级最高的子日志列表中第一条目上。6.根据权利要求1

【专利技术属性】
技术研发人员:孙贝磊周超李涛
申请(专利权)人:超聚变数字技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1