持久記憶體-RDMA讓遠端資料不再遠
持久記憶體-RDMA讓遠端資料不再遠
第一屆「中國雲端計算基礎架構開發者大會」(以下簡稱 CID )將在 2020 年 10 月 25 日舉辦 。會中看到有新硬體PM 結合 RDMA 的議題,這是資料庫方面前沿技術,對下一代資料庫發展有重要影響。聽後進行總結。
正文
包括以下幾個議題:PRMEM 是什麼、技術細節、效能、使用場景及開發的庫。
1、什麼是PMEM
SSD 已經結合了 RDMA 技術,需要客戶端將資料從 DRAM 透過 PCIe 複製到網路卡,傳輸到服務端網路卡再複製到 DRAM ,最後透過 PCIe 持久化到 SSD 。具有額外的資料 copy 。結合 PM 新硬體,可以消除這部分的影響。
資料從客戶端到網路卡後,透過RDMA 網路直接到對端的網路卡,然後直接到 PM 。消除了經過 DRAM 的複製流程以及 CPU 的參與,解放出來服務端的 CPU ,進行其他操作。
2、技術細節
標準的RDMA 資料流路徑為:資料經過 L3 cache->RNIC 在透過 RDMA 網路 -> 遠端的 RNIC->L3 cache-> 持久裝置。
問題:資料的視覺化和持久化
資料對CPU 可視,不是對人。資料到達 L3 cache 及以上才能對 CPU 可視,但是並不是持久化到遠端,當機會丟失資料。 ADR 是 Intel 的非同步自重新整理技術,使用這個技術的話,當資料達到 memory controller 這個點後就已經持久化到 PM ,否則需要到達 NVM 的 controller 刷寫到 PM 點才算持久化。
資料到遠端的RDMA 網路卡後,並不能確定資料是在 RNIC 網路卡 buffer 還是 PCIEbuffer 還是已經到持久化裝置裡面。需要額外的步驟來保證資料持久化。
Intel 的 DDIO 技術,提高整體吞吐率,降低延遲,減小能源消耗,讓伺服器更快處理網路介面資料,只能保證資料對 CPU 可見。 DDIO 下資料放到 L3 cache 裡,避免經過記憶體的複製,減小延遲。有兩個方案保證永續性。
DDIO 開啟:主要是遠端執行 CLWB 指令刷完 cache lines 後呼叫 sfence 指令,確保資料全部到持久化記憶體。
DDIO 關閉時:資料不經過遠端的 L3 cache ,需要加個 read 指令,來確保資料都到持久記憶體。
3、效能
RDMA 已經比 TCP/IP 快了近 30% , rpmem 以 6.8 微秒,延遲大大降低
紅色表示CPU 參與,該技術沒有 CPU 參與。網路和硬碟的延遲都大大降低。
Rpmem 的延遲在平均 4kb 的寫進行復制場景下,延遲小於 10us 。
4、案例
計算節點和儲存節點分離,與之前的X8 代相比,該一體機使用 RDMA 訪問 PM 能夠獲得快 10 倍的事務處理延遲及 2.5 倍的事務 IOS 。
OLTP 資料庫複製場景下的高延遲問題。
因為PM 是持久的,所以相比 DRAM 來說可以直接反饋 master 可以提交,然後 slave 非同步進行回放。
AI 方面。
6、額外步驟保證資料到持久記憶體
Intel 開發的 librma 可方便進行程式設計。相比 librpmem ,軟體層次更少,簡化軟體系統複雜度,更注重 API 的應用程度,方便工程師使用更少程式碼實現相同功能。
Librma 使用 push transfer 模型,大大減小 RDMA 複製的操作, RDMA flush 後,由硬體完成資料持久化到 PM 。同時不需要 CPU 參與,降低了延遲。
Librma 從 github 上下載。持久化記憶體程式設計的書籍《 programming persistent memory 》年底完成中文版翻譯,期待完成後開源。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31493717/viewspace-2731431/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RDMA:遠端直接存取資料,國產網路卡
- win10遠端記憶體不足怎麼解決_win10遠端提示記憶體不足如何處理Win10記憶體
- ReFlex:讓遠端快閃記憶體訪問擁有本地訪問的效能Flex記憶體
- 讓XP系統遠離記憶體讀寫錯誤記憶體
- TeamViewer遠端控制軟體,讓你享受遠端辦公的便利View
- Winrm 獲取遠端windows伺服器 cpu、磁碟、記憶體Windows伺服器記憶體
- 微軟發現一個 ChromeOS 遠端記憶體損壞漏洞微軟Chrome記憶體
- IDA遠端除錯 在記憶體中dump Dex檔案除錯記憶體
- 批次遠端桌面管理軟體 批次遠端桌面
- 資料同步——rsync遠端同步
- 遠端, 資料夾遍歷
- expdp遠端匯出資料
- shell插入遠端mysql資料MySql
- 遠端資料庫恢復資料庫
- 如何遠端連線 遠端桌面軟體連線
- NAS如何遠端備份資料
- 遠端連線mysql資料庫MySql資料庫
- JavaScript解析遠端json資料JavaScriptJSON
- Rsync資料遠端同步備份
- DUPLICATE遠端複製資料庫資料庫
- IMPDP匯入遠端資料庫資料庫
- 批次遠端桌面管理軟體下載 批次遠端桌面
- “SSH”讓遠端控制更安全(轉)
- 讓遠端桌面更好的支援遊戲遊戲
- VNC遠端協助軟體,VNC遠端協助軟體下載!VNC
- 初識遠端開發,使用Jetbrains IDE進行遠端開發解決筆記本記憶體不夠的問題AIIDE筆記記憶體
- 遠端桌面軟體概述
- 持久記憶體程式設計記憶體程式設計
- 在CentOS6.0上配置Oracle資料庫可以遠端使用的遠端配置。CentOSOracle資料庫
- NAS如何掛載遠端資料夾
- Oracle expdp資料泵遠端匯出Oracle
- ORACLE 配置連線遠端資料庫Oracle資料庫
- 資料庫遠端檔案匯入資料庫
- 多個遠端資料庫查詢資料庫
- 遠端資料庫的訪問 (轉)資料庫
- 資料庫遠端連線失敗資料庫
- 如何快速讓MySQL資料庫伺服器支援遠端連線MRMySql資料庫伺服器
- 遠端桌面控制軟體,遠端桌面控制軟體推薦,及其連線方法