顧楓在姐姐寬敞的辦公室里等了快半個(gè)小時(shí)了,實(shí)在閑得發(fā)慌,便隨手拿起桌上的財(cái)經(jīng)雜志翻看著打發(fā)時(shí)間。
就在這時(shí),方薇推開門走了進(jìn)來,準(zhǔn)備給他添水。
“小楓,等急了吧!顧總回公司后又去參加會議了。好像遇到了挺棘手的技術(shù)問題!”
她笑著說道:
“據(jù)說核心數(shù)據(jù)庫的并發(fā)鎖出了故障,整個(gè)技術(shù)部都亂成了一團(tuán),這事兒還關(guān)乎下午要簽訂的一個(gè)大訂單!”
顧楓聞言,放下雜志。
數(shù)據(jù)庫并發(fā)鎖?
這倒勾起了他的興趣。
“會議室在哪兒?”顧楓站起身。
方薇指了個(gè)方向:
“出門右轉(zhuǎn)最里面那間。不過小楓,你現(xiàn)在過去可能……”
她話沒說完,顧楓已經(jīng)走了出去。
會議室是玻璃隔斷的,從外面就能看到里面的情形。
顧楓站在門外,只見長條會議桌旁坐滿了人,個(gè)個(gè)面色凝重。
姐姐坐在主位,手指無意識地敲擊著桌面,技術(shù)總監(jiān)趙明站在白板前,額頭上都是汗。
“已經(jīng)三個(gè)小時(shí)了,”
顧雨的聲音透過玻璃隱隱傳了出來,
“客戶下午兩點(diǎn)就要看演示,現(xiàn)在系統(tǒng)完全卡死。誰能告訴我,到底還要多久?”
一個(gè)戴著厚眼鏡的工程師小聲說:
“顧總,這個(gè)死鎖很詭異,我們查了所有常規(guī)可能性……”
顧楓輕輕推開了門。
頓時(shí),全會議室的人都看了過來。
技術(shù)部的人大多不認(rèn)識他,眼神里帶著疑惑和被打斷的不悅。
顧雨看到他,愣了一下:“小楓?你怎么……”
顧楓走到白板前,對顧雨笑了笑:
“姐,我在外面聽到一點(diǎn)。是關(guān)于OLTP系統(tǒng)的行級鎖死鎖嗎?我剛好最近研究過類似的案例,能讓我看看嗎?”
會議室里一片寂靜。
技術(shù)總監(jiān)趙明推了推眼鏡,語氣帶著明顯的不信任:“這位是?”
“我弟弟,顧楓!”
顧雨簡單介紹,然后看向顧楓,眼神里既有期待又有擔(dān)憂,
“你確定?”
顧楓點(diǎn)點(diǎn)頭,拿起白板筆:“能簡單描述一下癥狀嗎?”
一個(gè)年輕工程師小聲嘀咕:“外行來湊什么熱鬧……”
趙明瞪了那人一眼,但還是耐著性子解釋:
“系統(tǒng)在高峰并發(fā)時(shí)會出現(xiàn)隨機(jī)死鎖,鎖超時(shí)后自動(dòng)解除,但找不到根本原因。我們排查了所有常見的鎖沖突場景,甚至重寫了部分事務(wù)代碼,問題依然存在!”
顧楓一邊聽,一邊在白板上畫了一個(gè)簡化的數(shù)據(jù)庫事務(wù)流程圖。
“你們檢查過索引碎片嗎?”他問。
會議室里幾個(gè)資深工程師聞言都笑了。
趙明搖頭:“第一個(gè)就排查了,索引狀態(tài)完美?!?/p>
“那……檢查過統(tǒng)計(jì)信息更新嗎?”
“每天都自動(dòng)更新?!?/p>
另一個(gè)工程師答道,語氣里已經(jīng)帶著不耐煩。
顧楓不以為意,繼續(xù)在白板上寫寫畫畫。
他突然筆尖一頓,像是想起了什么。
“等等,”
顧楓轉(zhuǎn)身面向眾人,“你們用的還是默認(rèn)的鎖超時(shí)設(shè)置?五秒鐘?”
趙明點(diǎn)頭:“這是行業(yè)標(biāo)準(zhǔn)。”
“問題就出在這里!”
顧楓在白板上畫了一個(gè)時(shí)間軸,
“我猜,你們最近升級了硬件,CPU性能提升了40%以上,對吧?”
技術(shù)部的人面面相覷。
一個(gè)女工程師驚訝地說:
“你怎么知道?上個(gè)月剛升級的服務(wù)器……”
顧楓笑了:
“這就對了。性能提升導(dǎo)致事務(wù)處理速度加快,原本不會同時(shí)發(fā)生的鎖請求現(xiàn)在會在極短時(shí)間內(nèi)連續(xù)發(fā)生。而你們的應(yīng)用層重試機(jī)制……”
他看向趙明,“是在鎖超時(shí)后立即重試,對嗎?”
趙明愣住了:“這……這是標(biāo)準(zhǔn)做法??!”
“在低并發(fā)環(huán)境下是標(biāo)準(zhǔn)做法,”
顧楓在白板上寫下一串公式,
“但在高并發(fā)、高性能環(huán)境下,這會形成一個(gè)負(fù)反饋循環(huán)。所有事務(wù)在同一時(shí)間超時(shí),又在同一時(shí)間重試,導(dǎo)致新一輪的鎖沖突!”
他邊說邊在白板上快速寫下一段偽代碼,展示了一個(gè)簡單卻極其巧妙的重試算法——
引入隨機(jī)延遲和優(yōu)先級調(diào)整,完美避開了同步重試的陷阱。
會議室里安靜得只能聽見空調(diào)的聲音。
突然,一個(gè)年輕的工程師猛地拍了下桌子:
“對??!我怎么沒想到!這樣就能打破重試的同步性了!”
趙明盯著白板,眼神從疑惑變成震驚,最后變成恍然大悟。
他推了推眼鏡,聲音都有些發(fā)抖:
“這個(gè)思路……太精妙了!我們都被傳統(tǒng)解決方案限制住了!”
顧雨看著白板上簡潔優(yōu)雅的解決方案,又看看一臉平靜的弟弟,嘴角慢慢上揚(yáng)。
顧楓放下筆,拍拍手上的粉筆灰:
“問題應(yīng)該解決了。具體實(shí)現(xiàn)細(xì)節(jié),你們的技術(shù)團(tuán)隊(duì)肯定比我擅長!”
他轉(zhuǎn)向顧雨,“姐,你們繼續(xù),我回去等你!”
滿會議室的人都投來敬畏的目光,顧楓轉(zhuǎn)身離去,順手輕輕帶上了門。
回到顧雨辦公室,顧楓剛在沙發(fā)上坐下沒多久,門就被推開了。
趙明帶著幾個(gè)核心技術(shù)骨干站在門口,臉上還帶著未褪去的興奮:
“顧少,能請教一下,您是怎么想到那個(gè)解決方案的嗎?”
顧楓笑了笑,剛要回答,顧雨也走了進(jìn)來。
她看著弟弟,眼神里滿是驕傲:
“小楓,你知不知道,你剛才隨手解決的,是一個(gè)價(jià)值三億的訂單?”
顧楓眨眨眼:“現(xiàn)在知道了。”
技術(shù)部的人圍著他又討論了半個(gè)小時(shí)才依依不舍地離開。
顧雨關(guān)上門,走到弟弟面前,忍不住揉了揉他的頭發(fā):
“行啊你,深藏不露??!”
顧楓不好意思地笑笑:“就是剛好研究過類似的問題。”
“剛好?”
顧雨挑眉,
“你知道趙明是國內(nèi)數(shù)據(jù)庫領(lǐng)域的頂尖專家嗎?他剛才私下跟我說,你的那個(gè)解決方案,完全可以寫成論文發(fā)表?!?/p>
顧楓摸摸鼻子,沒說話。
顧雨在他身邊坐下,表情變得認(rèn)真:
“小楓,有沒有興趣來云璟科技?我給你單獨(dú)組建一個(gè)技術(shù)團(tuán)隊(duì),研究方向你定!”
顧楓搖搖頭:
“姐,我還是想先把書讀完。而且……”
他想起和李默的約定,“我還有些別的事情要做?!?/p>
顧雨雖然有些失望,但還是尊重弟弟的選擇:
“好吧!”
隨后她又笑著說:“也是,你本就是來跟姐姐學(xué)做生意的!日后,整個(gè)顧家的產(chǎn)業(yè)都要靠你繼承和管理,總把你困在云璟,確實(shí)不太妥當(dāng)!”
這時(shí),顧楓的手機(jī)響了。
他看了一眼,是蘇婷發(fā)來的消息:“在干嘛?想你了!”
顧楓的嘴角不自覺地上揚(yáng),快速回復(fù):“在陪我姐。也想你!”
顧雨探頭看了一眼,揶揄道:
“喲,明天才出發(fā)呢,今天就迫不及待了?”
顧楓收起手機(jī),耳朵微紅:
“姐~”
姐弟倆相視一笑,窗外陽光正好,又是一個(gè)充滿希望的日子。