雖然很遺憾最后因?yàn)橐恍┰蛭覀儧]能成功組成宿舍,但是開學(xué)之后我們還是會(huì)常常討論一些學(xué)術(shù)問題。我倆的背景頗有些不同:我本科是畢業(yè)于航天專業(yè)的,所以計(jì)算機(jī)基礎(chǔ)很是缺乏,因此我當(dāng)時(shí)更傾向于好好補(bǔ)一些基礎(chǔ);而他本科則是正統(tǒng)科班出身,基礎(chǔ)很是扎實(shí),而且他有強(qiáng)烈的做research的意愿,因此會(huì)大量地去看paper、提idea與我討論、并做實(shí)驗(yàn)嘗試。在與他的討論中,我常常被他深不見底的數(shù)據(jù)庫、系統(tǒng)的知識(shí)儲(chǔ)備所震驚?,F(xiàn)在回顧起來,當(dāng)時(shí)初入科研門檻的我們其實(shí)提出了不少有意思的想法。比如我們?cè)?017年的時(shí)候就預(yù)見到了機(jī)器學(xué)習(xí)會(huì)在數(shù)據(jù)庫/系統(tǒng)領(lǐng)域有廣泛的應(yīng)用,甚至我們?cè)谡n堂演講的時(shí)候還說了這么一句話“任何需要決策的地方、調(diào)整參數(shù)的地方,也許都可以使用機(jī)器學(xué)習(xí)”(when there is a decision needed, there is potentially ML needed)。我們也嘗試了一些機(jī)器學(xué)習(xí)應(yīng)用在系統(tǒng)上的想法 ,不過很遺憾的是,那時(shí)候我們并沒有比較好的實(shí)驗(yàn)條件與機(jī)器,這些想法最終都沒能變成完整的工作。如果僅僅是這樣的話,那信靜在我心中只是一位基礎(chǔ)扎實(shí)、動(dòng)機(jī)強(qiáng)烈(highly self-motivated)、刻苦勤奮的很強(qiáng)的朋友罷了。真正讓我震驚的是無意中得知的信靜之前的故事。有次我們?cè)谟懻撍惴},信靜隨意說了一句自己之前有一些ACM經(jīng)歷。我閑著無聊,想搜搜看他之前的ACM成績。這一搜不得了,無意中搜到了這樣一條推送:不忘初心 篤行致遠(yuǎn)——記軟件技術(shù)122班畢業(yè)生周信靜 。我這才驚訝地得知原來信靜不止是從杭電辛苦地考上浙大計(jì)算機(jī)的,他甚至之前還是專升本到的杭電!震驚之下,我把這條推送發(fā)給了信靜,表示了自己的膜拜與佩服之心。誰想到信靜轉(zhuǎn)而說出了讓我更震驚的事情。信靜尷尬一笑,說自己小時(shí)候不懂事,也沒啥人管,天天就知道亂玩。到了初三的時(shí)候,職高來他們初中宣傳,一忽悠,信靜就一沖動(dòng),放棄了中考而選擇了去職高。結(jié)果在職高讀到第三年,他突然醒悟,覺得自己不想就這樣度過一生,于是開始奮發(fā)圖強(qiáng),努力學(xué)習(xí)。無奈積重難返,且偏科嚴(yán)重,后來仍然只有考上一所大專。信靜并沒有因此而絕望,而是進(jìn)入大專之后,繼續(xù)維持著之前努力的勢(shì)頭,積極學(xué)習(xí)高質(zhì)量的公開課,最終完成了專升本和考研到浙大的逆襲。職高->大專->專升本->考研到浙大!我實(shí)在無法想象信靜背后是付出了多少努力,才能走出這樣的道路。附:這里有信靜在大專二年級(jí)時(shí)寫的一些項(xiàng)目:raft-core。大家一看代碼就知道他當(dāng)時(shí)的水平了。誠實(shí)地說,現(xiàn)在的我仍然距此仍有相當(dāng)距離,很難想象當(dāng)時(shí)的他付出了多少努力。
與信靜的科研合作:永不放棄的堅(jiān)定前行者
又過了一段時(shí)間,由于一些原因,我轉(zhuǎn)出了原來的實(shí)驗(yàn)室。由于信靜所在的數(shù)據(jù)庫實(shí)驗(yàn)室已經(jīng)基本沒有同學(xué)做數(shù)據(jù)庫(都去做機(jī)器學(xué)習(xí)了),故信靜仍然常常來找我這個(gè)不做也不懂?dāng)?shù)據(jù)庫的人來討論想法(idea)、實(shí)驗(yàn)和寫作方面的問題。某天晚上,信靜突然非常激動(dòng)地跑到我的寢室,和我說他新想出了一個(gè)想法。這個(gè)想法是針對(duì)一種新的存儲(chǔ)硬件NVM的(Non-Volatile Memory,非易失存儲(chǔ))。這個(gè)想法的動(dòng)機(jī)(motivation)是來源于NVM的一個(gè)特點(diǎn):NVM的讀很快,具有接近DRAM(Dynamic Random Access Memory,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器,即我們平時(shí)所說的內(nèi)存)的速度,但是寫比DRAM慢很多。這樣的特點(diǎn)使得NVM上的寫在很多時(shí)候成為了一個(gè)瓶頸,因此這篇工作就希望能夠降低NVM的寫的頻率。使用的方法啟發(fā)于以前一篇數(shù)據(jù)庫領(lǐng)域的論文。那篇論文設(shè)計(jì)了一種混合多階段索引(hybrid multi-stage index)來減少寫操作。啟發(fā)于此,信靜設(shè)計(jì)了一個(gè)雙階段(dual-stage)的索引來減少NVM上的寫操作。(關(guān)于這篇論文詳細(xì)的說明可以參考這篇文章)信靜有些忐忑又有些期待地看向我:“你覺得這個(gè)想法怎么樣?靠譜嗎?做出來能中頂會(huì)嗎?”我很肯定地告訴他:“我覺得非常靠譜,做出來的話應(yīng)該能中?!毙澎o歡欣雀躍地說:“我也這么認(rèn)為!那我就去實(shí)現(xiàn)了!”在這項(xiàng)工作中,還有一些讓我印象深刻的事情。在與以前的相關(guān)工作進(jìn)行實(shí)驗(yàn)對(duì)比的時(shí)候,我們發(fā)現(xiàn)之前的工作基本都沒有開放源代碼(開源)。數(shù)據(jù)庫、系統(tǒng)方面的論文實(shí)現(xiàn)是極其復(fù)雜且困難的,常常會(huì)耗費(fèi)巨大量的力氣,因此如果之前的工作有開源的話,那就會(huì)大大減少復(fù)現(xiàn)的代價(jià);否則的話,則可能要花大量的精力在復(fù)現(xiàn)論文上。信靜抱著試試看的想法給作者們寫了郵件,想看看能不能要到源代碼,這樣就可以省下大量精力。遺憾的是,所有最新的相關(guān)論文的作者都表示無法提供源代碼,但是有幾位作者表示,如果信靜復(fù)現(xiàn)論文的過程中碰到問題的話,他們?cè)敢馓峁椭??!斑@怎么辦呢?要不就比較一些老一些的但是開源了的工作?”我問信靜。“不行,這樣的話,實(shí)驗(yàn)結(jié)果就缺乏說服力了。不提供代碼就不提供代碼吧,我自己來實(shí)現(xiàn)!”信靜堅(jiān)定地回復(fù)我。后來,信靜就憑借自己驚人的工程能力,將所有需要對(duì)比的工作都復(fù)現(xiàn)了出來。這項(xiàng)工作在做了半年之后進(jìn)行了第一次投遞,投遞在VLDB2020(VLDB是數(shù)據(jù)庫領(lǐng)域最頂尖的兩個(gè)會(huì)議之一)上。不幸的是,第一次審稿(review)結(jié)果出來,審稿人(reviewer)的意見都比較負(fù)面,主要的批評(píng)在于工作的實(shí)驗(yàn)是在NVM的模擬器上做的,審稿人覺得這不太具有說服力,希望能在真實(shí)硬件上做實(shí)驗(yàn)。審稿人寫道(此為翻譯):“如果是以前也就罷了,那時(shí)候Intel沒有提供硬件給外界使用,那不得不用模擬器?,F(xiàn)在Intel已經(jīng)提供硬件了,那么沒理由只是在模擬器上做實(shí)驗(yàn)?!薄昂撸√峁﹤€(gè)啥!明明只有和Intel有合作的企業(yè)才能拿到?!毙澎o很委屈地和我吐槽。我當(dāng)時(shí)和信靜說,實(shí)在不行的話,就再投下一個(gè)會(huì)議吧,我想總有審稿人愿意接受模擬器上的實(shí)驗(yàn)結(jié)果的吧。信靜不服氣,覺得不能就這樣放棄。后來他自己想辦法聯(lián)系到了阿里的一個(gè)數(shù)據(jù)庫的組去實(shí)習(xí),并與實(shí)習(xí)的組商量好,在實(shí)習(xí)期間把這篇工作的實(shí)驗(yàn)給做了。在真實(shí)硬件上重新做了實(shí)驗(yàn)之后,信靜再次將這篇論文提交到VLDB。審稿人看到這樣的改進(jìn)之后都非常高興,紛紛給了接收(accept),這篇工作就這樣中了。信靜想辦法拿到真實(shí)NVM硬件做實(shí)驗(yàn)的這件事情讓我意識(shí)到了自己和信靜的一個(gè)巨大差距的地方:信靜是能夠打破限制(break the box)來解決問題的人(problem solver),碰到?jīng)]有NVM硬件這樣的限制,他會(huì)想辦法打破限制;而我則是一個(gè)只敢在限制內(nèi)行動(dòng)的人。
在那之后,許是上天不忍心再捉弄信靜了,他的運(yùn)氣終于好了起來。DPTree的論文被接受了。而之后,這篇論文的一位審稿人 Joy Arulraj (他是佐治亞理工的助理教授)因?yàn)樾澎o的出色工作而主動(dòng)聯(lián)系他尋求合作。在得知了信靜還沒有攻讀博士后,Joy還主動(dòng)找了funding(資金支持)并邀請(qǐng)信靜去佐治亞理工讀博。到了秋招,我們都要找工作了。我和信靜都非常希望能和彼此做同事。我先拿到了一家高頻交易公司的offer,而后信靜也非常希望能拿到這家公司的機(jī)會(huì),我們一起當(dāng)同事,但很遺憾這家公司秋招時(shí)候的系統(tǒng)開發(fā)崗位只有1個(gè)名額,不再繼續(xù)面試信靜。無奈之下,信靜只能再去尋找其他大公司的數(shù)據(jù)庫組的機(jī)會(huì)。后來我率先拿到了騰訊云數(shù)據(jù)庫內(nèi)核組的offer,之后介紹信靜去面了這個(gè)組,信靜也沒有辜負(fù)大家的期望順利地砍下了SSP。這本是我們成為同事的絕佳機(jī)會(huì),然而我已經(jīng)先答應(yīng)了那家高頻交易公司,而我向來是言出必行,故而也就未選擇去騰訊與信靜共事,現(xiàn)在想來還非常后悔和遺憾。信靜畢業(yè)去了騰訊,在那個(gè)組做了許多很不錯(cuò)的工作。更厲害的是,信靜還利用業(yè)余時(shí)間與Joy合作做科研。那時(shí)候,信靜工作日的白天上班,晚上和周末擠時(shí)間做科研。我們同屆的幾位朋友基本上都因工作忙得焦頭爛額,掙扎在廠子里日復(fù)一日的搬磚之中,而他卻能在將工作任務(wù)完成得非常出色的同時(shí),還做了一項(xiàng)頂級(jí)的科研工作,真是令人敬佩。他們的這項(xiàng)工作SpitFire最終發(fā)在SIGMOD2021上(SIGMOD是數(shù)據(jù)庫領(lǐng)域最頂級(jí)的兩個(gè)會(huì)議中的另外一個(gè))。