奪冠在即!2022 OceanBase資料庫大賽12強集結

OceanBase技術站發表於2023-03-31

歡迎訪問 OceanBase 官網獲取更多資訊:https://www.oceanbase.com/

2022 年 10 月 17 日,OceanBase 資料庫大賽拉開了初賽帷幕,共吸引了國內外 1988 名選手,1180 支隊伍參與。經過初賽比拼,共計 53 支團隊入圍決賽,12 支隊伍在決賽中憑藉優秀的表現,進入最終的現場答辯環節,並於 3 月 24 日爭奪冠亞季軍。

一路過關斬將,迎來12強巔峰對決

2022 年 10 月 17 日,1988 名國內外資料庫愛好者,組成 1180 支參賽團隊,打破專業和年齡的限制,從 MiniOB 實訓由淺入深,走向真實的工業級資料庫的業務場景探索,開啟了一場關於速度與極限的資料庫核心實戰馬拉松。

在探索中,大家不僅深入理解了許多關於資料庫理論及工程方面的知識,還獲得了實戰專案演練,從0到1,透過策略思考與動手實踐,系統地打造出自己的資料庫。從初賽到決賽,這12支團隊一路過關斬將,憑著超強的學習能力和抗壓能力,透過創新思維突破挑戰,實現從理論到實踐工程的蛻變,為走向企業打下基礎,再次恭喜他們!

本次 OceanBase 資料庫大賽的評委陣容由中國人民大學明理書院院長杜小勇、西北工業大學計算機學院副院長李戰懷、武漢大學計算機學院副院長彭智勇、華東師範大學資料學院院長錢衛寧、東北大學計算機學院教授於戈、OceanBase 首席科學家陽振坤、螞蟻風管同業技術負責人餘鋒、OceanBase CTO 楊傳輝等嘉賓組成,決賽現場,評委老師將從技術難度、產品價值、創新性 3 大維度為 12 強團隊打分,最後綜合決賽提測分數和答辯成績,決出最終的名次。

Image

決賽賽題和精彩題解

OceanBase 是完全自研的一款分散式資料庫,在 TPC-C、TPC-H 上重新整理了世界紀錄,並且連續 10 年穩定支撐了“雙 11”業務。自 2021 年 6 月 1 號開源後,越來越多的金融客戶、電信運營商、網際網路企業開始使用 OceanBase,OceanBase 也開始接入越來越多的場景。

企業在資料庫升級的過程中,需要解決的第一件事情就是將資料從歷史系統中無縫匯入 OceanBase, 我們決賽的賽題就基於真實業務場景——旁路匯入,向選手發起了挑戰。

很多時候,匯入操作會在一個有限的運維視窗中才能進行,如果一個10TB 的資料消耗了 8 小時,可能會橫跨一個運維視窗(通常凌晨 2 點到早上 9 點),給正常業務帶來壓力。因此,匯入速度至關重要,使用者期望 10TB 的資料能在 1 小時內完成匯入。

這是一個極富挑戰的場景,雖然上手簡單(從單一核心模組即可入手),且發揮空間巨大,可以涉及資料庫的各個模組,但對參賽選手而言,壓力也非常大。

首先,資料匯入效率的最佳化是得分高低的重要影響因素。 資料匯入是資料庫替換的重要環節,如資料庫的初始化匯入,定時批次匯入等會用於資料分析,而資料庫匯入的效能好壞是評價資料庫效能的重要指標,特別是在資料庫分析場景,可以參考下面的網站,從該網站可以看到,除了會比較各個資料庫的查詢速度,還會比較匯入速度。(https://benchmark.clickhouse.com/

其次,決賽基於 OceanBase,考察文字檔案匯入的速度。 參賽者要直接將資料寫入資料庫儲存檔案中,不經過 SQL 與事務等環節,更底層、更有效。

最後,參賽選手基本都是初次接觸 OceanBase,需要在 一個月內瞭解整個資料匯入工作原理並對其進行最佳化。

從各個參賽團隊在決賽中的表現來看,這屆選手都非常優秀,思路也非常開闊,會從各個角度深度挖掘最佳化方案。比如多執行緒檔案讀寫,權衡 I/O 與 CPU 效率的同時,充分利用各個資源。有些選手使用多路歸併排序,甚至重寫了 OceanBase 的外部排序演算法。由於測試機器的 I/O 速度相對於 CPU 來說有很大差距,一些選手就會權衡 I/O 與 CPU,將資料進行編碼壓縮後進行讀寫,使用 CPU 換 I/O。

參賽收穫

授人以魚不如授人以漁,透過此次決賽,參賽選手也可以學習到許多關於資料庫及工程方面的知識。具體但不限於:

第一,接觸真實工業界資料庫的儲存引擎,並學習和接觸資料庫最核心的模組之一 “儲存引擎”。

  • 學習 LSM Tree 的原理。 OceanBase 儲存底層採用 LSM Tree 結構,選手在做此題時需要將資料直接寫為 SSTable(LSM Tree中的一個核心資料結構)檔案,會對LSM Tree 有更加深刻的認識。
  • 平衡查詢樹原理。 OceanBase 儲存底層結構使用 LSM Tree,而其中的每個 SSTable 使用多階層的平衡多叉樹作為排序結構,而沒有采用 skip-list 結構。因此,選手會對平衡查詢的原理有更深入的理解,同時理解磁碟資料訪問的最佳化原理。

第二,接觸高併發、高效能系統框架,系統性學習底層程式設計技巧和規範。

  • 多執行緒與任務排程。 為了能夠充分利用機器的資源,讓效能成績提高,必然需要充分發揮計算機多核的優勢,採用多執行緒的方式,提高任務的併發處理能力。另外,多執行緒處理中,任務排程的效率,也會直接影響到整體的執行效率。
  • 檔案讀取最佳化。 檔案讀寫是許多工程專案中需要用到的技能,而如何高效讀取資料,充分利用磁碟頻寬,也會影響程式的執行效率。這裡也涉及零複製技術的應用,同時讓選手對檔案系統讀寫模組底層理解得更加透徹。
  • 檔案排序。 在資料庫系統中,由於磁碟比記憶體大很多,在外存中對資料進行排序,也是常見的場景。在匯入資料時,也需要考慮資料放在外存中排序,如何更加高效,是選手努力的目標之一。
  • 效能調優手段。 學習如何使用 CPU 調優、記憶體調優。

我們希望大家以學習資料庫技術為目的來參加比賽,因此,決賽賽題的設定以幫助選手成長為主要目標,競技為第二目標,在未來,我們也歡迎大家成為 OceanBase 社群大家庭中的一員,與我們一起為社群建設添磚加瓦,共創更好的 OceanBase。

寫在最後

最後,我們也收集了幾位評委老師對大家的祝福——


西北工業大學計算機學院副院長李戰懷: 希望大家能再接再厲,在決賽中充分發揮出你們的潛力和能力,並以此為起點,將來成為我們中國資料庫領域的中堅。

中國人民大學明理書院院長杜小勇: 12 強都是來自於國內計算機領域的著名高校,非常高興看到這麼多學校的同學對資料庫核心技術越來越有興趣。祝願同學們認真準備,認真參賽,取得好成績。

3 月 24 日的答辯結束後,12 強參賽團隊將與 OceanBase 的師兄展開面對面交流,分享自己的參賽體驗,暢談對資料庫的未來理想。為了讓更多資料庫愛好者,見證這群追光少年的精彩對決,本次冠軍答辯將在影片號開啟全程直播,大家可以關注 OceanBase 影片號進行觀看,一起為每一位努力奔跑的選手喝彩!

歡迎訪問 OceanBase 官網獲取更多資訊:https://www.oceanbase.com/

相關文章