阿里雲正式開源PolarDB-X數據庫,曾歷經各屆雙11考驗,現已登陸 GitHub

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"10 月 20 日,阿里雲在 2021 "},{"type":"link","attrs":{"href":"https:\/\/yunqi.aliyun.com\/2021?spm=5176.23756404.J_6574826770.1.5e317c21UJkwBb","title":"xxx","type":null},"content":[{"type":"text","text":"雲棲大會"}]},{"type":"text","text":"現場宣佈正式開源雲原生分佈式數據庫 PolarDB-X 的源代碼,將自研雲原生分佈式核心技術分享出來,進一步推動雲原生分佈式數據庫發展。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/f2\/6b\/f2ff1b970ca5e12a90d00f61babyy06b.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"本次開源遵循 Apache v2(計算層) 和 GPL v2(存儲層) 開源協議,以全共享並尊重原作者著作權的模式開源,用戶可以直接使用或基於阿里雲開源數據庫產品提供二次分發的商用產品和服務。該項目現已在阿里雲官網及 GitHub 上發佈。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"GitHub 地址:https:\/\/github.com\/ApsaraDB\/galaxysql"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/41\/b4\/41dbee5dc4cdca49817512cf7d3b48b4.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"“我們將阿里最核心的雲原生數據庫技術進行開源,希望開發者和客戶通過開源版本快速使用阿里雲數據庫產品技術,並參與到技術產品的迭代過程中來,共建雲原生分佈式數據庫生態。”阿里雲數據庫負責人李飛飛表示。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2013 年,阿里巴巴將最後一臺 Oracle 數據庫從淘寶核心系統中下線,開始用開源數據庫解決“雙 11”等極端流量場景,隨後又扛起了自研雲數據庫的大旗,並在 2017 年雲棲大會前夕推出"},{"type":"link","attrs":{"href":"https:\/\/www.aliyun.com\/product\/outline\/index?spm=5176.155538.J_5834642020.1.611968d79iyHo1","title":"xxx","type":null},"content":[{"type":"text","text":"雲原生分佈式數據庫 PolarDB"}]},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在 2020 年阿里雲峯會上,阿里雲宣佈推出 PolarDB-X 數據庫。PolarDB-X 採用了基於雲原生一體化架構設計,專注解決海量數據存儲、超高併發吞吐、大表瓶頸以及複雜計算效率等瓶頸問題。李飛飛曾表示,“PolarDB 的計算是一寫多讀多個計算節點,最多做到 16 個節點,現在,PolarDB-X 相當於在 PolarDB 之上又加上了一個分佈式拓展層,這樣可以根據企業的併發需求、數據量進行水平拓展。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在今年 5 月 29 日舉辦的 2021 阿里雲開發者大會上,阿里雲宣佈了“阿里雲數據庫開源計劃”,並率先開源了 PolarDB for PostgreSQL 分佈式版,包括數據庫內核、相關插件、工具腳本、測試用例以及設計文檔,適用於中大型企業核心業務場景。李飛飛表示:“我們希望將阿里雲在數據庫技術上積累的豐富經驗,通過標準技術組件和系統的方式開放出來,共建開源數據庫生態。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"本次,阿里雲宣佈開源 PolarDB-X 數據庫,繼續遵循“阿里雲數據庫開源計劃”,並進一步壯大了開源數據庫生態。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/6d\/dd\/6d12d99a5fyy7b2d475d488de2215fdd.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"PolarDB-X 架構演進與核心技術"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"架構演進"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/zhuanlan.zhihu.com\/p\/289870241","title":"xxx","type":null},"content":[{"type":"text","text":"PolarDB-X "}]},{"type":"text","text":"是由阿里自主研發的原生 MySQL 分佈式數據庫,兼容 MySQL 協議與客戶端,具備自動負載均衡、高可用、HTAP 混合負載、支持分佈式事務、全局二級索引等重要特性,專注解決超高併發吞吐、海量數據存儲、大表瓶頸等數據庫瓶頸難題,歷經各屆天貓雙 11 及全行業客戶業務的考驗,其誕生最早可以追溯至阿里在 2009 年發起的“去 IOE”運動。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當時,爲了實現對 Oracle 的替換,並避免以後出現卡脖子情況,阿里將技術的自力更生和自主可控作爲核心訴求。一方面,隨着 x86 技術日趨成熟,穩定性與小型機的差距不斷縮小;另一方面,MySQL 採用輕量化線程模型並具備高併發的支持能力,其生態逐步完善,因此新方案採用了基於 Sharding 技術 + 開源 MySQL 的分佈式架構( TDDL + AliSQL )。而這,也被稱爲 PolarDB-X 0.5 版本時代,這代產品的特徵是以解決擴展性爲目標、面向系統架構使用,尚不具備產品化能力。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"隨着這套架構逐漸成熟,2014 年開始,阿里雲推出了 DRDS + RDS 的分佈式雲數據庫服務,這也被稱爲 PolarDB-X 1.0 時代。這代產品的特徵是採用 Share-Nothing 架構、以解決存儲擴展性爲出發點、提供面向用戶的產品化交付能力。針對用戶使用中的痛點,阿里雲不斷進行產品能力迭代,陸續支持了分佈式事務、全局二級索引、異步 DDL 等內核特性,持續改進 SQL 兼容性,實現子查詢展開、Join 下推等複雜優化,並開發了平滑擴容、一致性備份恢復、SQL 閃回、SQL 審計等運維能力。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2018 年開始,PolarDB-X 進入 2.0 時代,持續探索基於雲架構的分佈式數據庫形態。2019 年,PolarDB-X 團隊完成 DRDS SQL 引擎和 X-DB 數據庫存儲技術的融合,並結合 PolarDB 的雲原生特性,承上啓下推出了新一代的雲原生分佈式數據庫。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"目前,PolarDB-X 共有 1.0 和 2.0 兩種形態。其中,PolarDB-X 1.0 版由計算層 PolarDB-X 實例和存儲層私有定製 RDS 實例組成,通過掛載多個 MySQL 進行分庫分表,提供多種貼合 OLTP 業務的拆分方案,解決高併發、大數據量存儲、在線計算的擴展性難題。PolarDB-X 2.0 版是雲原生分佈式數據庫,支持全局 MVCC 的強一致的分佈式事務、私有 RPC 協議帶來的性能提升、Follower 上的一致性讀能力等,運維管理更加便捷。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"核心技術"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"1. 基於 Paxos 的一致性存儲"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"阿里多年在異地多活的場景下,打磨 Paxos 的一致性共識協議,經過了幾年雙十一的生產級業務的沉澱,基於多分組 Paxos 的技術,將爲 PolarDB-X 提供一致性的數據保證。除了 Paxos 的基礎功能外,在生產環境下也沉澱了比較多的企業特性,比如:Paxos 多分組合並、日誌型副本、熱點更新優化、高可用檢測等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"2. 強一致分佈式事務"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"採用業界比較主流的全局時鐘 TSO + MVCC 的策略,結合 2PC、Paxos 等相關技術,提供可嚴格滿足金融轉賬場景的事務一致性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"3. 分佈式 SQL 引擎 (CBO 優化器、並行計算)"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"基於存儲計算分離、分佈式等特性,基於全新的 volcano\/cascade 優化器模型,提供了 Partition Aware 的計算下推,支持滿足 HTAP 場景的索引選擇以及原生 MPP 的並行計算優化等。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"阿里雲數據庫開源計劃"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如前文言,本次 PolarDB-X 的開源源於阿里雲此前公佈的「阿里雲數據庫開源計劃」。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2021 年 5 月,阿里雲面向所有開發者發佈了「阿里雲數據庫開源計劃」。目前,阿里雲在 GitHub 上有 2600 多個開源項目,3 萬多個貢獻者,Star 超百萬。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"阿里雲首個開源的是 PolarDB for PostgreSQL 分佈式版,包括數據庫內核、相關插件、工具腳本、測試用例以及設計文檔,適用於中大型企業核心業務場景。本次開源遵循 Apache Version 2.0 協議,以全共享並尊重原作者著作權的模式開源,代碼可以修改和再發布。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"PolarDB for PostgreSQL 的“三步走”開源路線圖:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一步,2021 年 6 月開源三節點高可用集羣版本 -Paxos;"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二步,9 月會開源 HLC 高擴展分佈式版本;"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三步,到 2022 年 3 月會開源 Sharding 和插件化版本。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"阿里雲一步一步將 PolarDB for PostgreSQL 變成一個分佈式雲原生數據庫,真正打造雲原生數據庫 2.0 的開源社區。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/ec\/d3\/ec7cccc9ec13971ed52ff17c821f13d3.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"從阿里雲數據庫開源的路線圖來看,到 2022 年左右,這兩年時間內,阿里雲數據庫會分批進行開源。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"爲什麼首先開源 PolarDB PG 版本數據庫?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"李飛飛:爲什麼會選擇這個開源。第一選擇 PolarDB PG 開源是因爲我們看到了,我們希望選擇一個,第一有非常豐富的現有的 PG 生態,第二在 PG 這個領域目前還沒有看到很好的雲原生數據庫的生態,它有各種各樣的數據庫分支,有做分佈式的,但是雲原生的彈性,存儲計算分離,高可用,在 PG 社區是欠缺的,所以我們開源 Polar PG,把核心的雲原生的能力就提供給開源社區,構建一個雲原生 PG 數據庫的生態,這是我們的初衷。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"阿里雲會不會未來把所有數據庫能力都開源?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"李飛飛:這個肯定不會。因爲商業化能力和開源社區之間還是有一點區別,比如基於雲原生管控的能力,還有一些企業級的能力,比如針對商業版數據庫兼容性的能力等等這些,還有其他的企業級的特性,我們可能就會選擇不開源,這部分就是我們商業化版本,我們雲服務提供的版本和開源版本一些核心的開發的點。我們希望用戶,我們的客戶能夠通過開源版本把阿里雲數據庫產品技術快速用起來,並且能夠願意參與到技術產品的迭代過程中去,但是在一些高階的能力上,借鑑我們團隊專業能力和阿里雲服務的能力,形成良好的商業合作伙伴,兩者之間相輔相成,這是我們的基本思考。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"寫在最後"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"得益於雲原生技術對數據庫的徹底重構,數據庫服務已成爲按需取用、安全可靠、成本低廉的服務。雲原生分佈式數據庫具備易用性、高擴展性、快速迭代、節約成本等特徵,是未來必然的發展趨勢,可以解決企業用戶的核心訴求。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"爲了更好地促進數據庫核心技術的發展,InfoQ 在 11 月 26 日召開的【DIVE 全球基礎軟件創新大會】(北京站)的現場特別設置了【數據庫核心技術探討】專場,與業界專家共同探討基礎軟件黃金時代下數據庫領域的發展與實踐。如果你對該議題有興趣,歡迎進入"},{"type":"text","marks":[{"type":"strong"}],"text":"大會官網"},{"type":"text","text":"獲取"},{"type":"text","marks":[{"type":"strong"}],"text":"免費嘉賓票"},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"大會官網:https:\/\/dive.infoq.cn\/2021\/beijing\/track\/1206"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章