OceanBase 開源負責人紀君祥聊 社群版 2022 Roadmap

OceanBase開源社群發表於2022-03-29

昨日, OceanBase 開源社群為大家展開了《深入淺出 OceanBase 》系列第一期直播分享:在本次直播中,OceanBase 開源研發總監 紀君祥 帶來了  OceanBase 社群版 2022 Roadmap 精彩演講 ,吸引了數百名觀眾線上觀看,群內互動交流熱火朝天。


錯過了本次直播?沒關係!

看過還覺得意猶未盡?

小編這就為你總結一下全文!




為什麼我們要發起《深入淺出 OceanBase 》系列直播?


之前在跟社群一些朋友交流的過程中發現,不少朋友都希望 OceanBase 能夠多分享更多有趣、有價值的技術點。

OceanBase 開源社群是真正屬於使用者的社群

當我們聽到大家的反饋後,就在琢磨怎麼樣站在社群的角度,為大家每月一至兩次精彩對話。這便是我們發起 《深入淺出 OceanBase 》系列直播的初心, 希望大家通過這個活動能更瞭解 OceanBase。


首先介紹 OceanBase 從過完2022年春節以來的 Monthly Report,旨在將 Oceanbase 最近一些進展和即將發版的特性跟大家展開交流。


活動預告:

1、 後續將推出《深入淺出 OceanBase 》系列, 每月2場線上分享, 2場分享中, 2個 topic 偏運維和產品, 2個偏技術解析, 產品系列如《高可用運維》、《資料同步》、《異地多活》等, 技術系列如《 SQL 系列之 優化器改寫規則1/2/3/4》等等。

2、3月1日推出  《測效能,拿周邊|OceanBase 3.1.2 版邀你來玩》

3、4月份將推出 《文件捉蟲系列》, 屆時歡迎大家參與。


如何更及時獲取官方資訊以及參與社群學習呢,通過掃碼即可加入 OceanBase 官方社群。

OceanBase 開源負責人紀君祥聊 社群版 2022 Roadmap


部落格文章推薦


自春節以來,OceanBase 開源社群一共釋出了40多篇乾貨文章,

其中以下三篇文章內容非常值得推薦:

《OceanBase 資料庫系統概念》首次釋出,系統精準定義 OceanBase !

高效能的連線管理和資料路由元件,OceanBase 生態工具 ODP 詳解

OceanBase 儲存層程式碼解讀(三)巨集塊儲存格式


更多內容,歡迎瀏覽 




2022 RoadMap 大綱

OceanBase 社群版釋出節奏如下:

每年一個大版本 release,每3個月一次 feature 版本, 每個月一個 bug fix 版本( bp 版本).

  1. 大版本釋出即為架構發生升級, 版本升級類似 MySQL 5.7 升級到 MySQL 8.0, 需要做資料遷移操作
  2. feature 版本即為釋出了眾多 feature 或大 feature , 本地手動冷升級(本地重啟)或者通過 OCP 熱升級(不停服務)
  3. bp 版本即為純 bug fix 版本, 版本升級直接替換 binary 即可, 可以使用 ODP 直接 binary 替換或使用 OCP 熱升級


OceanBase 開源負責人紀君祥聊 社群版 2022 Roadmap


OceanBase 開源負責人紀君祥聊 社群版 2022 Roadmap


核心關鍵特性:

整體進度, 核心 feature 都已經完成開發, 持續掃描商業版的 patch , 在測試迴歸中, 整體 JSon 支援 風險存在, 不能保證一定在這個版本中能 release 出來.

  1. ARM 支援: OBServer/OBProxy/OBD 支援 ARM 系統, 但工具還沒有完成適配, 進度已經完成了, 銀聯已經在提前試用。需求方: 銀聯, 民生銀行, 中國聯通等超過10人+
  2. JSon 支援: 支援 JSon, 去年9月份開始研發, 當前研發已經完成, 當前還在測試中, 如果通過測試就會按計劃發版, 否則往後推一個版本。需求方: 民生銀行, 攜程, 陽光保險等有需求.
  3. HBase api 支援: 將內部大面積使用的 HBase api 開源出來, 當前進度已經完成.。需求方: 貝殼, 小米, CeresDB 等。效能想較預設的 hbase 2.4.6 的 sync 方式 有不少提高, scan 效能2.42倍, insert 1.7倍

OceanBase 開源負責人紀君祥聊 社群版 2022 Roadmap

  1. Table api 非同步支援: 從去年9月份開始實現, 底層執行緒池來非同步響應使用者的請求, 主要提升 table api 的吞吐量. 在 batch api下, 效能提升300% ~ 500%.
  2. 回收站恢復 Tenant & Database & Table & Index: flashback 恢復回收站物件.
  3. 小規格優化 2c8g, 2c8g docker 執行oceanbase
  4. 預設建立 local 索引 : 已經完成
  5. information_schema.TABLES 增加 ENGINE 值: 需求來自58 同城


自研生態工具

OCP 社群版(3.3.0-ce) 4月30日 release

  1. 開放備份恢復功能: 未來無需敲命令進行恢復
  2. 接管 OBD 部署叢集功能
  3. 接管 OBProxy 叢集功能
  4. 安裝簡化
  5. 增加檢查功能, 接管叢集時, 新增主機時, 增加部分檢查, 避免安裝過程中報錯


OMS 社群版(oms3.2.2-ce-bp2) 3月30日 release

社群版 CDC 支援持久化: 移植商業版功能, 需求來自浦發銀行, 這個功能當前進度, 已經完成開發, 但將 liboblog 改名為 libobcdc , 涉及大量上下游協同改動, 因此有可能會延後一個版本

  1. 解決超大事物OOM 風險
  2. 提取拉取速度, 降低 限速閥值, 防止歷史clog 日誌太久沒有消費, 而被覆蓋掉


OMS 社群版(3.3.0-ce) 5月9日 release

  1. 支援 OceanBase 到 OceanBase 資料遷移和同步
  2. 支援 OceanBase 到kafka & rocketmq 資料遷移和同步
  3. 安裝易用性改進


OBDeployer(1.3.0) 3月30日

  1. ARM 支援
  2. OBD 在出錯的場景下打屏輸出幫助連結地址


開發者中心 ODC

OceanBase 線上體驗站 play.oceanbase.com 切到社群版


ob-admin 工具:

提供不列印資料的 clog 解析工具

驅動:

  1. python 驅動已經完成驗證
  2. python 3.X pyMySQL
  3. python 2.X MySQL-python
  4. golang Go-SQL-Driver/MySQL
  5. Unix ODBC


sql plan monitor

視覺化展示 SQL Plan, 開源流程中, 預估在下個月會開放出來


生態合作

1. CloudCanal 合作  已經完成 

MySQL --> OceanBase 

OceanBase --> MySQL 正在研發, 預估 下個月完成

2.通過 Flink CDC 全量及增量同步  對接 Flink CDC

3.通過 otter 雙向實時同步  對接 otter  廣州智通人才

4.對接南京基石資料智慧運維平臺  D-smart 大師問診軟體


3.1.4

核心

  1. data file 按需申請大小
  2. OBServer 核心原生支援 Prometheus 監控資料輸出
  3. 擴所容時, unit 進度可查詢
  4. Golang 支援 PS
  5. 多模資料庫 ttl 過期資料自動刪除
  6. data_dir 引數值不準確


OCP (3.4.0-ce)

  1. 白屏化安裝所有工具
  2. OceanBase-operator 能夠支援修改 OceanBase 配置


OBDeployer

  1. 能否在安裝時啟用 playground 方式
  2. 一鍵執行 TPC-C 測試


sql-diagnoser

  1. 診斷工具的敏捷版
  2. 可疑 SQL 診斷
  3. 一鍵收集和系統診斷相關 metrics
  4. 一鍵手機診斷日誌和後設資料


生態合作

  1. 2022/4 通過 Chunjun (原 flinkx ) 對接 Chunjun
  2. 計劃每月完成一家公司對接




Q&A 環節


1、Q:OceanBase  所提供的  HBase API 是做什麼的的?為了接入 HBase 的資料嗎?

A:OceanBase 提供了 HBase 的 API ,主要是在以下背景下產生:HBase 是一個java 的程式。以前在每年雙十一的時候,會遇到流量洪峰,而且容易出現尖峰刺的情況, 在這種情況下非常容易發生 java 的gc, gc 特別嚴重的話,會 stop the world。


所以阿里也投入了人力來專門優化 HBase 的 java gc。但是不管怎麼優化還是有一定的風險,即會因為java gc而抖動。在此背景下,OceanBase  提供了 KV 的這一套能力,也就是說上層的應用可以將請求直接觸達到 OceanBase 的儲存層,繞過 OceanBase  的 SQL 層可以直接到儲存層,直接提供了 KV 的這一套介面。


再者,因為 OceanBase  是用 C 和 C++ 寫的,所以不存在有這種 java gc 問題。而且現在整個螞蟻很多應用都從以前的 HBase 切換到 OceanBase  上了。我們這套 HBase 的效能,其實相對於使用最多的 HBase 2.4.6 來說,我們  scan 效能提升到2.42倍, insert 提升到1.7倍 。整個效能非常不錯,我們自己用的蠻久, 穩定性有一定的保證。


2、Q:能支援 Redis 協議?

A:我們現在暫時沒有計劃支援 Redis 。因為 Redis  是一個記憶體,是一個cash。坦白講,可能我們還是拼不過 Redis  這種 cash 的速度。


3、Q:HBase 能直接讀取 OBKV 嗎?


A:HBase 的 client 是不能夠直接去讀 OBKV 的。我們會有一個 HBase 專屬的 java client,可以使用,可以讀取 OBKV。


4、Q:我們們有沒有對 MySQL 儲存過程的支援計劃?

A:關於對 MySQL 儲存過程的支援,我們現在商業版支援,社群版暫不支援。


5、Q:intel 支援 numa 嗎?numa 好像是amd和arm的優勢?

A:numa  在 OceanBase 上已經用的比較多了。而且阿里雲上很多的資料庫已經都開始支援了。numa   會利用 CPU 的記憶體本地人親和性來提升效能。


6、Q:底層是KV?如果是讀放大如何解決,以實現合併不影響線上?

A:底層不是KV的, 我們有大量優化提升讀效能的, 推薦看一下 


7、Q:能簡單介紹下 OceanBase 的 SQL 限流原理嗎?

OceanBase 是通過 在 SQL  繫結 Outline 的方式來實現的, 有一個 MAX_CONCURRENT(NUM) hint ,通過 outline 繫結到 SQL 上實現 SQL 的限流, 具體可參考 比如說你給它設定成一的時候,那在租戶級別,這個 SQL 只能開一個執行緒跑,它的併發度只能是一。比如說這個 SQL 它的 rt 是一百毫秒的話,那它的 qps 最多隻能到十。 如果 你想把這個 SQL 給限死的話,那你直接把併發度都改成零就可以了。


8、 Q:可以大致介紹下雙十一大促的彈性方案嗎?

簡要介紹下,大促期間會使用阿里 的資源,然後利用 OceanBase 的彈性伸縮能力, 把一部分副本給它彈出去,做一個橫向的擴容。


9、Q:除了合併可以更新統計資訊外,還有什麼其他方法可以更新統計資訊?

A:除了合併以外,從V3.2.1版本開始支援通過 ANALYZE TABLE 命令,收集更新統計資訊, 具體可參考。


10、Q:降序索引什麼時候支援?

A:降序索引目前用的2.2.77版本是沒有支援的。


11、Q:動態改主鍵什麼時候支援?

A:因為 OceanBase 是索引組織表,針對目前改主鍵的情況,我們內部 現在 還是用 OMS 同步,即把表結構提前建好,然後把資料拷貝過去,然後再做一個線上的 rename 以實現改主鍵。


12、Q:提前解行鎖會不會有大規模級聯回滾的風險?

A:這個有可能會出現,比如說在切主的時候,那它這個事務可能會被 kill 掉,就有可能會出現大規模級聯回滾。



大家也可以直接看網頁   ,本次我分享的所有內容都將 直接 公佈出來,放到 OceanBase github 的 discussions 板塊。



OceanBase 直播我做主!

後續直播大家想聽什麼主題?歡迎大家在帖子下面留言。




最後的最後,您有任何疑問都可以通過以下方式聯絡到我們~

聯絡我們

歡迎廣大 OceanBase 愛好者、使用者和客戶隨時與我們聯絡、反饋,方式如下:

社群版官網論壇

社群版專案網站提 Issue

OceanBase 開源負責人紀君祥聊 社群版 2022 Roadmap


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70005215/viewspace-2884826/,如需轉載,請註明出處,否則將追究法律責任。

相關文章