一种可靠连接的通信方法及装置制造方法及图纸

技术编号:15767643 阅读:482 留言:0更新日期:2017-07-06 16:12
本发明专利技术公开了一种可靠连接的通信方法及装置,其中该方法包括:设置共享接收队列,所述共享接收队列与本地多个进程相对应;为所述共享接收队列申请共享缓冲区;如果需要接收远端节点发送的消息,则利用所述共享接收队列接收消息并将该消息放置到所述共享缓冲区中供对应进程获取。本发明专利技术实施例提供的技术方案中,为本地的多个进程设置对应的共享接收队列及共享缓冲区,以由其代替背景技术中每个进程均对应一个接收队列的方案,从而减少了需要申请的缓冲区的数目,避免了申请缓冲区时造成的浪费,大大降低了内存开销,避免了对规模可扩展性产生的影响。

Communication method and device for reliable connection

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)。假设上述n=5,s1为8kB,s2为64字节,sd和rd都为16,当规模是10k时,每个进程全连接需要420MB的空间,如果是多节点,还需要乘以节点数量,因此,随着通信规模的变大,内存的开销会急剧增大,严重影响规模的可扩展性。综上所述,如何提供一种在可靠连接中降低内存开销的技术方案,是目前本领域技术人员亟待解决的问题。
技术实现思路
本专利技术的目的是提供一种可靠连接的通信方法及装置,以在可靠连接中降低内存开销,避免对规模可扩展性产生的影响。为了实现上述目的,本专利技术提供如下技术方案:一种可靠连接的通信方法,包括:设置共享接收队列,所述共享接收队列与本地多个进程相对应;为所述共享接收队列申请共享缓冲区;如果需要接收远端节点发送的消息,则利用所述共享接收队列接收消息并将该消息放置到所述共享缓冲区中供对应进程获取。优选的,利用所述共享接收队列接收消息之前,还包括:将本地多个进程与各进程创建的队列对号的对应关系存储至所述共享接收队列中;利用所述共享接收队列接收消息并将该消息放置到共享缓冲区中供对应进程获取,包括:利用所述共享接收队列接收消息并获取该消息中携带的队列对号,将所述消息及对应队列对号放置到共享缓冲区中供与该队列对号对应的进程获取。优选的,所述消息被对应进程获取之后,还包括:删除所述共享缓冲区中缓存的所述消息。优选的,为所述共享接收队列申请共享缓冲区,包括:为所述共享接收队列申请共享缓冲区,所述共享缓冲区包括多个子缓冲区,每个子缓冲区包含的缓冲块的大小不同;利用所述共享接收队列将消息放置到所述共享缓冲区中,包括:利用所述共享接收队列将消息放置到与该消息大小对应的子缓冲区中。一种可靠连接的通信装置,包括:设置模块,用于:设置共享接收队列,所述共享接收队列与本地多个进程相对应;申请模块,用于:为所述共享接收队列申请共享缓冲区;接收模块,用于:如果需要接收远端节点发送的消息,则利用所述共享接收队列接收消息并将该消息放置到所述共享缓冲区中供对应进程获取。优选的,还包括:存储模块,用于:利用所述共享接收队列接收消息之前,将本地多个进程与各进程创建的队列对号的对应关系存储至所述共享接收队列中;接收模块包括:第一接收单元,用于:利用所述共享接收队列接收消息并获取该消息中携带的队列对号,将所述消息及对应队列对号放置到共享缓冲区中供与该队列对号对应的进程获取。优选的,还包括:删除模块,用于:所述消息被对应进程获取之后,删除所述共享缓冲区中缓存的所述消息。优选的,所述申请模块包括:申请单元,用于:为所述共享接收队列申请共享缓冲区,所述共享缓冲区包括多个子缓冲区,每个子缓冲区包含的缓冲块的大小不同;所述接收模块包括:第二接收单元,用于:利用所述共享接收队列将消息放置到与该消息大小对应的子缓冲区中。本专利技术提供了一种可靠连接的通信方法及装置,其中该方法包括:设置共享接收队列,所述共享接收队列与本地多个进程相对应;为所述共享接收队列申请共享缓冲区;如果需要接收远端节点发送的消息,则利用所述共享接收队列接收消息并将该消息放置到所述共享缓冲区中供对应进程获取。本专利技术实施例提供的技术方案中,为本地的多个进程设置对应的共享接收队列及共享缓冲区,以由其代替
技术介绍
中每个进程均对应一个接收队列的方案,从而减少了需要申请的缓冲区的数目,避免了申请缓冲区时造成的浪费,大大降低了内存开销,避免了对规模可扩展性产生的影响。附图说明为了更清楚地说明本专利技术实施例或
技术介绍
中的技术方案,下面将对实施例或
技术介绍
描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例提供的一种可靠连接的通信方法的流程图;图2为本专利技术实施例提供的
技术介绍
的可靠连接中队列设置的示意图;图3为本专利技术实施例提供的一种可靠连接的通信方法的可靠连接中队列设置的示意图;图4为本专利技术实施例提供的
技术介绍
的可靠连接中节点连接的示意图;图5为本专利技术实施例提供的一种可靠连接的通信方法的可靠连接中节点连接的示意图;图6为本专利技术实施例提供的一种可靠连接的通信装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1,其示出了本专利技术实施例提供的一种可靠连接的通信方法,可以包括以下步骤:S11:设置共享接收队列,共享接收队列与本地多个进程相对应。需要说明的是,本专利技术实施例提供的一种可靠连接的通信方法可以应用于任一节点,对应的,本专利技术实施例提供的一种可靠连接的通信装置可以集成在任一节点中。在任一节点中,每个进程均设置有一个用于通信的队列对,该队列对包括发送队列及接收队列,本申请中设置共享接收队列(SRQ),也即将每个进程的队列对共享一个接收队列,由该共享接收队列替代每个进程对应的接收队列。S12:为共享接收队列申请共享缓冲区。设置共享接收队列后,消息的接收及共享缓冲区的管理都集中通过共享接收队列来实现,而共享接收队列与共享缓冲区是对应存在的,从而共享接收队列可以将接收到的消息放置到共享缓冲区的对应位置处进行缓存。S13:如果需要接收远端节点发送的消息,则利用共享接收队列接收消息并将该消息放置到共享缓冲区中供对应进程获取。完成步骤S11及步骤S12的设置后,每当接收到远端节点发本文档来自技高网
...
一种可靠连接的通信方法及装置

【技术保护点】
一种可靠连接的通信方法,其特征在于,包括:设置共享接收队列,所述共享接收队列与本地多个进程相对应;为所述共享接收队列申请共享缓冲区;如果需要接收远端节点发送的消息,则利用所述共享接收队列接收消息并将该消息放置到所述共享缓冲区中供对应进程获取。

【技术特征摘要】
1.一种可靠连接的通信方法,其特征在于,包括:设置共享接收队列,所述共享接收队列与本地多个进程相对应;为所述共享接收队列申请共享缓冲区;如果需要接收远端节点发送的消息,则利用所述共享接收队列接收消息并将该消息放置到所述共享缓冲区中供对应进程获取。2.根据权利要求1所述的方法,其特征在于,利用所述共享接收队列接收消息之前,还包括:将本地多个进程与各进程创建的队列对号的对应关系存储至所述共享接收队列中;利用所述共享接收队列接收消息并将该消息放置到共享缓冲区中供对应进程获取,包括:利用所述共享接收队列接收消息并获取该消息中携带的队列对号,将所述消息及对应队列对号放置到共享缓冲区中供与该队列对号对应的进程获取。3.根据权利要求2所述的方法,其特征在于,所述消息被对应进程获取之后,还包括:删除所述共享缓冲区中缓存的所述消息。4.根据权利要求1所述的方法,其特征在于,为所述共享接收队列申请共享缓冲区,包括:为所述共享接收队列申请共享缓冲区,所述共享缓冲区包括多个子缓冲区,每个子缓冲区包含的缓冲块的大小不同;利用所述共享接收队列将消息放置到所述共享缓冲区中,包括:利用所述共享接收队列将消息放置到与该消息大小对应的子缓冲区中。5.一...

【专利技术属性】
技术研发人员:窦本君
申请(专利权)人:广东浪潮大数据研究有限公司
类型:发明
国别省市:广东,44

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

1