[发明专利]用于使用RDMA的低等待时间FIFO消息收发中支持多个发送器的系统和方法有效
| 申请号: | 201410035289.0 | 申请日: | 2014-01-24 |
| 公开(公告)号: | CN104639596B | 公开(公告)日: | 2018-04-27 |
| 发明(设计)人: | P·G·南迪;N·K·阿格拉沃尔;M·K·南比亚 | 申请(专利权)人: | 塔塔咨询服务有限公司 |
| 主分类号: | H04L29/08 | 分类号: | H04L29/08 |
| 代理公司: | 上海专利商标事务所有限公司31100 | 代理人: | 姬利永 |
| 地址: | 印度马哈*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 用于 使用 rdma 等待时间 fifo 消息 收发 支持 发送 系统 方法 | ||
技术领域
本文描述的本主题通常涉及消息收发系统,且尤其涉及用于在使用RDMA的低等待时间消息收发中支持多个发送器的系统。
背景技术
消息收发系统的重要方面是消息的等待时间和吞吐量。随着网络速度的稳步提升,现在期望消息收发系统在几微秒内在多个发布器和订阅器之间传递数百万的消息。迄今为止所使用的各种消息收发系统都带有锁定机制,且忍受缓慢的处理速度。除此之外,它们仅仅支持从单个发送器到单个接收器的消息收发。
现有技术中的进程之一公开了,用于数据中心的消息收发应用中的消息总线提供通信机制,以便提供具有高吞吐量的低等待时间消息收发。然而,这种应用提供从单个发送器向单个接收器发送消息的机制,且不存在对多个发送器在无需知道其他发送器的存在的情况下同时发送消息的支持。
进一步,另一应用公开在公布节点和订阅器节点之间的动态订阅和消息路由,其中,在多个节点中,通过总线将订阅模块、公布模块和其他模块耦合在一起。尽管这种方法使用多个队列,但它不能提供无锁机制以及多个发送器同时向队列写入的解决方案。
现有技术中的进程之一公开用于低等待时间消息收发系统的无锁机制,其中,在队列中提供存储缓冲器,以便存储和检索由自由指针元件指向的消息。来自队列的存储缓冲器在循环链表中相互链接,且据此读取消息。然而,该方案不提供用于支持多个发布器的任何装置。
另一现有技术进程提供用于实现使用用于远程消息收发的RDMA技术的消息收发软件的系统和方法。但是它不提供对多个发布器的任何支持。因而现有技术进程无法以无缝方式提供多发布器支持。现有技术方法中,消息被存储 在队列中,多个发布器向队列写入,且当写入器中的一个正在向队列写入时,其他写入器被锁定以免写入。一旦第一写入器完成其写入,在此之后另一写入器可以向队列写入。这阻碍了消息收发系统的速度和性能。因此,有必要增强消息收发的速度而不管同时向系统写入的发布器的数量。
发明内容
提供本发明内容以便介绍与用于在进程间通信中传送和接收主宿在至少一个宿主节点上的多个消息的系统和方法相关的多个方面,以及下面在具体实施方式中进一步描述的多个方面。本发明内容不旨在标识所要求保护的主题的必要特征,也不旨在用于确定或限制所要求保护的主题的范围。
在一种实现中,描述了用于在进程间通信中传送主宿在至少一个宿主节点上的多个消息的系统。该系统包括处理器、耦合到处理器的网络接口卡(NIC)、消息收发库以及存储器,其中,网络接口卡启用远程直接内存访问(RDMA)以便发送消息,消息收发库包括一个或多个消息发送和消息接收函数,这些消息发送和消息接收函数以无锁方式同时允许多个消息收发。其中,存储器被耦合到处理器。处理器能够执行被存储在存储器中的多个模块。所述多个模块进一步包括组织模块、映射模块和传送模块。映射模块被配置为将每个远程发送器进程映射到与宿主节点相关联的每个FIFO子队列,并通过使用一个或多个存储器映射文件,将远程发送器进程中的每一个和与接收节点相关联的相应FIFO子队列映射起来。组织模块被配置为从与宿主节点相关联的至少一个用户接收消息,并将从用户接收到的消息排列在与宿主节点相关联的一个或多个先进先出(FIFO)子队列中,其中,FIFO子队列是专用于每个用户的,且被存储在存储器映射文件中。传送模块被配置为使用相应远程发送器进程将来自与宿主节点相关联的每个FIFO子队列的消息传送到与接收节点相关联的相应FIFO子队列。
在一种实现中,描述了用于在进程间通信中接收主宿在至少一个宿主节点上的多个消息的系统。该系统包括处理器、耦合到处理器的网络接口卡(NIC)、消息收发库和耦合到处理器的存储器,其中,网络接口卡启用远程直接内存访问(RDMA)以便接收消息,其中,消息收发库包括一个或多个消息发送和消息接收函数,这些消息发送和消息接收函数以无锁方式同时允许多个消息收发。处理器能够执行被存储在存储器中的多个模块。多个模块包括检索模块和 读取模块。检索模块被配置为接收从具有至少一个用户的一个或多个宿主节点传送的多个消息,并将这样接收的消息排列在先进先出(FIFO)子队列中,其中,每个FIFO子队列是专用于每个用户的,且被存储在存储器映射文件中。读取模块被配置为通过在FIFO模式中使用循环技术从FIFO子队列中的每一个读取多个消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于塔塔咨询服务有限公司,未经塔塔咨询服务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410035289.0/2.html,转载请声明来源钻瓜专利网。





