[發明專利]用于使用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.szxzyx.cn/pat/books/201410035289.0/2.html,轉載請聲明來源鉆瓜專利網。





