CN111277616B - 一种基于rdma的数据传输方法和分布式共享内存*** - Google Patents
一种基于rdma的数据传输方法和分布式共享内存*** Download PDFInfo
- Publication number
- CN111277616B CN111277616B CN201811474421.2A CN201811474421A CN111277616B CN 111277616 B CN111277616 B CN 111277616B CN 201811474421 A CN201811474421 A CN 201811474421A CN 111277616 B CN111277616 B CN 111277616B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- shared memory
- link
- request
- 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 38
- 230000005540 biological transmission Effects 0.000 title claims abstract description 33
- 238000012546 transfer Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 2
- 238000002360 preparation method Methods 0.000 claims description 2
- 238000004321 preservation Methods 0.000 claims 1
- 238000003860 storage Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于RDMA的数据传输方法,该方法包括:第一节点创建至少两个完成队列CQ,并将CQ与CPU固定映射;所述第一节点创建QP链路,将至少两个QP共享绑定同一个CQ;所述第一节点通过创建的所述QP链路并发向第二节点发送数据。相对于现有技术而言,通过创建多个CQ队列以及多路QP链路,提高了分布式共享内存***的吞吐性能。本申请还公开了一种分布式共享内存***。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于RDMA的数据传输方法和分布式共享内存***。
背景技术
远程直接内存访问(Remote Direct Memory Access,RDMA)是指在没有双方主机操作***直接参与下,直接访问远端内存,从而提供高带宽、低延迟的特性。
分布式环境下的数据传输决定了***整体的I/O性能,这类技术被广泛的应用在分布式文件***和数据库***中。传统的分布式***大多以磁盘作为存储介质,并通过基于TCP/IP的远程过程调用模块进行数据传输,由于磁盘带宽低,延迟高,因此网络传输模块本身不会成为瓶颈,近年来,内存日益廉价,将存储和计算转移到内存的内存计算已经成为一种趋势。
虽然分布式共享内存***已经广泛应用,但是,存储介质性能提升的同时,网络传输也面临极大的挑战,因此,亟需提高分布式共享内存***的吞吐性能。
发明内容
本申请实施例提供一种基于RDMA的数据传输方法,以提高分布式共享内存***的吞吐性能。
本申请实施例还提供一种基于RDMA的分布式共享内存***,以提高分布式共享内存***的吞吐性能。
本申请实施例采用下述技术方案:
一种基于远程直接内存访问RDMA的数据传输方法,应用于分布式共享内存***,包括:
第一节点创建至少两个完成队列CQ,并将CQ与CPU固定映射;
所述第一节点创建队列对QP链路,将至少两个QP共享绑定同一个CQ;
所述第一节点通过创建的所述QP链路并发向第二节点发送数据。
一种基于RDMA的分布式共享内存***,所述共享内存***包括客户端和服务端,所述服务端包括主节点和副节点,所述共享内存***各节点通过RDMA进行网络互连,并通过所述数据传输方法进行数据传输。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
第一节点创建至少两个完成队列CQ,并将CQ与CPU固定映射;所述第一节点创建队列对QP链路,将至少两个QP共享绑定同一个CQ;所述第一节点通过创建的所述QP链路并发向第二节点发送数据。这样,通过创建多个CQ队列以及多路QP链路,以并行的方式对数据进行传输,提高了分布式共享内存***的吞吐性能。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本发明实施例提供的基于RDMA的数据传输方法的流程图;
图2是本发明一个实施例的RDMA并行网络拓扑结构示意图;
图3是本发明一个实施例的RPC架构示意图;
图4是本发明一个实施例的F2PC协议流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
在介绍本发明的实施例之前,先对本发明的出现的术语进行说明。
直接内存访问(Direct Memory Access,DMA)允许某些硬件装置独立地直接读写内存,而不需要CPU的大量的参与,该技术用于缓解CPU对外设的处理压力,整个数据传输过程只需CPU在最开始进行初始化传输操作,然后将整个传输动作交给DMA控制器来执行完成。
远程直接内存访问(Remote Direct Memory Access,RDMA)是一种新型的网络通讯技术,它能实现在双方操作***不直接参与的情况下直接访问远端内存,并实现高吞吐、低延迟的特性。RDMA通过让网络适配器将数据直接传输到对方的内存实现数据传输的零拷贝,从而消除了CPU和Cache的直接参与,并减少了冗余的现场切换。目前支持RDMA技术的网络协议栈包括Infiniband、RoCE(RDMAover Converged Ethernet)和iWARP,前两者由Mellanox提供硬件技术支持,特别地,后两者由于采用了普通以太网的数据链路层,因此均可与以太网完全兼容。RDMA通信的具体流程:首先由本地CPU以MMIO的方式向网卡发起通信命令,本地网卡检测到新的命令之后,以DMA的方式从内存中读取待传输的数据,将数据打包,并在RDMA网络进行数据传输,对方网卡接收到数据之后,将数据以DMA的方式直接写入到内存对应的地址区域,并将相应的完成信息写入到完成队列,整个过程不涉及对方CPU参与,并绕过了双方的内核,实现了数据传输的零拷贝。通讯双方在建立通讯之前需要经过一下步骤:打开网卡设备;创建保护域,该保护域会与在后面阶段创建的对象绑定,以保障数据传输安全,任何跨域的操作将会引发通讯错误;注册内存,该阶段将通讯的内存进行注册,具体方法是建立该段内存用户态地址和内存地址的映射,并将映射表存到网卡缓存,同时生成该内存段的密钥对(lkey和rkey),网卡在本地或远程访问内存时需携带相应的密钥进行身份确认;创建完成队列CQ(Completion Queue),发送方在消息发送成功后或者接收方接收消息成功后均会将相应的完成信息放入完成队列,用户可以反复检测完成队列来验证消息发送是否完成;创建队列对QP(Queue Pair),QP可以对等到TCP/IP的socket,QP由Send Queue和Receive Queue构成,发送方把要发送的消息放入发送队列,同时接收方将接收请求放入接收队列,双方通过这种方式进行网络通信;QP状态初始化,通讯双方创建一一对应的QP之后,需要进行一系列的握手状态转换,直到成功建立起通讯链路。QP可以建立不同的连接类型,包括RC(Reliable Connection)、UC(Unreliable Connection)和UD(Unreliable Datagram),RC模式下,QP只能进行一对一可靠传输,数据包发送成功后会有相应的确认信息反馈,UC模式下,QP进行一对一传输,无确认信息反馈,UD模式则无一对一的界定,也没有确认信息反馈,以上三种传输模式具有不同的特点,同时对通信原语的支持程度也各不相同。
远程过程调用(Remote Procedure Call,RPC)是一种远程通讯协议,它能实现让运行在一台计算机上的程序远程地调用另一台计算机上面的函数,而用户无需关心底层的通讯交互策略。远程过程调用被广泛的应用在分布式***领域,它采用了客户端-服务器的模型,调用过程总是由客户端发起,具体包括将调用函数序列号,调用函数参数等信息打包发送到服务端,然后服务端接收请求并执行,服务端执行完毕后将执行结果返回给客户端。
共享内存指在多处理器的计算机***中,可以被不同中央处理器访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存。由于其他处理器可能也要存取,任一缓存数据更新后,共享内存就需要立即更新,否则不同处理器可能用到不同的数据。共享内存的类似方案有分布内存、分布共享内存,用以解决同类问题。
图1是本发明实施例提供的一种RDMA的数据传输方法的流程图,该方法包括下述步骤:
步骤S101:第一节点创建至少两个完成队列CQ,并将CQ与CPU固定映射;
通过该固定映射,各CPU核心轮询监测所属CQ,并根据完成信息处理远程请求。
步骤S102:所述第一节点创建队列对QP链路,将至少两个QP共享绑定同一个CQ;
这里的第一节点可以是分布式共享内存***中的任何节点,本申请对此不作限定。如果本节点中的任何节点均可以通过步骤S101和S102建立链接,这样便可以构建全相连的网络链路,即任意两节点之间通过RDMA网络链路进行通信,且节点之间建立多个QP连接实现并行数据传输。
通过步骤S101和S102,即可构建全相连的并行网络链路,图2是本发明实施例的并行网络拓扑结构图,展示了***中网络互连的具体情形,其中,各节点建立N个QP,N>2,N为整数。另外,创建的CQ的个数为常数,一般为4。
通过上面的网络拓扑,节点间建立的链路从传统的1条变为N条,相应的,QP的消息处理能力得到提升,还保证N个节点之间的互连拓扑;另一方面,CQ的数量设置为常数值,主要是在实际通讯场景下,CQ的数量上升到3以后,总体性能提升不大。另外,CQ的管理也随着其数量的上升而变得复杂,举例来说,客户端开启m个独立线程并行的调用ibv_poll_cq来轮询查询CQ,等待新的完成信息,并及时完成相应的逻辑处理,而CQ的数量上升,将引入更多的线程,会在***不繁忙的时候导致大量的CPU时间循环等待,加重了CPU开销,如果用单个线程处理多个CQ完成信息,会迫使CPU轮询地检查各个CQ,导致处理延迟上升。因此,较佳的,单个节点创建的CQ的数量为4时,可以保证分布式共享内存***的数据传输性能。
步骤S103:所述第一节点通过创建的所述QP链路并发向第二节点发送数据。
在RDMA网络链路中,消息发起方发起的消息会在QP中以队列的形式处理,这种模式将并发的消息序列化,单个QP的消息处理能力存在上限,因此,本申请实施例中,节点之间直接建立多个QP连接,并行传输数据,以提高***吞吐量。
在本发明一个实施例中,在第一节点通过创建的所述QP链路并发向第二节点发送数据时,会将轻量级远程请求命令和大块真实数据分别使用所述并行网络拓扑的不同网络链路进行传输,具体来说:
在待发送数据为请求命令时,第一节点通过所述QP链路中的第一链路发送;在待发送数据为内存数据时,所述第一节点通过所述QP链路中的第二链路发送。第一链路和第二链路为不同的QP链路。
如果轻量级远程请求命令和大块真实数据(内存数据)在同一条QP链路交替执行,会互相影响,导致小块数据延迟增加,大块数据不能用满网卡带宽。故轻量级远程请求命令和大块真实数据分别使用并行网络拓扑的不同网络链路进行隔离传输具有很好的优化效果,小块数据可以充分降低延迟,大块数据能充分利用网卡的最大带宽,从而提高数据传输的性能。
在本发明的一个实施例中,共享内存***中节点的读操作通过RDMA_READ原语实现。
在本发明的一个实施例中,通过校验码机制完成读写竞争的并发控制:当分布式共享内存***的客户端读取到服务端节点的数据(该数据包括真实数据和检验码)后,计算校验码并判断是否与读取到的校验码相同,若两者相同,则完成读操作;否则,重新读取。
基于上述数据传输方法,本发明还提供一种基于RDMA的分布式共享内存***,所述共享内存***包括客户端和服务端,各节点通过RDMA进行网络互连,所述共享内存***包括客户端和服务端,所述客户端是远程数据读写请求的发起者,所述服务端包括主节点和副节点,接收客户端请求的服务器作为主节点,其余服务器作为副节点,服务器集群用于存储和管理共享数据,向所述客户端提供读写服务。
该分布式共享内存***中的各节点间,通过本发明提供的数据传输方法进行数据传输,在此不做赘述。
在本发明的一个实施例中,可以基于本发明提供的数据传输方法,即并行网络拓扑和消息、数据分隔思想,实现快速两阶段提交协议(Fast Two-phaseCommit,F2PC),进而构建分布式共享内存***。
在本发明的一个实施例中,快速两阶段提交协议的两个阶段可以抽象为两次主节点的远程过程调用。由于RDMA通讯直接基于用户态内存,因此需要在发送方和接收方设置消息收发缓冲区管理模块,如图3所示,该模块具有以下特点:
主节点、副节点在***启动时,申请一块连续内存,并注册到网卡,使得该区域可被远程访问;
在发送数据时,主节点线程可以从本地缓冲区管理模块申请一块大小适合的内存,用于存放即将发送的消息;
副节点作为消息接收方,需要处理并发的远程请求,因此该缓冲区被固定分割,每块内存区域被一个客户端独立使用,从而避免数据重写丢失,副节点在回复主节点请求时,将回复消息放入对应主节点的内存区域。
主节点通过RDMA_WRITE_WITH_IMM原语将数据写入服务端对应内存区域,工作线程快速感知,并定位到消息存储地址,识别消息类别,并作出相应处理,在本***中,消息类别分为事务准备请求,事务提交请求。
另外,在F2PC***中,远程调用的回复结果内容极短,事务执行回复内容为“成功”或“失败”,事务提交的回复内容为“完成”或“未完成”,因此回复报文只需返回一个数据包头即可,即数据段长度置零,这样可以有效降低数据传输压力,降低传输延迟,提高***吞吐。
在本发明的一个实施例中,所述***的各节点通过快速两阶段提交协议进行共享内存***的更新操作。所述两阶段提交协议通过RDMA原语实现两次远程过程调用。并优化并行数据传输过程,更新存储区的数据,以保障***的一致性。
在本发明的一个实施例中,当所述***的服务端主节点接收到来自客户端的更新请求时,所述主节点发起写操作(RDMA_WRITE),将需要更新的内容发送至副节点的日志区。
请参阅图4,为本发明一个实施例中的F2PC协议流程图。在本发明的一个实施例中,所述两阶段提交协议的第一阶段主节点向所有副节点发起准备请求“prepare”请求,并开始等待副节点响应。
当副节点收到主节点的提交请求时,副节点通过刷新指令“flush”将日志持久化;
各副节点响应主节点发起的询问,若副节点的刷写日志操作执行成功,则返回成功消息“success”,否则返回失败消息“fail”。
在本发明的一个实施例中,所述两阶段提交协议的第二阶段过程中,当主节点从所有副节点获得的完成消息都为“success”时,主节点向所有副节点发出保存请求“commit”;
当收到主节点的“commit”请求时,副节点将日志区数据转写入数据区。若写入成功,则释放事务期间内占用的资源,并可以在所述日志区追加“tx_end”字段;副节点向主节点发送“success”消息。
主节点若收到所有副节点反馈的"success"消息,则完成事务提交,成功返回客户端。
在本发明的一个实施例中,如果主节点在第一阶段的询问超时之前没有获取到所有副节点的“success”响应消息,则主节点通知所有副节点删除日志,返回客户端写入失败。如果主节点在第二阶段的询问超时之前没有获取到所有副节点的“success”响应消息,则主节点向未响应节点重复发送。
另外,本发明实施例的基于RDMA的分布式共享内存***的其它构成以及作用对于本领域的技术人员而言都是已知的,为了减少冗余,不做赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (5)
1.一种基于RDMA的分布式共享内存***,其特征在于,所述共享内存***包括客户端和服务端,所述服务端包括主节点和副节点,所述共享内存***各节点通过RDMA进行网络互连,并进行数据传输,包括:
第一节点创建至少两个完成队列CQ,并将CQ与CPU固定映射;
创建队列对QP链路,将至少两个QP共享绑定同一个CQ;
通过创建的所述QP链路并发向第二节点发送数据,包括:在待发送数据为请求命令时,通过所述QP链路中的第一链路发送;在待发送数据为内存数据时,通过所述QP链路中的第二链路发送;
所述共享内存***的各节点通过快速两阶段提交协议进行共享内存***的更新操作,当所述服务端主节点接收到来自所述客户端的更新请求时,所述主节点发起写操作,将需要更新的内容发送至所述副节点的日志区。
2.如权利要求1所述***,其特征在于,所述两阶段提交协议的第一阶段具体包括:
所述***的主节点向所有副节点发起准备请求prepare,并等待副节点响应;
当所述副节点收到所述主节点的提交请求时,通过刷新指令flush将日志持久化;
若副节点的刷写日志操作执行成功,则返回成功消息success,否则返回失败消息fail。
3.如权利要求2所述***,其特征在于,所述两阶段提交协议的第二阶段具体包括:
当主节点从各所述副节点获得的完成消息都为success时,主节点向所有副节点发出保存请求commit;
当所述副节点收到主节点的commit请求时,副节点将日志区数据转写入数据区;若写入成功,则释放事务期间内占用的资源,副节点向主节点发送success消息;
主节点若收到所有副节点反馈的success消息,则完成事务提交,成功返回客户端。
4.如权利要求2所述***,其特征在于,若主节点在第一阶段的询问超时之前没有获取到所有副节点的success响应消息,则主节点通知所有副节点删除日志,返回客户端写入失败;
若主节点在第二阶段的询问超时之前没有获取到所有副节点的success响应消息,则主节点向未响应节点重复发送提交请求,副节点恢复工作后,执行相应提交操作并返回。
5.如权利要求1所述***,其特征在于,所述***通过锁机制实现并发控制,当客户端发出更新请求时,检查需要更新的目标区域,若已上锁,则等待锁释放;否则,对目标区域加锁直至完成写操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811474421.2A CN111277616B (zh) | 2018-12-04 | 2018-12-04 | 一种基于rdma的数据传输方法和分布式共享内存*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811474421.2A CN111277616B (zh) | 2018-12-04 | 2018-12-04 | 一种基于rdma的数据传输方法和分布式共享内存*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111277616A CN111277616A (zh) | 2020-06-12 |
CN111277616B true CN111277616B (zh) | 2023-11-03 |
Family
ID=70999945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811474421.2A Active CN111277616B (zh) | 2018-12-04 | 2018-12-04 | 一种基于rdma的数据传输方法和分布式共享内存*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111277616B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691382A (zh) * | 2020-12-31 | 2022-07-01 | 中兴通讯股份有限公司 | 基于rdma的通信方法、节点、***及介质 |
CN115033521A (zh) * | 2021-02-24 | 2022-09-09 | 华为技术有限公司 | 网络接口卡、消息收发方法和存储装置 |
US11444790B1 (en) | 2021-07-09 | 2022-09-13 | International Business Machines Corporation | Dynamic exclusion of RDMA-based shared memory communication based on performance-related data |
CN113535630A (zh) * | 2021-09-14 | 2021-10-22 | 苏州浪潮智能科技有限公司 | 一种跨节点通信方法、装置、设备及可读存储介质 |
WO2023040683A1 (zh) * | 2021-09-17 | 2023-03-23 | 华为技术有限公司 | 传输数据的方法和输入输出设备 |
CN115878335B (zh) * | 2021-09-27 | 2024-06-11 | 华为技术有限公司 | 一种锁传递方法及相关装置 |
CN115037783B (zh) * | 2022-05-19 | 2024-04-09 | 阿里巴巴(中国)有限公司 | 数据传输方法及装置 |
CN114710515B (zh) * | 2022-06-06 | 2022-11-11 | 浪潮电子信息产业股份有限公司 | 一种通信方法及相关组件 |
CN115022420A (zh) * | 2022-07-06 | 2022-09-06 | 拓尔思天行网安信息技术有限责任公司 | 单向数据传输***、方法及装置 |
CN116455849B (zh) * | 2023-06-15 | 2023-08-11 | 中国人民解放军国防科技大学 | 一种面向众核处理器的并发通信方法、装置、设备和介质 |
CN116662037B (zh) * | 2023-07-24 | 2023-10-20 | 杭州鉴智机器人科技有限公司 | 一种共享内存的处理方法、装置、电子设备及存储介质 |
CN116932273B (zh) * | 2023-09-18 | 2024-06-11 | 深圳云豹智能有限公司 | 一种用于rdma中的功能级复位处理方法、装置及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2265158A1 (en) * | 1998-04-07 | 1999-10-07 | Lucent Technologies Inc. | Method and apparatus for correct and complete transactions in a fault tolerant distributed database system |
WO2002035367A1 (en) * | 2000-10-20 | 2002-05-02 | Banderacom Inc. | Infiniband channel adapter for performing direct dma between pci bus and infiniband link |
KR20020043365A (ko) * | 2000-12-04 | 2002-06-10 | 오길록 | 분산 주기억장치 데이터베이스의 중복제어 방법 |
US7103626B1 (en) * | 2000-05-24 | 2006-09-05 | Hewlett-Packard Development, L.P. | Partitioning in distributed computer system |
CN101303656A (zh) * | 2008-06-06 | 2008-11-12 | 中国科学院计算技术研究所 | 一种Java应用程序远程直接内存访问方法 |
US8843441B1 (en) * | 2012-01-17 | 2014-09-23 | Amazon Technologies, Inc. | System and method for maintaining a master replica for reads and writes in a data store |
WO2015078219A1 (zh) * | 2013-11-27 | 2015-06-04 | 华为技术有限公司 | 一种信息缓存方法、装置和通信设备 |
CN105518611A (zh) * | 2014-12-27 | 2016-04-20 | 华为技术有限公司 | 一种远程直接数据存取方法、设备和*** |
CN106657365A (zh) * | 2016-12-30 | 2017-05-10 | 清华大学 | 一种基于rdma的高并发数据传输方法 |
CN106790563A (zh) * | 2016-12-27 | 2017-05-31 | 浙江省公众信息产业有限公司 | 分布式存储***和方法 |
CN107818056A (zh) * | 2016-09-14 | 2018-03-20 | 杭州华为数字技术有限公司 | 一种队列管理方法及装置 |
CN108268208A (zh) * | 2016-12-30 | 2018-07-10 | 清华大学 | 一种基于rdma的分布式内存文件*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8037154B2 (en) * | 2005-05-19 | 2011-10-11 | International Business Machines Corporation | Asynchronous dual-queue interface for use in network acceleration architecture |
US7733875B2 (en) * | 2005-05-19 | 2010-06-08 | International Business Machines Corporation | Transmit flow for network acceleration architecture |
US9871734B2 (en) * | 2012-05-28 | 2018-01-16 | Mellanox Technologies, Ltd. | Prioritized handling of incoming packets by a network interface controller |
US9069633B2 (en) * | 2012-12-20 | 2015-06-30 | Oracle America, Inc. | Proxy queue pair for offloading |
-
2018
- 2018-12-04 CN CN201811474421.2A patent/CN111277616B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2265158A1 (en) * | 1998-04-07 | 1999-10-07 | Lucent Technologies Inc. | Method and apparatus for correct and complete transactions in a fault tolerant distributed database system |
US7103626B1 (en) * | 2000-05-24 | 2006-09-05 | Hewlett-Packard Development, L.P. | Partitioning in distributed computer system |
WO2002035367A1 (en) * | 2000-10-20 | 2002-05-02 | Banderacom Inc. | Infiniband channel adapter for performing direct dma between pci bus and infiniband link |
KR20020043365A (ko) * | 2000-12-04 | 2002-06-10 | 오길록 | 분산 주기억장치 데이터베이스의 중복제어 방법 |
CN101303656A (zh) * | 2008-06-06 | 2008-11-12 | 中国科学院计算技术研究所 | 一种Java应用程序远程直接内存访问方法 |
US8843441B1 (en) * | 2012-01-17 | 2014-09-23 | Amazon Technologies, Inc. | System and method for maintaining a master replica for reads and writes in a data store |
WO2015078219A1 (zh) * | 2013-11-27 | 2015-06-04 | 华为技术有限公司 | 一种信息缓存方法、装置和通信设备 |
CN105518611A (zh) * | 2014-12-27 | 2016-04-20 | 华为技术有限公司 | 一种远程直接数据存取方法、设备和*** |
CN107818056A (zh) * | 2016-09-14 | 2018-03-20 | 杭州华为数字技术有限公司 | 一种队列管理方法及装置 |
CN106790563A (zh) * | 2016-12-27 | 2017-05-31 | 浙江省公众信息产业有限公司 | 分布式存储***和方法 |
CN106657365A (zh) * | 2016-12-30 | 2017-05-10 | 清华大学 | 一种基于rdma的高并发数据传输方法 |
CN108268208A (zh) * | 2016-12-30 | 2018-07-10 | 清华大学 | 一种基于rdma的分布式内存文件*** |
Non-Patent Citations (3)
Title |
---|
A.KALIA等.Fasst: fast scalable and simple distributed transactions with two-sided (rdma) datagram rpcs.《In Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation(OSDI)》.2016,第185-201页. * |
Fasst: fast scalable and simple distributed transactions with two-sided (rdma) datagram rpcs;A.KALIA等;《In Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation(OSDI)》;20161104;文章正文第1-2、5节 * |
基于Infiniband网络的消息传输技术研究;叶庆;刘森;张严辞;;四川大学学报(自然科学版)(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111277616A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111277616B (zh) | 一种基于rdma的数据传输方法和分布式共享内存*** | |
CN106657365B (zh) | 一种基于rdma的高并发数据传输方法 | |
CN108268208B (zh) | 一种基于rdma的分布式内存文件*** | |
US11934341B2 (en) | Virtual RDMA switching for containerized | |
CA2509404C (en) | Using direct memory access for performing database operations between two or more machines | |
WO2020077680A1 (zh) | 数据传输方法、***以及代理服务器 | |
US10484472B2 (en) | Methods and systems for efficiently moving data between nodes in a cluster | |
US9405574B2 (en) | System and method for transmitting complex structures based on a shared memory queue | |
CN113485823A (zh) | 数据传输方法、装置、网络设备、存储介质 | |
US20190079895A1 (en) | System and method for maximizing bandwidth of pci express peer-to-peer (p2p) connection | |
US11025564B2 (en) | RDMA transport with hardware integration and out of order placement | |
US11068412B2 (en) | RDMA transport with hardware integration | |
CN111404931B (zh) | 一种基于持久性内存的远程数据传输方法 | |
CN101599991A (zh) | 一种基于高速通信协议的提升网络文件***性能的方法 | |
CN108710638A (zh) | 一种基于混合rdma操作的分布式并发控制方法及*** | |
US20240039995A1 (en) | Data access system and method, device, and network adapter | |
CN110535811B (zh) | 远端内存管理方法及***、服务端、客户端、存储介质 | |
WO2022017475A1 (zh) | 一种数据访问方法及相关设备 | |
KR20140047230A (ko) | 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템 | |
CN116049085A (zh) | 一种数据处理***及方法 | |
US7089378B2 (en) | Shared receive queues | |
CN112181681A (zh) | 一种远程调用方法、装置、计算机设备及存储介质 | |
CN114691382A (zh) | 基于rdma的通信方法、节点、***及介质 | |
CN113434290A (zh) | 基于raft协议的数据处理方法和设备,及计算机存储介质 | |
US11849005B2 (en) | Method and apparatus for accelerating network transmission in memory-disaggregated environment |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |