一場沒有硝煙的24小時人機大戰,這群95後拼了

2022-05-10     和訊科技

原標題:一場沒有硝煙的24小時人機大戰,這群95後拼了

在基礎軟體領域,國產資料庫的自主可控是一條必須要走的路。

資料庫,是計算機領域的基礎設施之一。所有應用的使用、用戶的行為,都需要容納進資料庫里。從問世那一天起,資料庫就承擔著向上支撐應用軟體,向下調動系統資源的功能,在 IT 架構中處於核心位置,被譽為「軟體行業皇冠上的明珠」。

世界知名的資料庫甲骨文(Oracle)、IBM和微軟目前控制著全球75%的資料庫市場份額。甲骨文去年的市場份額為39.8%,2021財年收入達到405億美元(約合2700億人民幣),其重要性就可見一斑。

2021年3月,「十四五」規劃綱要正式頒布,著重提到了要培育壯大大數據等新興數字產業。這幾年,中國湧現出越來越多國產自研資料庫。特別是在分布式資料庫領域,中國探索出自己的一條路。

但國內資料庫領域研發人才緊缺,嚴重影響著資料庫產業發展。中國的資料庫要繼續走下去,必然需要吸納新鮮的血液,也需要一些高校、網際網路企業的計算機人才,支撐起中國資料庫未來的發展。

「OceanBase 資料庫大賽」 作為國內首個分布式資料庫內核開發大賽,希望匯聚資料庫領域的青年人才,為他們搭建一個技術交流的平台,讓國內資料庫人才在這裡碰撞出新的火花。

這場比賽從去年8月,一直持續到今年4月,參賽隊伍一邊學、一邊比,通過較長時間的學與練,對資料庫有了從淺到深,從整體粗疏到深入攻克某個難題,每一支隊伍都獲得了成長。

在2022年4月28日,這場漫長的程式設計師馬拉松迎來最後的決賽,在這最後的24個小時里,每一支隊伍都全力以赴。

因為疫情的關係,最後的比賽面臨的坎坷比此前多,但這些青年計算機人,卻不畏困難,最後拿出了他們亮眼的成績。而他們提出的各種不同的解決方案,也讓彼此之間的相互學習,互相進步,成為可能。

技術的魅力正在於此:因為實現路徑不同,有時很難有一個公認的NO.1,但不同思路之間的相互碰撞,百花齊放,最終才會讓中國計算機技術整體走得更遠。

以下是他們的真實故事:

文 | 小北

編輯 | 蔡玉

4月28日中午12時,一群年輕人迎來了一場特殊的「戰爭」。

這場戰爭沒有硝煙,但卻不影響其所帶來的緊張感。現場的20支學生隊伍需要在電腦前進行24小時的編程——他們要和內存進行一場關於爭奪空間的較量,一場人和機器之間的博弈。

當中國網民數量走到10億的龐大量級,如何存儲數據、分析數據,成為當前網際網路行業所必須解決的問題。空間無法無序擴張,那麼,如何在有限的空間裡通過技術去分析和處理更大的數據量,則成為決定網際網路能否有序、順暢運行的基礎。

帶著這樣的願景,來自中國人民大學的「NoPassCET4」、華東師範大學的「東亞男兒隊」、中國電子科技大學的「Push-d」等20支隊伍衝進「OceanBase 資料庫大賽」決賽圈。

「我們要做的,是讓數據和存儲空間達到最完美的平衡,不僅是壓縮數據,還要考慮各種性能「,衝進決賽圈「NoPassCET4」隊隊長黃人煌表示,在計算機的世界裡,數據不僅要存儲,還涉及到讀取,比如瀏覽記錄、購物車、遊戲存檔,都需要調取壓縮數據,而用戶是不會等上十幾秒、甚至幾分鐘去等待介面跳出的。

圖 | 中國人民大學NoPassCET 4 三人小組合照

在此之前,「NoPassCET4」從去年8月開始到現在,先後和國內外246所高校、200家企業、1179支團隊,來自清華大學、人民大學、浙江大學、南開大學、電子科技大學、華東師範大學、華中科技大學、哥倫比亞大學、香港中文大學、南洋理工大學等國內外高校近2000名資料庫愛好者進行角逐,走到終點,實屬不易。

13:00,「NoPassCET4」等決賽隊伍拿到了最終決定勝負的考題:將一組300萬行*48位元組的數據,分為9列,存儲為128M的數據文件,以及60M的索引文件。

以往在學校實驗室里,這樣的數據量往往需要7~10天才能完成。但現在,他們只有24個小時,在這24個小時里,他們需要對數據進行分析、找出解決路徑、編寫編碼或算法、實現文件壓縮、實現索引壓縮,最後再驗證效果。

同時,他們還必須在這些所有的步驟里,尋求一種平衡,讓最後的技術呈現能完整、好用,甚至具有美感,時間非常緊張。

接下來的24個小時,他們必須全力以赴。

如果把「NoPassCET4」隊名直接翻譯成中文,是「未過4級小隊」。

在程式設計師圈子裡,這是一個「老梗」——如果隊伍里有人連大學英語4級都沒過,那他肯定把所有時間都花在實驗室里搞研究了。「都這麼努力了,害怕冠軍不是你的嗎?」隊長黃人煌說道。

「NoPassCET4」的隊伍構成有些特殊,三個小隊里包括了一對情侶。「跟神鵰俠侶似的,他倆是神鵰,我是俠侶」,平日裡熱愛武俠小說的隊員王元楨笑著說道。

一次校園宣講活動上,隊長黃人煌和他的女友塗薦泓了解到了「2021 OceanBase 資料庫大賽」,該賽事由國內分布式資料庫領導者OceanBase與螞蟻集團學術合作團隊一起舉辦,面向全國愛好資料庫的高校學生,不僅可以幫助學生從0開始系統化學習資料庫理論知識,也更能幫助學生走向企業積累經驗。

黃人煌拉上了女友塗薦泓、學弟王元楨,三人一起報名。「這種組合其實很微妙,我們三個都有各自不同的想法」,黃人煌介紹,「面對問題時,我們可以產生不同的思路和方案,最後評估誰的最有效,就用誰的方案。」

這次決賽,「NoPassCET4」也選擇了不同路徑結題。

黃人煌的想法是將這些數據通過編碼壓縮成列存,節省空間,其他保留行存,「就像一張表格里,把有規律的數字用簡單函數表示,起到節省空間的效果。」

王元楨則提出更大膽的思路,他希望找到一個編碼把所有的列都進行壓縮,再統一讀取——這意味著他不僅要找到規律列的編碼,還要找到非規律列的編碼,整體涉及到的計算量就非常大。

短時間內,雙方都無法說服對方接受自己的方案。為了最快完成解題,他們決定先各自為戰。

王元楨把9列字符串列也全部壓縮成了20比特的字符串,嘗試用字典編碼進行解壓。但字符串大多沒有規律,王元楨這邊的計算難度很大,他有些擔心,似乎很難在24小時內完成目標。

但慶幸的是,黃塗小分隊在3個小時內就有了一些眉目。以一個全局遞增的數據列為例,塗薦泓通過在列前加隱藏欄位的方式解決了複雜運算的問題,很快向下一步進軍。

就在黃人煌信心滿滿的開啟下一階段時,決賽場的另一支隊伍則陷入一片焦灼——來自華東師範大學的「東亞男兒隊」發現,數據導不出來了。

隊長連薛超「當時腦袋裡都懵了」。在參與決賽前,上海正遭遇複雜疫情,隊伍里三個成員都被困在宿舍樓,每天只能通過在線會議軟體交流,遇到複雜的情況則共享螢幕讓隊員互相查看代碼是否有問題。

圖 | 華東師範大學東亞男兒隊三人小組合照

為了振奮士氣,隊伍三人都給自己換上了「小黃雞頭像」,喜歡阿拉伯文化的隊長連薛超是一隻頭戴阿拉伯頭巾和默罕默德的徽章的小黃雞,喜歡道教文化的翁飛揚是一隻帶道冠的小黃雞,而胡梓銳則給自己的小黃雞頭像帶上了馬克思同款白髮。

他們本希望,通過一致的頭像鼓舞士氣,但誰能想到,比賽過程中出了這樣的岔子。

和「NoPassCET4」的黃塗小分隊一樣,「東亞男兒隊」也發現了數據里某些數據列的規律性,並在凌晨1點左右,找到了與之對應字典編碼和delta編碼,準備開始建表。

通常來說,在做數據的技術操作時,大家會先基於基本想法寫出技術命令,然後將這一技術命令配置到表格里,導入原始數據驗證。但沒想到的是,正當他們準備繼續攻克delta編碼、以及索引所涉及到的B+樹編碼時,電腦彈出來的內容卻是「建表失敗!」

此時,距離比賽已經過了12個小時。和工作人員反覆溝通後,東亞男兒隊才排查出來,原來是程序里呈現出來的加載時間太長,等成功建表後,時間已到了凌晨4點,離比賽結束只剩下9小時不到。

因為長時間比賽,沒有休息,隊員里每個人都精疲力盡,但沒有一個人喊累,大家依然在堅持解題。

和「東亞男兒隊」相似的是,另一支來自電子科技大學的參賽隊伍「push-d」,也因為一個小問題被卡住了3個小時,他們的時間同樣變得緊張。

「push-d」隊長李浩、隊友李世豪和王書涵在最開始時採用了「NoPassCET4」王元楨同樣的思路,但他們沒有從編碼著手,而是選擇了哈夫曼算法。

哈夫曼算法屬於熵編碼,根據數據中不同字符出現的機率,用不同長度的編碼表示不同字符,「push-d」希望通過另外6組沒有規律的數據列,用哈夫曼算法解決問題。

隊長李浩一開始信心滿滿,畢竟「push-d」三人小組曾在半年時間內,利用師兄師姐們打下的設計基礎,實打實地做出了大學資料庫實驗室內資料庫的基本功能。因為導師姓段,因此在比賽時他們留下了D字母,把隊伍命名為「push-d」,用那段時光鞭策自己,帶著老師的期望前進。

圖 | 電子科技大學Push-d三人小組合照

隊伍三人都更習慣於用計算機交談,在現實中顯得有些靦腆,總是動不動就低頭,看起來似乎不大自信,但其實他們是所有隊伍里「最勇的那一支」,他們是最快想到用非編碼方式、對所有數據列實現直接壓縮的人。

也許是因為太過於緊張,隊友李世豪在數值轉換時忽略了0,卡了3個小時後,才發現是基礎數值錯了,他一拍腦袋,「怎麼犯了這樣一個錯!腦袋寫麻了!」

李浩和王書涵被他趕著去休息,李世豪一個人自己想,想好之後又把所有的內容全部過了一次——在之前的初賽和複賽時,他感到自己做的事不夠多,就想讓兄弟們多休息一會兒,自己在決賽多承擔一些。

比賽的整整24個小時,李世豪一分鐘也沒有休息,最終三人終於在次日12點鐘完成了他們的所有技術步驟,實現了壓縮目標。

4月29日早上10點,比賽已持續了21小時。

因建表失敗卡了3個小時的「東亞男兒隊」,終於在10點左右完成了所有的技術指令,看到自己在黑客松實時榜上排到了第一後,他們鬆了一口氣,趴在桌子上休息了一會。

結果,當他們11:30醒來時,實時榜的第一名卻出現了「NoPassCET4」的名字,黃人煌和塗薦泓在中午11:30時也完成了所有的技術步驟。

緊接著,12點鐘,「push-d」也一路猛追,終於完成了哈夫曼算法、比分快速爬升。

「東亞男兒隊」隊長連薛超嚇壞了,他本想著他們的壓縮程度較高,索引壓縮了40%,存儲壓縮了47%,應該不會有其他隊伍會趕超。發現「NoPassCET4」超越他們後,「東亞男兒隊」馬上去查自己的路徑里還有沒有可以壓縮的空間,但時間已來不及了。

最終,「NoPassCET4」獲得了冠軍。復盤時,「NoPassCET4」分享了他們對索引數據的位元組優化改動,「東亞男兒隊」看完後懇切地評價道:這個方法的確簡單粗暴,非常直接地實現了壓縮結果,而「push-d」的哈夫曼算法也同樣讓人驚艷。

在這次比賽中,還有其它的一些隊伍也表現出了相當亮眼的一面。

圖 | 此次大賽獲獎名單

「兩隻老虎吃蘿蔔」隊伍,團隊成員單海康、陳勁鋼分別在武漢、深圳兩地,跨地合作,決賽時因為場地簡陋、蚊蟲眾多,兩人打了一夜蚊子,又在比賽過程中遭遇實驗室伺服器宕機、分布式遭遇宕機,但最終在凌晨5點調通代碼,拿到第三名。

華東師範大學的「lying_flat」隊伍,名為躺平,實則全力以赴。隊里只有隊長賈宇航一人,他獨自扛起了一支隊伍,他的生存理念是《死亡詩社》里的「seize the day」,把握當下。

這種理念也讓他在上海封控期間通過資料庫的比賽把握他自己的人生,最終拿到了季軍。在黑客松的導師評語裡,導師評點他:「一人成隊,對B+樹優化分析較深入,且對列存有一定的了解,個人能力較強。」

中國科學技術大學的「健胃又消食」小隊,原本有2位同學,後來隊友因故中途退賽,隊長潘仁華白天在公司實習、晚上抽時間比賽,一個人走完了全程。

華中科技大學的「一一一一一一一一」小隊,同樣遭遇了隊友退賽的意外,隊長一人撐著走完了全程。他們的分值或許不高,但堅持到這場黑客馬拉松最後的毅力和耐性,卻依然讓人感動。

事實上,這才是技術比賽最動人的地方,大家通過技術的碰撞與交流相互學習、共同進步,而並不僅僅以是否獲獎而論。

這場24小時的對決,並不是這次資料庫大賽的全部。從去年十月開始,所有的隊伍一邊學、一邊練,最終這20支隊伍走到了決賽。

在這些技術人員的稱呼里,決賽還有另外一個名字:「黑客松」。它原指一種程式設計師聚集在一起、以緊密合作的形式去實現某種技術的嘗試,是一種程序設計里的馬拉松,也是一種程式設計師用技術溝通和碰撞的狂歡。

在資料庫大賽里,它也意味著最後的這24小時,是這些參賽者們這場馬拉松的終點。

在這個時刻,每一支隊伍所面臨的壓力都是巨大的,但每一組都頂著這種壓力,走了下來。

在技術的世界裡,並沒有一個清晰的「第一」的概念。

大家對技術的理解不同,在面臨同一個技術問題時,也常常會想出不同的技術實現路徑。當這種路徑並不是唯一的時候,百花齊放才會成為可能。因為每個人都可以去了解其他人技術實現的方法,在這種和而不同里相互學習、共同進步。

這正是技術的魅力所在。

在比賽結束後,每個隊伍也對技術有了不同的理解。

「NoPassCET4」的黃人煌,感受到資料庫的重點之一,在於平衡,平衡各方面的性能,達到綜合表現更好的效果。他覺得資料庫越學越複雜、越學越有魅力。

「東亞男兒隊」的連薛超,在從前做學術研究時,總是關注性能,但這次實打實地上手操作之後,他發現:性能固然重要,但對用戶來說,性能達到一定程度再提升消費者的感知是不大的,這時將精力放在資料庫生態方面可能會更好。他有了從學術到應用上的感受的轉變。

「Push-d」則在這個過程中接觸到一些原來沒有接觸過的知識,資料庫大賽一邊學、一邊比的整體設計,讓他們對資料庫從理論到實踐,都有了全新的體驗。

在十四五規劃里,國家提倡技術自主,而在計算機領域,資料庫作為基礎設施之一,它的自主顯得尤其重要。

在過去十年,中國的資料庫從無到有,建立起了達夢、OceanBase,等資料庫。但這遠不是終點,中國的資料庫要走下去,還需要容納不同的血液與人才。

對參與這場比賽的很多技術人來說,正是因為資料庫這件事有挑戰,才更有趣、更吸引人。他們相信:中國的資料庫不會止步於此,而他們想要為中國資料庫的未來添磚加瓦。

在大時代下,每一個小人物都值得被看見,每一個小人物都不普通。

我們關注每一個垂直行業的參與者、親歷者,

將視角切換到這些參與到時代變遷、企業進化的人群身上,

通過更專業細膩的筆觸,讓更多人看見更多人。

先後榮獲

2021年百度百家號優質成長力作者

2021年度鳳凰新聞大風號影響力TOP50作者

2021年度網易新聞網易號年度影響力作者

2020年度鈦媒體年度十大作者

2020年度騰訊新聞企鵝號優秀內容合作夥伴

2020年度ZAKER影響力排行榜最有價值作者

……

如您有合適的作品,可將稿件直接發給[email protected]

稿件一經採用發布,即刻支付稿費。

本文首發於微信公眾號:顯微故事。文章內容屬作者個人觀點,不代表和訊網立場。投資者據此操作,風險請自擔。

文章來源: https://twgreatdaily.com/zh-tw/29b7c484e0abd700deacf26b661eea5c.html