CN104679688B - 数据访问方法、装置及系统 - Google Patents
数据访问方法、装置及系统 Download PDFInfo
- Publication number
- CN104679688B CN104679688B CN201310637097.2A CN201310637097A CN104679688B CN 104679688 B CN104679688 B CN 104679688B CN 201310637097 A CN201310637097 A CN 201310637097A CN 104679688 B CN104679688 B CN 104679688B
- Authority
- CN
- China
- Prior art keywords
- data
- llc
- copy
- cache
- access
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000005540 biological transmission Effects 0.000 claims abstract description 79
- 230000008569 process Effects 0.000 claims abstract description 8
- 230000004044 response Effects 0.000 claims description 93
- 230000009466 transformation Effects 0.000 abstract 4
- 238000010586 diagram Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供一种数据访问方法、装置及系统。本发明实施例提供的数据访问方法、装置及系统,通过远程直接数据存取RDMA在处理传输队列中的首个传输任务的同时,提前解析和预处理传输队列中的下一个传输任务,并将下一个传输任务对应的数据的起始地址和大小发送给最后一级高速缓冲存储器LLC,使得LLC可以提前将所述数据的最新副本更新到LLC中;当RDMA处理下一个传输任务时,所述数据的最新副本可以直接从LLC中读取,减少了传输过程中访问上层cache的时间开销,从而可以降低RDMA访问存储单元的访问延迟,提高了数据传输性能。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种数据访问方法、装置及系统。
背景技术
远程直接数据存取(Remote Direct Memory Access,简称RDMA)技术是为了解决网络传输中服务器端数据处理的延迟而产生的。支持RDMA的网络设备(以下简称RDMA设备)在不需要中央处理器(Central Processing Unit,简称CPU)干预的情况下,允许通过网络将数据从本地内存传输到远程内存,或者从远程内存将数据读回到本地内存,而不对操作系统造成任何影响,消除了外部存储器复制和文本交换操作,能够解放内存带宽、提高CPU的利用率,进而改进应用系统性能。
在多核处理器计算机系统中,一个数据有多个副本。通常情况下,这些副本分布在处理器的存储单元中,其中,存储单元包括私有cache(高速缓冲存储器)、共享cache和/或内存;离各处理器核最近的一级cache通常分别为各处理器核的私有cache,离处理器核最远的最后一级cache(Last Level Cache,简称LLC)通常为所有处理器核所共享的共享cache。当RDMA设备访问一个数据时,需要访问LLC和内存以获得该数据最新的副本,当RDMA设备访问LLC时,LLC需要检查LLC中是否存储着数据最新的副本,当LLC中没有存储数据的最新副本时,LLC利用cache一致性模型,若判断更上层的cache中存储着数据最新的副本,则访问更上层的cache,将数据的最新副本读取到LLC中,由LLC将数据最新的副本发送到RDMA设备中。
传统的RDMA设备访问存储单元的访问延迟大,传输性能低。
发明内容
本发明实施例提供一种数据访问方法、装置及系统,以降低访问存储单元的访问延迟,提高数据传输性能。
第一方面,本发明实施例提供一种数据访问方法,所述方法包括:
远程直接数据存取RDMA在处理传输队列中的首个传输任务的同时,获取所述传输队列中的下一个传输任务对应的数据的起始地址和大小,并向最后一级高速缓冲存储器LLC发送同步请求,所述同步请求包括所述数据的起始地址和大小,以供所述LLC根据所述数据的起始地址和大小获取所述数据的最新副本;
所述RDMA在处理所述下一个传输任务时,向所述LLC和内存分别发送访问请求,所述访问请求包括所述数据的起始地址;
所述RDMA接收所述LLC返回的第一访问响应及所述内存返回的第二访问响应;
所述RDMA根据所述第一访问响应和第二访问响应,获取所述数据的最新副本;
其中,所述第二访问响应包括所述数据在所述内存中的副本;所述第一访问响应包括:所述数据的最新副本;或者,所述数据在高速缓冲存储器中没有副本的指示
根据第一方面,在第一方面的第一种可能的实现方式中,所述RDMA根据所述第一访问响应和第二访问响应,获取所述数据的最新副本,包括:
若所述第一访问响应包括:所述数据在高速缓冲存储器中没有副本的指示,则所述RDMA将所述第二访问响应中包括的所述数据在所述内存中的副本确定为所述数据的最新副本;或者,
若所述第一访问响应包括所述数据的最新副本,则所述RDMA根据所述第一访问响应获取所述数据的最新副本。
根据第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述高速缓冲存储器包括:所述LLC及各处理器核各自对应的私有高速缓冲存储器。
第二方面,本发明实施例提供一种数据访问方法,所述方法包括:
最后一级高速缓冲存储器LLC接收远程直接数据存取RDMA发送的同步请求,所述同步请求中包括数据的起始地址和大小;
所述LLC根据所述数据的起始地址和大小获取所述数据的最新副本;
所述LLC接收所述RDMA发送的访问请求,所述访问请求包括所述数据的起始地址,并向所述RDMA返回访问响应,所述访问响应中包括所述获取的所述数据的最新副本。
根据第二方面,在第二方面的第一种可能的实现方式中,所述根据所述数据的起始地址和大小获取所述数据的最新副本,包括:
所述LLC根据所述数据的起始地址和大小,检查所述LLC中是否存储有所述数据的最新副本;
若检查确定所述LLC中存储有所述数据的最新副本时,则所述LLC获取所述数据的最新副本;或者,
若检查确定所述LLC中没有存储所述数据的最新副本时,则所述LLC根据高速缓冲存储器一致性协议、以及所述数据的起始地址和大小,确定存储有所述数据的最新副本的第一高速缓冲存储器;并且,所述LLC向所述第一高速缓冲存储器发送携带所述数据的起始地址和大小的读请求;所述LLC接收所述第一高速缓冲存储器返回的所述数据的最新副本。
根据第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述高速缓冲存储器一致性协议具体为目录协议,其中,所述目录用于记录数据在高速缓冲存储器中的各个副本的高速缓冲存储器状态;相应的,所述LLC根据高速缓冲存储器一致性协议、以及所述数据的起始地址和大小,确定存储有所述数据的最新副本的第一高速缓冲存储器,包括:
所述LLC根据所述数据的起始地址和大小查询目录,将存储有所述数据的副本,并且所述数据的副本的高速缓冲存储器状态为独占状态的高速缓冲存储器确定为存储有所述数据的最新副本的第一高速缓冲存储器。
根据第二方面的第一种或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第一高速缓冲存储器至少为以下任意一个或者其组合:所述LLC、各处理器核各自对应的私有高速缓冲存储器。
第三方面,本发明实施例提供一种远程直接数据存取RDMA,所述RDMA包括:
处理模块,用于在处理传输队列中的首个传输任务的同时,获取所述传输队列中的下一个传输任务对应的数据的起始地址和大小;
发送模块,用于向最后一级高速缓冲存储器LLC发送同步请求,所述同步请求包括所述数据的起始地址和大小,以供所述LLC根据所述数据的起始地址和大小获取所述数据的最新副本;
所述发送模块,还用于在所述处理模块处理所述下一个传输任务时,向所述LLC和内存分别发送访问请求,所述访问请求包括所述数据的起始地址;
接收模块,用于接收所述LLC返回的第一访问响应及所述内存返回的第二访问响应;
所述处理模块,还用于根据所述接收模块接收的所述第一访问响应和第二访问响应,获取所述数据的最新副本;
其中,所述第二访问响应包括所述数据在所述内存中的副本;所述第一访问响应包括:所述数据的最新副本;或者,所述数据在高速缓冲存储器中没有副本的指示。
根据第三方面,在第三方面的第一种可能的实现方式中,所述处理模块具体用于:
若所述第一访问响应包括:所述数据在高速缓冲存储器中没有副本的指示,则将所述第二访问响应中包括的所述数据在所述内存中的副本确定为所述数据的最新副本;或者,
若所述第一访问响应包括所述数据的最新副本,则根据所述第一访问响应获取所述数据的最新副本。
根据第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述高速缓冲存储器包括:所述LLC及各处理器核各自对应的私有高速缓冲存储器。
第四方面,本发明实施例提供一种最后一级高速缓冲存储器LLC,所述LLC包括:
接收模块,用于接收远程直接数据存取RDMA发送的同步请求,所述同步请求中包括数据的起始地址和大小;
获取模块,用于根据所述数据的起始地址和大小获取所述数据的最新副本;
所述接收模块,还用于接收所述RDMA发送的访问请求,所述访问请求包括所述数据的起始地址;
发送模块,用于向所述RDMA返回访问响应,所述访问响应中包括所述获取的所述数据的最新副本。
根据第四方面,在第四方面的第一种可能的实现方式中,所述获取模块,具体用于:根据所述数据的起始地址和大小,检查所述LLC中是否存储有所述数据的最新副本;
若检查确定所述LLC中存储有所述数据的最新副本时,则获取所述数据的最新副本;或者,
若检查确定所述LLC中没有存储所述数据的最新副本时,则根据高速缓冲存储器一致性协议、以及所述数据的起始地址和大小,确定存储有所述数据的最新副本的第一高速缓冲存储器;并且,向所述第一高速缓冲存储器发送携带所述数据的起始地址和大小的读请求;接收所述第一高速缓冲存储器返回的所述数据的最新副本。
根据第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述高速缓冲存储器一致性协议具体为目录协议,其中,所述目录用于记录数据在高速缓冲存储器中的各个副本的高速缓冲存储器状态;相应的,
所述获取模块,具体用于:根据所述数据的起始地址和大小查询目录,将存储有所述数据的副本,并且所述数据的副本的高速缓冲存储器状态为独占状态的高速缓冲存储器确定为存储有所述数据的最新副本的第一高速缓冲存储器;其中,所述目录用于记录数据在所述存储单元中的各个副本的状态。
根据第四方面的第一种或第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述第一高速缓冲存储器至少为以下任意一个或者其组合:所述LLC、各处理器核各自对应的私有高速缓冲存储器。
第五方面,本发明实施例提供一种数据访问系统,所述系统包括:
本发明任意实施例所提供的远程直接数据存取RDMA,以及本发明任意实施例所提供的最后一级高速缓冲存储器LLC。
本发明实施例提供的数据访问方法、装置及系统,通过RDMA在处理传输队列中的首个传输任务的同时,提前解析和预处理传输队列中的下一个传输任务,并将下一个传输任务对应的数据的起始地址和大小发送给LLC,使得LLC可以提前将所述数据的最新副本更新到LLC中;当RDMA处理下一个传输任务时,所述数据的最新副本可以直接从LLC中读取,减少了传输过程中访问上层cache的时间开销,从而可以降低RDMA访问存储单元的访问延迟,提高了数据传输性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据访问方法的流程图;
图2为本发明实施例提供的数据访问方法的另一流程图;
图3为本发明实施例提供的数据访问方法的信令流程图;
图4为本发明实施例提供的远程直接数据存取RDMA的结构示意图;
图5为本发明实施例提供的最后一级高速缓冲存储器LLC的结构示意图;
图6为本发明实施例提供的数据访问系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的数据访问方法的流程图。如图1所示,本发明实施例提供的数据访问方法,包括:
101、RDMA在处理传输队列中的首个传输任务的同时,获取所述传输队列中的下一个传输任务对应的数据的起始地址和大小,并向LLC发送同步请求,所述同步请求包括所述数据的起始地址和大小,以供所述LLC根据所述数据的起始地址和大小获取所述数据的最新副本。
102、所述RDMA在处理所述下一个传输任务时,向所述LLC和内存分别发送访问请求,所述访问请求包括所述数据的起始地址。
103、所述RDMA接收所述LLC返回的第一访问响应及所述内存返回的第二访问响应;其中,所述第二访问响应包括所述数据在所述内存中的副本;所述第一访问响应包括:所述数据的最新副本;或者,所述数据在高速缓冲存储器中没有副本的指示。
104、所述RDMA根据所述第一访问响应和第二访问响应,获取所述数据的最新副本。
具体地,RDMA设备内部将CPU配置的各传输任务排列在传输队列中;RDMA在处理传输队列中的首个传输任务的同时,对所述传输队列中的下一个传输任务进行提前解析和预处理,以获取所述传输队列中的下一个传输任务对应的数据的起始地址和大小,并向LLC发送携带所述数据的起始地址和大小的同步请求。
所述LLC接收到所述同步请求时,根据所述数据的起始地址和大小,确定所述数据在cache中是否存在副本:若是,则所述LLC获取所述数据的最新副本;若否,则所述LLC确定所述数据在所述cache中不存在副本。其中,所述cache至少包括:所述LLC及各处理器核各自对应的私有cache。
所述RDMA在处理所述下一个传输任务时,向所述LLC和内存分别发送访问请求,所述访问请求包括所述数据的起始地址。
所述LLC接收到所述访问请求时,向所述RDMA返回第一访问响应,所述第一访问响应包括:所述数据的最新副本,或者,所述数据在所述cache中不存在副本的指示。
所述内存在接收到所述访问请求时,向所述RDMA返回第二访问响应,所述第二访问响应包括所述数据在所述内存中的副本。
所述RDMA根据所述第一访问响应和第二访问响应,获取所述数据的最新副本。
本发明实施例提供的数据访问方法,通过RDMA在处理传输队列中的首个传输任务的同时,提前解析和预处理传输队列中的下一个传输任务,并将下一个传输任务对应的数据的起始地址和大小发送给LLC,使得LLC可以提前将所述数据的最新副本更新到LLC中;当RDMA处理下一个传输任务时,所述数据的最新副本可以直接从LLC中读取,减少了传输过程中访问上层cache的时间开销,从而可以降低RDMA访问存储单元的访问延迟,提高了数据传输性能。
在上述实施例的基础上,所述RDMA根据所述第一访问响应和第二访问响应获取所述数据的最新副本的一种可行的实现方式为:
若所述第一访问响应包括:所述数据在高速缓冲存储器中没有副本的指示,则所述RDMA将所述第二访问响应中包括的所述数据在所述内存中的副本确定为所述数据的最新副本;
若所述第一访问响应包括所述数据的最新副本,则所述RDMA根据所述第一访问响应获取所述数据的最新副本。
图2为本发明实施例提供的数据访问方法的另一流程图。如图2所示,本发明实施例提供的数据访问方法,包括:
201、LLC接收RDMA发送的同步请求,所述同步请求中包括数据的起始地址和大小。
202、所述LLC根据所述数据的起始地址和大小获取所述数据的最新副本。
203、所述LLC接收所述RDMA发送的访问请求,所述访问请求包括所述数据的起始地址。
204、所述LLC向所述RDMA返回访问响应,所述访问响应中包括所述获取的所述数据的最新副本。
本发明实施例提供的数据访问方法,通过LLC根据RDMA在处理传输队列中的首个传输任务的同时发送的包括下一个传输任务对应的数据的起始地址和大小的同步请求,提前将所述数据的最新副本更新到LLC中;当LLC接收到RDMA处理所述下一个传输任务时发送的访问请求时,可以直接从LLC中读取所述数据的最新副本,减少了传输过程中访问上层cache的时间开销,从而可以降低RDMA访问存储单元的访问延迟,提高了数据传输性能。
在上述实施例的基础上,所述LLC根据所述数据的起始地址和大小获取所述数据的最新副本的一种可行的实现方式为:
所述LLC首先根据所述数据的起始地址和大小,检查所述LLC中是否存储有所述数据的最新副本;若检查确定所述LLC中存储有所述数据的最新副本时,则所述LLC获取所述数据的最新副本;
若检查确定所述LLC中没有存储所述数据的最新副本时,所述LLC根据cache一致性协议、以及所述数据的起始地址和大小,判断在上层cache中是否存储有所述数据的最新副本:若所述LLC确定在上层cache(例如第一cache)中存储有所述数据的最新副本,则所述LLC向所述第一cache发送携带所述数据的起始地址和大小的读请求;并接收所述第一cache返回的所述数据的最新副本;若所述LLC确定所述数据在上层cache中不存在副本时,则所述LLC确定所述数据在所述cache中不存在副本。其中,所述cache至少包括:所述LLC及各处理器核各自对应的私有cache;所述上层cache至少包括:各处理器核各自对应的私有cache;所述第一cache可以为各处理器核各自对应的私有cache中的一个或多个。
可选的,在所述LLC确定所述数据在所述cache中不存在副本的场景下:当所述LLC接收所述RDMA发送的携带所述数据的起始地址的访问请求时,所述LLC向所述RDMA返回携带有所述数据在所述cache中不存在副本的指示的访问响应。
进一步,所述cache一致性协议具体为目录协议,其中,所述目录用于记录数据在所述cache中的各个副本的cache状态;相应的,所述LLC根据cache一致性协议、以及所述数据的起始地址和大小,确定存储有所述数据的最新副本的第一cache的一种可行的实现方式为:
所述LLC根据所述数据的起始地址和大小查询目录,判断所述数据在所述cache中是否存在副本:若是且对应的副本的cache状态为独占状态,则所述LLC将存储有该独占状态的副本的cache确定为存储有所述数据的最新副本的第一cache,并向所述第一cache发送携带所述数据的起始地址和大小的读请求,进而接收所述第一cache返回的所述数据的最新副本;可选的,所述LLC将所述目录中该副本的cache状态从独占改为共享;若是且对应的副本的cache状态为共享状态,则所述LLC无需作多余的操作;若所述目录中不存在所述数据的副本,则所述LLC确定所述数据在所述cache中不存在副本,且此时所述LLC无需作多余的操作。
图3为本发明实施例提供的数据访问方法的信令流程图。本发明实施例提供的数据访问方法可以由LLC、RDMA配合执行。如图3所示,本发明实施例提供的数据访问方法,包括:
301、RDMA在处理传输队列中的首个传输任务的同时,获取所述传输队列中的下一个传输任务对应的数据的起始地址和大小。
302、所述RDMA向最后一级高速缓冲存储器LLC发送同步请求,所述同步请求包括所述数据的起始地址和大小。
303、所述LLC接收所述RDMA发送的同步请求,根据所述数据的起始地址和大小获取所述数据的最新副本。
304、所述RDMA在处理所述下一个传输任务时,向所述LLC和内存分别发送访问请求,所述访问请求包括所述数据的起始地址。
305、所述LLC接收所述RDMA发送的访问请求,并向所述RDMA返回第一访问响应;其中,所述第一访问响应包括:所述数据的最新副本;或者,所述数据在高速缓冲存储器中没有副本的指示。
306、所述内存接收所述RDMA发送的访问请求,并向所述RDMA返回第二访问响应,所述第二访问响应包括所述数据在所述内存中的副本。
307、所述RDMA接收所述LLC返回的第一访问响应以及所述内存返回的第二访问响应,根据所述第一访问响应和第二访问响应,获取所述数据的最新副本。
图4为本发明实施例提供的远程直接数据存取RDMA的结构示意图。如图4所示,本发明实施例提供的RDMA400包括:处理模块401、发送模块402和接收模块403,其中:
所述处理模块401,用于在处理传输队列中的首个传输任务的同时,获取所述传输队列中的下一个传输任务对应的数据的起始地址和大小;
所述发送模块402,用于向最后一级高速缓冲存储器LLC发送同步请求,所述同步请求包括所述数据的起始地址和大小,以供所述LLC根据所述数据的起始地址和大小获取所述数据的最新副本;
所述发送模块402,还用于在所述处理模块401处理所述下一个传输任务时,向所述LLC和内存分别发送访问请求,所述访问请求包括所述数据的起始地址;
所述接收模块403,用于接收所述LLC返回的第一访问响应及所述内存返回的第二访问响应;
所述处理模块401,还用于根据所述接收模块403接收的所述第一访问响应和第二访问响应,获取所述数据的最新副本;
其中,所述第二访问响应包括所述数据在所述内存中的副本;所述第一访问响应包括:所述数据的最新副本;或者,所述数据在高速缓冲存储器中没有副本的指示。
本发明实施例提供的RDMA400可以用于执行图1所示方法实施例所提供的技术方案,其实现原理和技术效果类似,在此不再赘述。
可选的,所述处理模块401具体用于:
若所述第一访问响应包括:所述数据在高速缓冲存储器中没有副本的指示,则将所述第二访问响应中包括的所述数据在所述内存中的副本确定为所述数据的最新副本;或者,
若所述第一访问响应包括所述数据的最新副本,则根据所述第一访问响应获取所述数据的最新副本。
可选的,所述高速缓冲存储器包括:所述LLC及各处理器核各自对应的私有高速缓冲存储器。
图5为本发明实施例提供的最后一级高速缓冲存储器LLC的结构示意图。如图5所示,本发明实施例提供的LLC500包括:接收模块501、获取模块502和发送模块503,其中:
所述接收模块501,用于接收远程直接数据存取RDMA发送的同步请求,所述同步请求中包括数据的起始地址和大小;
所述获取模块502,用于根据所述接收模块501接收的所述数据的起始地址和大小获取所述数据的最新副本;
所述接收模块501,还用于接收所述RDMA发送的访问请求,所述访问请求包括所述数据的起始地址;
所述发送模块503,用于根据所述接收模块501接收的所述RDMA发送的访问请求,向所述RDMA返回访问响应,所述访问响应中包括所述获取的所述数据的最新副本。
本发明实施例提供的LLC500可以用于执行图2所示方法实施例所提供的技术方案,其实现原理和技术效果类似,在此不再赘述。
可选的,所述获取模块502,具体用于:根据所述数据的起始地址和大小,检查所述LLC中是否存储有所述数据的最新副本:
若检查确定所述LLC中存储有所述数据的最新副本时,则获取所述数据的最新副本;或者,
若检查确定所述LLC中没有存储所述数据的最新副本时,则根据高速缓冲存储器一致性协议、以及所述数据的起始地址和大小,确定存储有所述数据的最新副本的第一高速缓冲存储器;并且,向所述第一高速缓冲存储器发送携带所述数据的起始地址和大小的读请求;接收所述第一高速缓冲存储器返回的所述数据的最新副本。
可选的,所述高速缓冲存储器一致性协议具体为目录协议,其中,所述目录用于记录数据在高速缓冲存储器中的各个副本的高速缓冲存储器状态;相应的,所述获取模块502,具体用于:根据所述数据的起始地址和大小查询目录,将存储有所述数据的副本,并且所述数据的副本的高速缓冲存储器状态为独占状态的高速缓冲存储器确定为存储有所述数据的最新副本的第一高速缓冲存储器;其中,所述目录用于记录数据在所述存储单元中的各个副本的状态。
进一步可选的,所述第一高速缓冲存储器至少为以下任意一个或者其组合:所述LLC、各处理器核各自对应的私有高速缓冲存储器。
图6为本发明实施例提供的数据访问系统的结构示意图。如图6所示,本发明实施例提供的数据访问系统600包括:本发明任意实施例所提供的RDMA400,以及本发明任意实施例所提供的LLC500。
本发明实施例提供的数据访问系统,通过RDMA在处理传输队列中的首个传输任务的同时,提前解析和预处理传输队列中的下一个传输任务,并将下一个传输任务对应的数据的起始地址和大小发送给LLC,使得LLC可以提前将所述数据的最新副本更新到LLC中;当RDMA处理下一个传输任务时,所述数据的最新副本可以直接从LLC中读取,减少了传输过程中访问上层cache的时间开销,从而可以降低RDMA访问存储单元的访问延迟,提高了数据传输性能。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (15)
1.一种数据访问方法,其特征在于,包括:
远程直接数据存取RDMA在处理传输队列中的首个传输任务的同时,获取所述传输队列中的下一个传输任务对应的数据的起始地址和大小,并向最后一级高速缓冲存储器LLC发送同步请求,所述同步请求包括所述数据的起始地址和大小,以供所述LLC根据所述数据的起始地址和大小获取所述数据的最新副本;
所述RDMA在处理所述下一个传输任务时,向所述LLC和内存分别发送访问请求,所述访问请求包括所述数据的起始地址;
所述RDMA接收所述LLC返回的第一访问响应及所述内存返回的第二访问响应;
所述RDMA根据所述第一访问响应和第二访问响应,获取所述数据的最新副本;
其中,所述第二访问响应包括所述数据在所述内存中的副本;所述第一访问响应包括:所述数据的最新副本;或者,所述数据在高速缓冲存储器中没有副本的指示。
2.根据权利要求1所述的数据访问方法,其特征在于,所述RDMA根据所述第一访问响应和第二访问响应,获取所述数据的最新副本,包括:
若所述第一访问响应包括:所述数据在高速缓冲存储器中没有副本的指示,则所述RDMA将所述第二访问响应中包括的所述数据在所述内存中的副本确定为所述数据的最新副本;或者,
若所述第一访问响应包括所述数据的最新副本,则所述RDMA根据所述第一访问响应获取所述数据的最新副本。
3.根据权利要求1或2所述的数据访问方法,其特征在于,所述高速缓冲存储器包括:所述LLC及各处理器核各自对应的私有高速缓冲存储器。
4.一种数据访问方法,其特征在于,包括:
最后一级高速缓冲存储器LLC接收远程直接数据存取RDMA发送的同步请求,所述同步请求中包括数据的起始地址和大小;
所述LLC根据所述数据的起始地址和大小获取所述数据的最新副本;
所述LLC接收所述RDMA发送的访问请求,所述访问请求包括所述数据的起始地址,并向所述RDMA返回访问响应,所述访问响应中包括所述获取的所述数据的最新副本。
5.根据权利要求4所述的数据访问方法,其特征在于,所述根据所述数据的起始地址和大小获取所述数据的最新副本,包括:
所述LLC根据所述数据的起始地址和大小,检查所述LLC中是否存储有所述数据的最新副本;
若检查确定所述LLC中存储有所述数据的最新副本时,则所述LLC获取所述数据的最新副本;或者,
若检查确定所述LLC中没有存储所述数据的最新副本时,则所述LLC根据高速缓冲存储器一致性协议、以及所述数据的起始地址和大小,确定存储有所述数据的最新副本的第一高速缓冲存储器;并且,所述LLC向所述第一高速缓冲存储器发送携带所述数据的起始地址和大小的读请求;所述LLC接收所述第一高速缓冲存储器返回的所述数据的最新副本。
6.根据权利要求5所述的数据访问方法,其特征在于,所述高速缓冲存储器一致性协议具体为目录协议,其中,所述目录用于记录数据在高速缓冲存储器中的各个副本的高速缓冲存储器状态;相应的,
所述LLC根据高速缓冲存储器一致性协议、以及所述数据的起始地址和大小,确定存储有所述数据的最新副本的第一高速缓冲存储器,包括:
所述LLC根据所述数据的起始地址和大小查询目录,将存储有所述数据的副本,并且所述数据的副本的高速缓冲存储器状态为独占状态的高速缓冲存储器确定为存储有所述数据的最新副本的第一高速缓冲存储器。
7.根据权利要求5或6所述的数据访问方法,其特征在于,所述第一高速缓冲存储器至少为以下任意一个或者其组合:所述LLC、各处理器核各自对应的私有高速缓冲存储器。
8.一种远程直接数据存取RDMA,其特征在于,包括:
处理模块,用于在处理传输队列中的首个传输任务的同时,获取所述传输队列中的下一个传输任务对应的数据的起始地址和大小;
发送模块,用于向最后一级高速缓冲存储器LLC发送同步请求,所述同步请求包括所述数据的起始地址和大小,以供所述LLC根据所述数据的起始地址和大小获取所述数据的最新副本;
所述发送模块,还用于在所述处理模块处理所述下一个传输任务时,向所述LLC和内存分别发送访问请求,所述访问请求包括所述数据的起始地址;
接收模块,用于接收所述LLC返回的第一访问响应及所述内存返回的第二访问响应;
所述处理模块,还用于根据所述接收模块接收的所述第一访问响应和第二访问响应,获取所述数据的最新副本;
其中,所述第二访问响应包括所述数据在所述内存中的副本;所述第一访问响应包括:所述数据的最新副本;或者,所述数据在高速缓冲存储器中没有副本的指示。
9.根据权利要求8所述的RDMA,其特征在于,所述处理模块具体用于:
若所述第一访问响应包括:所述数据在高速缓冲存储器中没有副本的指示,则将所述第二访问响应中包括的所述数据在所述内存中的副本确定为所述数据的最新副本;或者,
若所述第一访问响应包括所述数据的最新副本,则根据所述第一访问响应获取所述数据的最新副本。
10.根据权利要求8或9所述的RDMA,其特征在于,所述高速缓冲存储器包括:所述LLC及各处理器核各自对应的私有高速缓冲存储器。
11.一种最后一级高速缓冲存储器LLC,其特征在于,包括:
接收模块,用于接收远程直接数据存取RDMA发送的同步请求,所述同步请求中包括数据的起始地址和大小;
获取模块,用于根据所述数据的起始地址和大小获取所述数据的最新副本;
所述接收模块,还用于接收所述RDMA发送的访问请求,所述访问请求包括所述数据的起始地址;
发送模块,用于向所述RDMA返回访问响应,所述访问响应中包括所述获取的所述数据的最新副本。
12.根据权利要求11所述的LLC,其特征在于,所述获取模块,具体用于:根据所述数据的起始地址和大小,检查所述LLC中是否存储有所述数据的最新副本;
若检查确定所述LLC中存储有所述数据的最新副本时,则获取所述数据的最新副本;或者,
若检查确定所述LLC中没有存储所述数据的最新副本时,则根据高速缓冲存储器一致性协议、以及所述数据的起始地址和大小,确定存储有所述数据的最新副本的第一高速缓冲存储器;并且,向所述第一高速缓冲存储器发送携带所述数据的起始地址和大小的读请求;接收所述第一高速缓冲存储器返回的所述数据的最新副本。
13.根据权利要求12所述的LLC,其特征在于,所述高速缓冲存储器一致性协议具体为目录协议,其中,所述目录用于记录数据在高速缓冲存储器中的各个副本的高速缓冲存储器状态;相应的,
所述获取模块,具体用于:根据所述数据的起始地址和大小查询目录,将存储有所述数据的副本,并且所述数据的副本的高速缓冲存储器状态为独占状态的高速缓冲存储器确定为存储有所述数据的最新副本的第一高速缓冲存储器;其中,所述目录用于记录数据在存储单元中的各个副本的状态。
14.根据权利要求12或13所述的LLC,其特征在于,所述第一高速缓冲存储器至少为以下任意一个或者其组合:所述LLC、各处理器核各自对应的私有高速缓冲存储器。
15.一种数据访问系统,其特征在于,包括:如权利要求8-10中任一项所述的RDMA,以及如权利要求11-14中任一项所述的LLC。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310637097.2A CN104679688B (zh) | 2013-12-02 | 2013-12-02 | 数据访问方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310637097.2A CN104679688B (zh) | 2013-12-02 | 2013-12-02 | 数据访问方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104679688A CN104679688A (zh) | 2015-06-03 |
CN104679688B true CN104679688B (zh) | 2017-12-15 |
Family
ID=53314761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310637097.2A Active CN104679688B (zh) | 2013-12-02 | 2013-12-02 | 数据访问方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104679688B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302614A (zh) * | 2015-06-11 | 2017-01-04 | 华为技术有限公司 | 一种数据分配方法和装置 |
CN111858418B (zh) * | 2019-04-30 | 2023-04-07 | 华为技术有限公司 | 一种基于远程直接内存访问rdma的内存通信方法及装置 |
CN118093499A (zh) * | 2024-02-06 | 2024-05-28 | 贝格迈思(深圳)技术有限公司 | 远程内存访问的数据传输方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599991A (zh) * | 2009-07-07 | 2009-12-09 | 浪潮电子信息产业股份有限公司 | 一种基于高速通信协议的提升网络文件系统性能的方法 |
US7917597B1 (en) * | 2006-11-02 | 2011-03-29 | Netapp, Inc. | RDMA network configuration using performance analysis |
CN103227778A (zh) * | 2013-03-26 | 2013-07-31 | 华为技术有限公司 | 内存访问方法、设备和系统 |
-
2013
- 2013-12-02 CN CN201310637097.2A patent/CN104679688B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7917597B1 (en) * | 2006-11-02 | 2011-03-29 | Netapp, Inc. | RDMA network configuration using performance analysis |
CN101599991A (zh) * | 2009-07-07 | 2009-12-09 | 浪潮电子信息产业股份有限公司 | 一种基于高速通信协议的提升网络文件系统性能的方法 |
CN103227778A (zh) * | 2013-03-26 | 2013-07-31 | 华为技术有限公司 | 内存访问方法、设备和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104679688A (zh) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11349940B2 (en) | Server side data cache system | |
CN111177161B (zh) | 数据处理方法、装置、计算设备和存储介质 | |
CN101388824B (zh) | 一种机群系统中分片存储模式下文件读取的方法及系统 | |
CN104580437A (zh) | 一种云存储客户端及其高效数据访问方法 | |
TW201220197A (en) | for improving the safety and reliability of data storage in a virtual machine based on cloud calculation and distributed storage environment | |
US9075722B2 (en) | Clustered and highly-available wide-area write-through file system cache | |
CN101794271A (zh) | 多核内存一致性的实现方法和装置 | |
CN111274288B (zh) | 分布式检索方法、装置、系统、计算机设备及存储介质 | |
CN106598692A (zh) | 在逻辑卷中创建镜像文件、虚拟机启动方法及服务器 | |
US20170153909A1 (en) | Methods and Devices for Acquiring Data Using Virtual Machine and Host Machine | |
CN113419824A (zh) | 数据处理方法、装置、系统及计算机存储介质 | |
US9483523B2 (en) | Information processing apparatus, distributed processing system, and distributed processing method | |
US9183150B2 (en) | Memory sharing by processors | |
CN109992566A (zh) | 一种文件访问方法、装置、设备及可读存储介质 | |
CN113010549A (zh) | 基于异地多活系统的数据处理方法、相关设备及存储介质 | |
CN105610917B (zh) | 实现系统中同步数据修复的方法及系统 | |
CN110489696A (zh) | 缓存更新方法、装置及电子设备、存储介质 | |
CN104679688B (zh) | 数据访问方法、装置及系统 | |
CN114721844A (zh) | 数据缓存方法和装置、计算机设备、存储介质 | |
EP3249539B1 (en) | Method and device for accessing data visitor directory in multi-core system | |
CN105574008A (zh) | 应用于分布式文件系统的任务调度方法和设备 | |
US20140164324A1 (en) | Utilization of data structures to synchronize copies of a resource | |
CN109710183B (zh) | 一种数据同步方法及装置 | |
WO2018075009A1 (en) | Response caching | |
CN116149566A (zh) | 一种时序数据存储方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |