[發明專利]一種基于RDMA的高并發數據傳輸方法有效
| 申請號: | 201611261723.2 | 申請日: | 2016-12-30 |
| 公開(公告)號: | CN106657365B | 公開(公告)日: | 2019-12-17 |
| 發明(設計)人: | 陸游游;舒繼武;陳游旻 | 申請(專利權)人: | 清華大學 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08 |
| 代理公司: | 11201 北京清亦華知識產權代理事務所(普通合伙) | 代理人: | 張潤 |
| 地址: | 10008*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 rdma 并發 數據傳輸 方法 | ||
1.一種基于RDMA的高并發數據傳輸方法,其特征在于,包括數據傳輸系統,數據存儲在所述數據傳輸系統的各節點內存中,所述數據傳輸系統的各節點通過RDMA進行網絡互聯,所述數據傳輸系統包括客戶端和服務端,所述客戶端是數據遠程讀寫請求的發起者,所述服務端用于存儲和管理共享數據,并發控制依賴于分布式鎖協議,所述分布式鎖包含共享式讀鎖和獨享式寫鎖,該方法包括以下步驟:
S1:在所述客戶端接入所述數據傳輸系統前,構建分級緩沖區,其中,所述分級緩沖區用于遠程數據收發時進行數據的臨時存放;
S2:實施遠程數據讀寫時,由所述客戶端主動執行用戶緩沖區、所述分級緩沖區和遠端存儲區之間的數據轉移,其中,所述數據轉移的過程包括:從遠端讀取數據時,所述客戶端首先通過緩沖區調度器申請適當大小的內存塊,然后將數據讀請求發送到所述服務端;所述服務端接收到請求之后,將所讀數據塊加鎖,然后將所述數據塊的地址返回給所述客戶端;所述客戶端收到所述數據塊的地址之后,使用RDMA_READ原語將所述所讀數據塊讀取到所述申請的內存塊中;讀取完畢之后,所述客戶端將所述申請的內存塊內的數據拷貝到所述用戶緩沖區中,并遠程地將共享鎖釋放;將數據寫入所述服務端時,客戶端先將數據拷貝到用戶緩沖區,然后使用RDMA_WRITE將數據寫到所述服務端;
S3:所述服務端在所述遠端存儲區的每個獨立數據塊的首部設置鎖字段,用于并發控制,當多客戶端并發讀寫數據時,通過所述分布式鎖協議進行并發控制。
2.根據權利要求1所述的基于RDMA的高并發數據傳輸方法,其特征在于,所述分級緩沖區注冊到網卡,用于數據中轉,在執行遠程數據傳輸時,由緩沖區調度器進行管理。
3.根據權利要求2所述的基于RDMA的高并發數據傳輸方法,其特征在于,所述分級緩沖區被切分為不同大小的多個內存塊,所述多個內存塊由系統配置文件統一設置;
其中,用空閑塊元數據對所述分級緩沖區內的所有內存塊的使用情況進行統一描述,當所述客戶端線程申請內存塊時,更新所述空閑塊元數據描述占用信息,當所述客戶端完成數據傳輸后,釋放相應的內存塊。
4.根據權利要求2所述的基于RDMA的高并發數據傳輸方法,其特征在于,所述緩沖區調度器用于:
當所述緩沖區調度器收到所述客戶端的線程申請內存塊請求之后,通過匹配算法獲取適合大小的內存塊;
所述緩沖區調度器通過全局鎖對空閑塊元數據加鎖,并查詢對應大小內存塊的使用情況,以占用最先查詢到的空閑內存塊;
所述緩沖區調度器返回占用的所述空閑內存塊的地址。
5.根據權利要求4所述的基于RDMA的高并發數據傳輸方法,其特征在于,所述匹配算法為:根據傳輸數據的大小選擇相應大小的內存塊。
6.根據權利要求1所述的基于RDMA的高并發數據傳輸方法,其特征在于,所述鎖字段位于對應獨立數據塊的首部,所述鎖字段包括獨享鎖標識和共享鎖標識,所述獨享鎖包括用于存放當前占用客戶端ID和時間戳。
7.根據權利要求6所述的基于RDMA的高并發數據傳輸方法,其特征在于,所述共享鎖的搶占與釋放過程包括:
在搶占所述共享鎖時,所述服務端通過GCC提供的原子操作fetch_and_add對共享字段進行加一操作;然后判斷所述獨享鎖字段當前是否為零,如果為零,則成功返回,否則循環等待直到所述獨享鎖歸零;
在釋放所述共享鎖時,所述客戶端遠程調用RDMA_FETCH_AND_ADD原語對所述共享鎖字段減一,并返回。
8.根據權利要求6所述的基于RDMA的高并發數據傳輸方法,其特征在于,所述獨享鎖的搶占與釋放過程包括:
在搶占所述獨享鎖時,所述服務端通過GCC提供的原子操作compare_and_swap將完整鎖字段進行比較替換;
在釋放所述獨享鎖時,所述客戶端通過RDMA_COMPARE_AND_SWAP原語將鎖字段歸零,并釋放所述獨享鎖。
9.根據權利要求8所述的基于RDMA的高并發數據傳輸方法,其特征在于,在釋放所述獨享鎖時還包括:
當所述客戶端釋放所述獨享鎖失敗后,所述客戶端對所述共享鎖加一等待,并重復執行替換原語,通過修正比較值直到替換成功。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于清華大學,未經清華大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611261723.2/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:物聯網裝置及網關裝置
- 下一篇:一種硬件、服務器、客戶端數據交互方法





