

第二屆OceanBase數據庫大賽決賽答辯現場,來自北京大學的“824445721隊”正在回答評委提問。

來自浙江大學的“K-ON!隊”隊員正在討論答辯抽籤結果。
“這是我第一次真實接觸到複雜的系統,我感受到了數據庫的魅力。”日前,第二屆OceanBase數據庫大賽(國內首個分佈式數據庫內核開發大賽)決賽在北京落下帷幕。浙江大學“K-ON!隊”榮摘桂冠,對於隊長林浩然而言,這次機會讓他對數據庫的瞭解更深入了。
第二屆OceanBase數據庫大賽(以下簡稱“數據庫大賽”)啟動後吸引了清華大學、北京大學、複旦大學、浙江大學、西北工業大學、華東師範大學、電子科技大學等高校的近2000名選手參賽,還有一些來自企業的數據庫愛好者也參與其中。
最終,浙江大學“K-ON!隊”拿下冠軍,西北工業大學的“426白給突擊隊”與電子科技大學的“0xc0隊”獲得亞軍,北京大學的“824445721隊”、浙江大學和北京理工大學跨校組隊的“Don’t panic隊”,以及華東師範大學的“DaSE997隊”獲得季軍。
跨越書本,上場練兵
在數據庫大賽舉辦的6個月裡,王炳傑打開了新世界的大門,但開門的過程並不容易。
王炳傑是西北工業大學大數據存儲與管理工業和信息化部重點實驗室成員,他和隊友楊俊琨、張成林算是參賽選手中和數據庫打交道比較多的。在他們看來,數據庫記錄著社會生活中方方面面的信息,“金融、軍工、日常生活……從微觀到宏觀的各種信息,記錄本身就是數據庫最大的意義。”而王炳傑他們要做的,就是在參賽過程中更好地優化和管理數據庫。
三人是瞞著實驗室的指導老師“偷偷報名”參賽的,因為三人只想把這次比賽當作一個練兵場,王炳傑說,“就想看看自己的水平,壓根兒沒想過拿名次的事。”
或許是實力不允許他們低調,初賽賽程過半的時候,“426白給突擊隊”就拿到了340分,是所有參賽隊伍里第二個拿到滿分的。
西北工業大學計算機學院副教授劉文潔是“426白給突擊隊”的指導老師,她在比賽中途才得知自己的幾個學生報名參賽了,心裡很高興。她說,“自己心裡是鼓勵學生參賽的,也想通過比賽看看自己學生的水平。”
然而,複賽難度的升級,以及複賽團隊更為強勁的實力,給剛剛迎來“開門紅”的團隊來了一個下馬威。由於複賽初期團隊初始框架有問題需要重寫,三人一邊看著實時更新的排行榜上其他隊伍的成績不斷提高,一邊咬牙堅持修改。看著團隊遲遲沒有成績動態,剛剛得知他們參賽的導師也來詢問,“你們還參賽嗎?”
在曆時6個月的大賽中,類似的難題幾乎每個隊伍都曾遇到過。
冠軍“K-ON!隊”在比賽進程到一定階段後,難以找到新的優化點。“可能一些比較容易想到的優化我們隊做了,其他隊也做了,到分數比較高的時候就很難找到可以繼續優化的點,這個過程是比較煎熬的。”林浩然說。
對於12強“trivial隊”而言,難題在於“誤刪功能導致成績作廢。”決賽開始後,團隊的成績一度排在排行榜的第一名,但由於錯刪了系統中的檢查功能,團隊成績將視作無效,分數歸零。
得知這個消息的時候距離決賽結束還有3天,但是想重新添加已經被刪除的功能並不容易。“trivial隊”隊員,本科學習計算機專業,現在就讀於複旦大學哲學學院的陳淇奧表示,“很多理論知識學習過,但實際操作過程中就不知道怎麼辦了。”
針對類似的情況,OceanBase 首席技術官楊傳輝表示,“當前高校的數據庫教育注重理論,但是很多學生學完數據庫理論後,依舊沒有辦法理解數據庫到底是什麼,更沒辦法知道實際的數據庫是怎麼做出來的。”舉辦數據庫大賽正是為了發現、培養更多未來管理和優化數據庫的青年人才。
尋找理論通往實踐的出口
面對選手在參賽過程中遇到的難題,劉文潔表示,數據庫理論知識和實戰能力二者缺一不可。“如果要做數據庫底層代碼,基礎知識,包括計算機專業的理論課程都要掌握得非常好;強調實戰能力是因為我們發現一些學生的理論分數很高,但讓他去寫一段代碼,半天寫不出來。”
電子科技大學計算機科學與工程學院研究員、博導段翰聰的學生也參與了此次數據庫大賽,他的感受和劉文潔類似,“關於數據庫領域,以及其他國家所急需的軟件技術,國家整體有規劃,戰略上有相應的投入,但實際上我們基層教學一線還應該進一步加大投入。”
教師們的關注點,也是不少學生的痛點,參加數據庫大賽正是這群青年尋找理論通往實踐出口的一次嚐試。
參加數據庫大賽前,“K-ON!隊”剛剛結束一場比賽十分疲憊,但OceanBase數據庫大賽選用企業開源代碼的賽題形式依舊讓他們忍不住報名參賽。“賽題選用了企業的真實開源碼,是工業界實際使用的代碼,和平日科研學習中用到的小型代碼不一樣,是一個比較複雜的工程。”林浩然說。
林浩然覺得數據庫大賽更像是一個綜合實踐的過程,他把參賽當作檢驗自己理論學習的一種方式。同隊的林雨欣在參賽後,對如何綜合運用數據庫知識有了更好的體會,也對編程的優化和實現有了更多的理解。
在王炳傑看來,複賽過程中大量的實踐任務讓他和隊友體驗了一次“實戰”。比賽過程中,針對某個模塊設計,楊俊琨覺得王炳傑的想法過於抽像,為了確認哪種運行方式更為可行,王炳傑和楊俊琨分別按照自己的思路完成賽題,“最終誰的實踐結果好就按照誰的方案來。”楊俊琨說。
來自電子科技大學計算機學院“0xc0隊”的淩健、高弘毅和張欽棟,最初“抱著玩一玩”的心態參賽,順帶著檢驗自己的實踐能力。初賽的時候3人忙著“閉門造車”,忽略了平台搭建的溝通群。隊員高弘毅說,“相比自己琢磨,官方的溝通群裡有專業的數據庫工程師答疑,複賽後和他們交流變多更能打開操作思路。”
3人在實驗室接觸過不少工程項目,也曾學過不少理論知識,但獨立實現一個數據庫,在企業級的數據庫上完善功能還是頭一次。
為大學生搭建一個從理論邁向實踐的平台是OceanBase數據庫大賽創辦的初心,楊傳輝希望更多同學通過參賽接觸到實際生產系統中的內核撰寫,並且通過這個平台開展討論、交流,從而更好地理解數據庫工業系統。
華東師範大學“DaSE997隊”是6強選手中唯一來自數據科學與工程學院的選手,他們形容自己的參賽經曆“像坐過山車”,隊長陳睿皓最大的參賽感受是“理論只有結合實踐才能發揮最大的作用”。
這次參賽經曆給科班出身的他們帶來了不小的收穫,“原來只知道寫SQL語句,到現在明白SQL語句執行的完整過程,能獨立實現數據庫增刪查改的功能。”從理論學習到實踐操作,隊員陳煜開始更加註重代碼的簡潔性和可複用性。她還開始糾正自己的編碼習慣,因為在和隊友合作開發的過程中,她發現“原來代碼可以如此優美”。
搭建成長賽道,產學研齊發力
今年兩會期間有全國人大代表指出,當下推進產學研深度融合十分必要,“開展產學研結合,促進高校人才和企業雙向交流,開展合作,開發新技術、高新技術成為一條可行之路”。
如今,越來越多的企業聯合高校搭建實訓平台。OceanBase希望通過與高校協同,探索產學研協同育人的新模式,讓學生在實踐中學習,在學習中創新。劉文潔認為,需要進一步促進企業和高校的產學研融合,加速數據庫人才的培養。“實戰人才的培養需要讓同學們接觸真實的開源碼,有機會瞭解內核的實現機制,才能更好地加入數據庫的研發團隊中。”
在OceanBase創始人兼首席科學家陽振坤看來,人才成長需要週期,人才培養需要持續。回憶十幾年前自己組建數據庫項目組時的情景,他感慨如今的變化。
陽振坤坦言,“數據庫一枝獨秀不是春,百花齊放才是春。”百花齊放需要更多產業、更多人才參與建設,對青年數據庫人才的培養、關注和發現,在數據庫領域的快速發展中起到了關鍵作用。
中國人民大學明理書院院長杜小勇則希望同學們通過比賽能夠認知數據庫、喜歡數據庫,在未來求職時選擇將數據庫作為自己的就業方向,為發展國產數據庫貢獻力量。
像杜小勇院長期待的那樣,完成整個賽程後,來自北京大學“824445721”隊的黃樸凡、馮惠和範乾一都更加明確了將數據庫作為自己未來發展方向的決定。
研一下學期,黃樸凡就在學校組織了一個“民間數據庫興趣小組”,組里都是對數據庫興趣濃厚的同學,平時經常一起分享學習資料、交流研討。那個時候,他們便盤算著以後要進入數據庫行業工作。在瞭解到數據庫大賽後,黃樸凡第一時間拉著組員馮惠組隊參賽。這次參賽也更加堅定了他們的決心。
作為為數不多的本科生參賽選手,來自北京理工大學睿信書院的何宏棟通過參賽學到了不少新知識。他和隊友賈博凱商量著,如果明年有比賽就繼續報名參加。在何宏棟眼裡,“數據庫大賽給了我一次接觸真實世界的數據庫存儲引擎的機會”。
(劉俞希、王軍利、羅希、庾可寒對本文亦有貢獻)
中青報·中青網見習記者 程思 來源:中國青年報
2023年03月31日 07 版