<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺析openEuler Cantian引擎

openEuler ? 來源:openEuler ? 2023-09-13 17:25 ? 次閱讀

在前陣子的DTCC 2023上,華為團隊與萬里開源聯合發布了一個Mysql的共享存儲并發讀寫的解決方案,其核心技術就是Cantian引擎。Cantian是一個能讓普通的單機數據庫變成具有類似Oracle RAC能力數據庫的中間件,目前支持innodb,今后將支持更多的數據庫存儲引擎。目前已經在openEuler社區開源。

倉庫地址:

https://gitee.com/openeuler/cantian

0113582c-5216-11ee-a25d-92fbcf53809c.png

上圖是Cantian的一個邏輯架構圖,基于企業級集中式存儲,Cantian引擎在MySQL的SQL引擎與innodb存儲引擎之間構建了一個中間層,這個中間層可以模擬innodb的行為,因此MySQL的SQL引擎可以十分方便地與之對接。因為innodb和事務控制是緊密相關的,因此Cantian里除了包含MySQL的存儲層外還包含了MySQL的事務管理層。

01330488-5216-11ee-a25d-92fbcf53809c.png

在MySQL中引入Cantian引擎的好處是,加入這個中間層后,MySQL就具備了多節點并發讀寫的能力,搖身一變就變成了MySQL RAC了。上面這張圖能夠讓大家更好地理解參天引擎。

在Cantian中,undo/temp/log雖然也存儲在共享存儲中,不過是實例獨占式訪問的,不在集群層面共享,平時只能在實例內讀寫。只有故障恢復時,集群中的其他實例才能讀取??刂莆募?、system/users等表空間是可以在集群中并發讀寫的。

那么Cantian是如何實現多實例并發讀寫的呢?在本文第一張圖中有一個Global Cache的示意,在多個實例之間通過緩沖區融合技術實現了多實例一致性訪問。

0159460c-5216-11ee-a25d-92fbcf53809c.png

Cantian實現全局緩沖的算法與Oracle 9I RAC有些類似,根據算法,可以確定某個緩沖塊的Master實例,當某實例擁有current block的時候可以直接訪問,否則需要通過Master咨詢該block是否在某個實例的緩沖中。Master通知該塊的持有者將其發送給需要的數據庫實例。

017d1ff0-5216-11ee-a25d-92fbcf53809c.png

大家看看上面這張Oracle 9i RAC Cache fusion的示意圖,是不是有點和上面的圖十分相似的感覺。不過Cantian在緩沖區融合算法的實現上和Oracle Cache Fusion有較大的差別,并且由于UNDO的訪問特性限制,當MVCC需要一個經過多個實例多次變更的PRE-IMAGE的時候,在Cantian引擎里的組裝過程有些復雜,需要一級級的向前傳遞,最終才能完成獲取。

01a44328-5216-11ee-a25d-92fbcf53809c.png

這種模式的數據訪問如果發生在一個多實例環境下,Cantian引擎可能存在一定的性能問題。如果能夠實現在一個實例完成多次構建,則效率要高很多,只不過這可能會讓分布式鎖管理更為復雜。目前Cantian實現的Cache Fusion算法還只是第一代,隨著該項目的發展,我想這方面的算法會進一步優化。

01cac2f0-5216-11ee-a25d-92fbcf53809c.png

目前Cantian已經實現了與MySQL的對接。MySQL SQL 層與 CTC 通過 MySQL 預定義的 hanlder/handlerton 接口進行交互,CTC插件接收到 MySQL SQL 引擎調用存儲引擎插件執行的請求,通過共享內存通信模塊以及對接層邏輯將請求轉到 Cantian 引擎內核,CTC 插件與 Cantian 引擎通信模塊設計為統一接口,動態可替換機制,支持單進程接口直接綁定、雙進程共享內存通信兩種部署模式。一個 Cantian 引擎進程可以對接一至多個 MySQL 實例,不同實例間通過不同的共享內存通道與 Cantian 引擎進行通信,CTC 插件會維護實例的啟停時集群資源的分配與釋放。MySQL 元數據仍通過 InnoDB 引擎存儲與維護,但 MySQL 對元數據的修改操作會通過 CTC 與 Cantian 引擎廣播到集群中存活的其他 MySQL 實例以保證集群的元數據一致性。廣播過程中遠端 MySQL 實例會使用對應權限的代理用戶執行修改操作,從而保證集群執行語句時的用戶權限的一致性。

020f21ca-5216-11ee-a25d-92fbcf53809c.png

在高可用方面,Cantian引擎加持下的MySQL數據庫無需主從架構的故障切換,應用可以在0數據丟失的情況下實現秒鐘級切換。這對于關鍵業務來說至關重要。

023778fa-5216-11ee-a25d-92fbcf53809c.png

Cantian引擎中的另外一個重要組件是DBStor,DBStor 通過直接提供數據庫 Log 和 Page 的存儲接口,將數據庫業務的存儲邏輯卸載,實現計算和存儲的分離。DBStor 采用 c/s 架構,客戶端部署在計算側,提供給計算節點 Log和 Page 存儲接口;服務端部署在存儲節點,實現 Log 和 Page 的存儲能力;客戶端和服務端基于 TCP/RDMA 來進行通信。

02547964-5216-11ee-a25d-92fbcf53809c.png

DBStor私有接口適配其他友商的存儲需要一定的適配工作。項目組也會陸續開展一些國內外存儲系統的適配工作。這是一個生態構建的過程,需要通過社區生態來共同工作才能完成。在數據庫存儲引擎方面,Cantian目前已經適配了innodb,PostgreSQL存儲引擎也在開發中,我想依托開源社區的力量,會有越來越多的數據庫適配Cantian。

最后再分析一下Cantian的應用場景,我首先想到的是做數據庫一體機。Cantian可以讓一個單機集中式數據庫快速地變成一個高性能、多讀多寫或者強一致性讀寫分離的數據庫系統。如果在后端用高性能分布式存儲替代集中式存儲,還可以形成一個全軟的解決方案。只不過目前Cantian引擎要想獲得高性能,還必須依賴高速CMS網絡和高性能低延時的集中式存儲系統,因此全軟的方案還不是目前的選項,不過作為一個開源項目,隨著Cantian引擎的迭代發展,一切都是可能的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲系統
    +關注

    關注

    2

    文章

    386

    瀏覽量

    40732
  • 數據庫
    +關注

    關注

    7

    文章

    3618

    瀏覽量

    63641
  • 引擎
    +關注

    關注

    1

    文章

    346

    瀏覽量

    22323
  • MySQL
    +關注

    關注

    1

    文章

    776

    瀏覽量

    26079

原文標題:【創新項目探索】淺析openEuler Cantian引擎

文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何完成openEuler面向RK3399開發板的移植?

    如何制作openEuler的rootfs.img?如何完成openEuler面向RK3399開發板的移植?
    發表于 03-04 07:42

    歐拉開源操作系統(openEuler, 簡稱“歐拉”)簡介

    ,創新分布式、實時加速引擎和基礎服務,結合邊緣、嵌入式領域競爭力探索,打造全場景協同的面向數字基礎設施的開源操作系統。 業務價值:openEuler實現了從代碼開源到產業生態的快速構建,為政府、銀行、電信
    發表于 06-17 10:52

    openEuler 社區 2022 年 6 月運作報告

    openEuler社區運作報告2022年6月去年11月,openEuler社區捐贈給開放原子開源基金會后,openEuler在技術、商業、生態、開源建設等各方面取得顯著發展。本月,我們來聊聊
    發表于 07-08 14:37

    openEuler 社區完成首批顧問專家聘用,共同為社區的發展?貢獻力量

    openEuler 在2021年11月捐贈給開放原子開源基金會后,在生態構建、技術創新和商業落地全面加速,取得了跨越式進展。作為一個支持多樣性計算和持續推動技術創新的操作系統開源社區
    發表于 07-29 10:11

    使用 Canonical MAAS 部署 openEuler 測試

    云、HPC 場景時,使用MAAS 是減少運維成本的最佳選擇之一。在本文的測試 中,展示了如何通過Packer 為 MAAS 構建 openEuler 映像并驗證MAAS部署,可使用的臨時解決方法以及如
    發表于 08-24 11:43

    openEuler 資源利用率提升之道 03:rubik 混部引擎簡介

    ,為了保障在線業務服務質量,防范關鍵業務 QoS 違規,rubik 混部引擎規劃提供多重保障以提升工作負載的運行效率及穩定性。第一道防線 - 基于內核特性的資源隔離搶占機制openEuler Kernel
    發表于 09-01 11:00

    一次 Rancher 和 openEuler 的上云之旅

    社區建設 Cloud Image。對于云原生場景,很顯然這是一項非常重要的基礎工作。部署 Rancher 以及下游集群openEuler 雖然內置了 Docker 引擎,但最終我們仍然決定不使
    發表于 09-29 10:57

    RISC-V SIG 推出基于openEuler 的下游發行版 Eulaceura

    近日,openEuler RISC-V SIG 推出了一款基于 openEuler 的發行版-Eulaceura。這是首個基于 openEuler 開發的 RISC-V 架構的發行版,給
    發表于 12-22 15:52

    openEuler 加入 RISC-V Landscape,相關技術已完成生態適配

    開源歐拉 openEuler 已加入 RISC-V Landscape。此次加入 RISC-V Landscape, 意味著 openEuler 在對 RISC-V 架構的生態適配
    發表于 03-16 15:10

    歐拉(openEuler)麒麟信安專場:麒麟信安為openEuler社區賦能

    歐拉(openEuler)麒麟信安專場:麒麟信安為openEuler社區賦能,具備獨立維護、演進能力開放、協作,共享
    的頭像 發表于 11-09 16:16 ?1523次閱讀
    歐拉(<b class='flag-5'>openEuler</b>)麒麟信安專場:麒麟信安為<b class='flag-5'>openEuler</b>社區賦能

    歐拉(openEuler)Summit 2021:基于AI的操作系統性能調優引擎

     歐拉(openEuler)Summit 2021直播會上,重點介紹基于AI的操作系統性能調優引擎。
    的頭像 發表于 11-10 10:46 ?1923次閱讀
    歐拉(<b class='flag-5'>openEuler</b>)Summit 2021:基于AI的操作系統性能調優<b class='flag-5'>引擎</b>

    openEuler Summit開發者峰會:基于AI的操作系統性能調優引擎A-Tune

    openEuler Summit開發者峰會:基于AI的操作系統性能調優引擎A-Tune
    的頭像 發表于 11-10 10:51 ?1387次閱讀
    <b class='flag-5'>openEuler</b> Summit開發者峰會:基于AI的操作系統性能調優<b class='flag-5'>引擎</b>A-Tune

    歐拉(openEuler)Summit 2021:歐拉demo分享——A-Tune

    歐拉(openEuler)Summit 2021上,關于A-Tune:基于AI的操作系統性能調優引擎案例分享。
    的頭像 發表于 11-10 10:18 ?1241次閱讀
    歐拉(<b class='flag-5'>openEuler</b>)Summit 2021:歐拉demo分享——A-Tune

    openEuler Call for X 計劃”正式啟動

    openEuler最具價值專家, openEuler Valuable Professional,是openEuler社區頒發給技術專家的一項榮譽認證,以此表彰他們熱衷實踐、樂于分享的布道精神,為
    的頭像 發表于 06-21 14:36 ?459次閱讀
    “<b class='flag-5'>openEuler</b> Call for X 計劃”正式啟動

    華為宣布CANTIAN引擎開源并發布分布式存儲全閃新品

    8月25日,以“在一起,共迎新機遇”為主題的第三屆華為數據存儲用戶精英論壇在西寧召開。在此次大會上, 華為正式宣布開源CANTIAN引擎,并推出分布式存儲全閃新品。 同時,華為向與會客戶匯報
    的頭像 發表于 08-25 18:45 ?478次閱讀
    華為宣布<b class='flag-5'>CANTIAN</b><b class='flag-5'>引擎</b>開源并發布分布式存儲全閃新品
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>