The invention discloses a communication method and device for reliable connection, wherein the method comprises: setting up shared receiving queue, the receiving queue sharing with local multiple processes corresponding to the receiving queue; for shared buffer for the sharing; if you need to send the message received by the remote node, receiving sharing the queue receives the message and the message is placed into the shared buffer in the process to obtain the corresponding supply. Technical scheme provided by the embodiment of the invention, the receiving queue and set the corresponding shared shared buffer for multiple processes locally, by the place of each process in the background technology corresponds to a receive queue scheme, thereby reducing the number of buffers need to apply for the application, avoid the waste caused by buffer and greatly reduce the cost of memory, to avoid the influence of the scale expansion.
【技术实现步骤摘要】
一种可靠连接的通信方法及装置
本专利技术涉及存储系统
,更具体地说,涉及一种可靠连接的通信方法及装置。
技术介绍
InfiniBand是一种支持多并发连接的“转换线缆”技术,它具有高带宽、低延迟等特点,自问世以来一直被应用于高性能计算领域。InfiniBand支持多种通信服务和通信语义,通信服务包括:可靠连接(ReliableConnection,RC)、不可靠连接(UnreliableConnection,UC)以及不可靠数据报(UnreliableDatagram,UD)等,通信语义包括通道语义和内存语义,通道语义就是发送/接收模型,通信双方都必须参加,内存语义是基于单边操作的通信模型。无论是哪种通信模型,通信双方都必须先在本地创建队列对(QueuePair,QP),QP包括发送队列和接收队列。同时,通信双方都必须在本地注册一块内存区域来作为消息缓冲区。RC是存储系统中使用最多的通信服务,它是一种面向连接的通信模式,一个QP只能与一个远端的QP建立连接并通信。在这种情况下,如果一个进程需要和N个远端进程通信,就需要创建N个QP,对于发送/接收操作来说,接收方的每个QP都需要预先投递多个接收请求,即需要申请多块接收缓冲区。假设每个QP预先投递n个接收请求,每个请求接收缓冲区大小为s1,每个QP发送队列深度为sd(队列深度即为队列可包含的最大消息个数),接收队列深度为rd(此处rd必须大于n),工作请求大小为s2,当所有进程之间全部建立连接时,每个进程需要创建(N-1)个QP,则所需的空间为(n*s1)*(N-1)+(sd+rd)*s2*(N-1)。 ...
【技术保护点】
一种可靠连接的通信方法,其特征在于,包括:设置共享接收队列,所述共享接收队列与本地多个进程相对应;为所述共享接收队列申请共享缓冲区;如果需要接收远端节点发送的消息,则利用所述共享接收队列接收消息并将该消息放置到所述共享缓冲区中供对应进程获取。
【技术特征摘要】
1.一种可靠连接的通信方法,其特征在于,包括:设置共享接收队列,所述共享接收队列与本地多个进程相对应;为所述共享接收队列申请共享缓冲区;如果需要接收远端节点发送的消息,则利用所述共享接收队列接收消息并将该消息放置到所述共享缓冲区中供对应进程获取。2.根据权利要求1所述的方法,其特征在于,利用所述共享接收队列接收消息之前,还包括:将本地多个进程与各进程创建的队列对号的对应关系存储至所述共享接收队列中;利用所述共享接收队列接收消息并将该消息放置到共享缓冲区中供对应进程获取,包括:利用所述共享接收队列接收消息并获取该消息中携带的队列对号,将所述消息及对应队列对号放置到共享缓冲区中供与该队列对号对应的进程获取。3.根据权利要求2所述的方法,其特征在于,所述消息被对应进程获取之后,还包括:删除所述共享缓冲区中缓存的所述消息。4.根据权利要求1所述的方法,其特征在于,为所述共享接收队列申请共享缓冲区,包括:为所述共享接收队列申请共享缓冲区,所述共享缓冲区包括多个子缓冲区,每个子缓冲区包含的缓冲块的大小不同;利用所述共享接收队列将消息放置到所述共享缓冲区中,包括:利用所述共享接收队列将消息放置到与该消息大小对应的子缓冲区中。5.一...
【专利技术属性】
技术研发人员:窦本君,
申请(专利权)人:广东浪潮大数据研究有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。