1、楊傳輝OceanBase CTO打造開發者友好的分布式數據庫OceanBase 整體架構演進2010 20152016 20212022 OceanBase0.10.5單寫多讀架構OceanBase1.x3.x全分布式架構OceanBase4.x單機分布式一體化架構穩定可靠穩定可靠很多個 0 前面那個 1海恩法則29輕微事故每一起嚴重事故的背后,必然有300未遂先兆1000事故隱患次起起支付寶 OceanBase 穩定性最佳實踐數據一致性:應校盡?;煦绻こ蹋簲嗑W演練,持續備份恢復周邊應用核心應用(流水型)核心應用(狀態型)區分流水庫與狀態庫高性能高性能、低門檻、低門檻一體化架構提升性能,降低門
2、檻業界 NewSQL 系統單機性能有較大差距point selectread onlywrite onlyread writeinsertupdate non indexYugabyteDB 2.15.1.095,68965,29921,04042,3929,82341,152CockroachDB 22.1.356,69922,40617,71516,72711,71623,727MySQL 8.0496,464260,336313,009219,206124,834113,61695,689 65,299 21,040 42,392 9,823 41,152 56,699 22,406 1
3、7,715 16,727 11,716 23,727 496,464 260,336 313,009 219,206 124,834 113,616 0100,000200,000300,000400,000500,000600,000YugabyteDB 2.15.1.0CockroachDB 22.1.3MySQL 8.032c*3 節點,500G 內存,NVMe SSDQPS單機性能不足使得 NewSQL 無法成為主流數據庫MySQLPostgreSQLNewSQL分庫分表HBase分布式表格Cassandra分布式 KV分布式系統百家爭鳴,沒有哪一類產品能夠同時滿足開發者的擴展性、功能
4、和性能需求開發者需要一個兼具分布式擴展性和單機完備功能&高性能的單機分布式一體化數據庫為什么一體化架構能夠同時做到可擴展和高性能?分布式數據庫 OLTP 應用場景:大部分為單機讀寫(比例 80%),少部分為跨機讀寫(小于 20%)分布式可擴展數據分布數據重分布不支持動態擴展集中式數據庫存儲層數據動態分布每條 SQL 一次遠程訪問NewSQL單機單日志流分區動態綁定到日志流單機讀寫沒有分布式 overheadOceanBase 4.x數據預先分區,各分區獨立日志流大量分區管理 overheadOceanBase 1.x3.xIBMSQL 層KV 層日志流日志流日志流日志流日志流日志流日志流一體化
5、架構從單機到分布式對應用無感知日志流日志流客戶端客戶端MySQL 兼容協議單機拓展到分布式日志流遷移中MySQL 兼容協議一體化架構單機性能超越 MySQLpoint selectread onlyread writewrite onlyinsertupdate non indexMySQL 8.0501,519249,230210,091288,776107,786108,997OceanBase 4.1712,266311,078292,658420,599234,703256,710501,519 249,230 210,091 288,776 107,786 108,997 712,2
6、66 311,078 292,658 420,599 234,703 256,710 0100,000200,000300,000400,000500,000600,000700,000800,000MySQL 8.0OceanBase 4.132c 測試環境MySQL 8.0 vs OceanBase 4.1.0.0QPS一體化架構降低開發者使用門檻128GB64GB4C32G/4C16G/4C8G單一 OBServer 進程+主備模式與單機數據庫完全一樣的使用方式功能功能強大強大一份數據既做交易又做分析HTAP 系統的適用場景數據倉庫會員交易支付賬務適合 OLTP(含復雜查詢)和實時分析,
7、但無法在一套系統同時做OLTP 和離線數倉分析HTAP往往是輕量級分析,看重易用性,適合 HTAP中小企業單個業務往往是輕量級分析,適合 HTAP;公司級數倉數據量大,分析請求很復雜,適合單獨的數據倉庫或者數據湖大企業交易型應用分析型應用交易型應用分析型應用交易型應用分析型應用表同步兩個系統一個系統,行存/PAX+列存一個系統,行存/PAX主副本提供 HTAP 服務成本低,性價比高數據無延遲,保證一致性主副本 OLTP+備副本實時 OLAP成本低,性價比高主備副本之間有毫秒級延遲主庫 OLTP+備庫 OLAP成本高,性價比低兩個系統導致較大延遲和數據不一致風險HTAP 的關鍵在于采用一個系統,
8、一份 schema一份數據能否解決資源隔離的問題?開啟 cgroup CPU 隔離IO 隔離(4.x 新增)Tenant 1Tenant 1:weight 20000weight 20000Tenant 3Tenant 3:iopsiops 1000010000Tenant 2Tenant 2:weight 10000weight 10000Tenant 4Tenant 4:max_iopsmax_iops 50005000海底撈 HTAP 一份數據兩份收益,TCO 下降 35%OLTP 分庫分表數據傳輸OLTP 單機數據庫實時 OLAP排號會員營銷交易社區POSOceanBaseHTAP擴展
9、能力不足無法應對節假日流量突增高峰過后無法及時縮容交易到分析鏈路復雜交易到分析同步存在時延無限擴展能力連續服務極致壓縮和多租戶混部一份數據兩份收益,TCO 下降%AP 能力相比之前提升%30357*24符合技術趨勢符合技術趨勢多云原生從上云到多云原生上云裸金屬服務器大規格自建產品工具云原生存儲計算分離小規格云上生態多云原生開放的存儲計算分離多云安全多云生態開放的存儲計算分離是多云原生的必然路徑開放的存儲計算分離:基于不同云存儲做二次開發,通過緩存熱點數據解決云存儲延遲問題不同云存儲的功能、性能(帶寬、延遲)、成本、穩定性有較大差異阿里云 OSS 支持追加寫,騰訊 COS 和 AWS S3 不支
10、持云存儲帶寬遠低于本地存儲帶寬=更好的數據壓縮對象存儲成本低=冷數據放對象存儲云盤在某些場景穩定性較差=數據庫副本自動切流在同樣的性能下,相比云上 MySQL,OceanBase 可幫助用戶直接降低18.57%18.57%至42.05%42.05%整體成本1.2281.3941.6162.16911.0451.1061.25700.511.522.5150G300G500GB1TBMySQL主備(ecs.g6.xlarge*2 4C16G+ESSD PL1)OceanBase三副本(ecs.g6.xlarge*2+ecs.s6-c1m1.small+ESSD PL1)1.2331.3031.3
11、951.62811.0191.0441.10800.20.40.60.811.21.41.61.8150G300G500GB1TBMySQL主備(m6i.xlarge*2 4C16G+IO2)OceanBase三副本(m6i.xlarge*2+t2.micro 4C16G+IO2)阿里云 OceanBase 與 MySQL 性價比(Price/Performance)AWS OceanBase 與 MySQL 性價比(Price/Performance)4C16G sysbench OceanBase 比 MySQL 8.0 高22.2%22.2%OceanBase 存儲成本大約是 MySQL
12、 的1/31/3注釋:MySQL 部署主備庫,OceanBase 部署三個副本,兩個全功能副本+一個日志副本性價比:讓我們在云上算個帳GCash 借助 OceanBase Cloud 靈活部署存儲空間下降 70%資源成本降低 40%隨規模增長“越用越貴”數據“存不下”并發“扛不住”資源碎片化維護管理難人力投入和資源成本,成本收益“不匹配”頻繁拆分重構,風險高、效率低多租戶+高壓縮“越用越劃算”分布式自由擴展告別拆分重構HTAP 混合負載數據變現提速消減復雜度專注業務創新7*24 專業服務,省心用、放心用大集群資源池化TCO 降低 40%過去現在易使用、易參與易使用、易參與基于開源持續降低開發者
13、參與門檻越來越多的用戶把社區版用在 OLTP 核心場景核心 OLTP 基礎能力從“能用”到更“好用”從 open-core 到完備工具核心引擎核心引擎開放開放生態生態建設建設第一階段第一階段第二階段第二階段第三階段第三階段3.x 開源實現從無到有,從能用到“更好用”易用性易用性改進改進4.x 安裝更簡單2 分鐘一鍵安裝部署下載離線安裝包 tar xf oceanbase-all-in-one.xxx.tar.gz bin/install.sh source/.bash_rc obd demo執行 obd demo解壓安裝 wget oceanbase-all-in-one.xxx.tar.gz
14、4.x 文檔更有效:基于用戶旅程和用戶場景重構文檔20%文檔解決 80%用戶問題按照使用鏈路和場景組織用戶旅程(user journey)從“我們有什么”到“我們解決什么問題”文檔不好找文檔不好用20%面向場景滿足高頻使用訴求了解OceanBase 簡介試用快速上手開發應用開發部署部署數據庫遷移數據遷移管理管理數據庫80%按需檢索參考參考指南常見問題術語以隔離節點為例以隔離節點為例為什么要隔離節點什么情況下需要隔離節點隔離節點的邏輯如何隔離節點詳細的操作步驟和適用場景必要的風險提示和使用建議4.x 工具更輕量推出開發者更友好的 OCP Express原來現在使用獨立的 OceanBase 集群
15、作為元數據存儲介質,獨立部署,安裝包 1.7GB數據庫組件及相關資源的全生命周期管理,巡檢、告警等平臺級功能OceanBase 管理平臺支持多 OceanBase 集群管理,具備規?;芸啬芰Χ嗉汗芾碇行幕渴鹨蕾囉?Docker 管理,對運維要求高運維復雜對存儲和計算等資源占用較多,使用門檻高高資源占用代碼未開源閉源輕量化的數據庫管理工具,具備基礎數據庫管理功能,以及監控、性能、診斷、日志等實時信息展示輕量化工具支持對本地集群的管理,功能聚焦,操作簡單本地集群管理內置于 OceanBase 集群中,在使用 OBD 部署 OceanBase 集群時可選擇安裝該工具。安裝包僅 80MB集群內置
16、作為 OceanBase 的工具插件,使用 OBD 進行管理運維簡單將于 2023 年 6 月進行代碼開源開源低資源占用本地集群中少量元數據存儲,資源占用低4.x 共建更簡單統一社區版和企業版的代碼分支3.1 opensource3.2 releasemastermaster3.1 opensource3.2 releasemastermaster3.1內部開源內部開源Cherry-pickCherry-pick雙向同步雙向同步雙向同步過去現在4.x 社區更活躍GitHub 活躍度快速提升代碼提交頻率Issue 首次響應時間代碼貢獻者數量PR 處理時間OceanBase 4.1 正式發布,面向
17、開發者的里程碑版本內核能力性能提升兼容性運維TP TP 性能優化性能優化AP AP 性能優化性能優化旁路導入旁路導入兼容兼容 MySQLMySQL 8.08.0MySQL MySQL BinBinloglog易用性快速安裝部署快速安裝部署OCP ExpressOCP Express場景化文檔場景化文檔日志可讀性日志可讀性統計信息統計信息分布式事務存儲優化租戶級備庫RTO 為開發者而生 _三條超級符號交相呼應,取自 OceanBase 經典“三副本”架構 含義詮釋含義詮釋 _ _OceanBase 新 Logo 的設計靈感源自“流動的數據”,數據是數字經濟時代最重要的生產要素,它無處不在,它散落在城市的每一個角度。當數據有機排列組合也即“流動起來”時,它將具備無窮的想象力。OceanBase 作為原生分布式數據庫的開拓者,致力于用技術讓海量數據的管理和使用更簡單。OceanBase 希望通過創新的技術讓數據能夠可信、高效、低成本地流動,幫助更多企業實現新的商業可能,創造數字時代的新未來。代表科技,寓意專業可靠,同時象征著生命之源 海洋。代表生活,有了它的加入,可以為生活增添更多可能與生機。代表未來,寓意著對技術的不懈探索,象征更加美好的未來。打造開發者友好的分布式數據庫打造開發者友好的分布式數據庫讓數據流動起來!