第92章 露一手(下)
一眾領導寒暄完,重新回到了座位上,把講台留給了顧川。
「不要緊張。」顧校見顧川一臉古怪,笑著鼓勵道,「就當提前答辯了。」
什麼叫提前答辯…顧川才入學多久…
後排的許倩媛的心一下就被揪了起來,看著在講台上做著深呼吸的顧川,雙手交叉,暗暗祈禱。
但其實,這時候的顧川並不緊張。
他只是有點似曾相識。
他上輩子的崗階是4-2,因為算法部門在字節的特殊地位,他的實際權限相當於vp(副總裁)。
說是十來個人之下,十幾萬人之上,還真沒什麼問題。
上次給人像這樣「說課」是在哪裡?會議室吧?
底下的人是清北碩博還是矽谷海歸來著?
他捻起一支粉筆,再次朝領導們鞠了一躬,又看了一眼後排眼神有些擔心的許倩媛。
這應該是不少學生想像過的場景吧,自己站在講台上,下面的導師握著筆,喜歡的女生還坐在後排看著。
「我準備好了。」他停止胡思亂想。
「第一個問題我來吧。」顧校主場,又是校長,需要他先來定調,
「小顧啊,咱們先不聊後面那些複雜的哈希環,就聊你論文的第一部分。
你的思路很巧,論文裡舉的例子也很有趣。
傳統的 select輪詢,就像是宿管挨個敲整棟宿舍樓的房門,問有沒有垃圾要倒,這樣效率太低,處理太慢。
不如有垃圾的宿舍自己把垃圾打個包,放在走廊上排好隊,這樣宿管直接收就行。
這也就是你說的 O(1)。
這個比喻,我沒理解錯吧?」
見顧川點頭,顧校笑了笑,「那我這裡就有個問題了,如果某一天,這一萬個宿舍在同一秒鐘,全都有垃圾要倒。
你的那個就緒隊列里,瞬間塞滿一萬個任務,應用層程序難道不需要把這一萬個任務挨個處理一遍嗎?
既然最後還是要老老實實處理一萬次,總耗時依然是隨著連接數線性增長的。
那你所謂的 O(1)優勢,到底體現在哪裡呢?
這難道不是一個偷換概念的偽命題嗎?」
全網首發更新𝕿𝖂看書📕𝖘𝖍𝖚.𝖙𝖜
「是的。」顧川掂了掂手上的粉筆,知道顧校這是半測試半給自己抬轎子,
「瞬間一萬條信息,處理消息的計算時間依然是O(N)。」
「但我想解決的問題,從來不是處理信息,而是等待。」
「比如…QQ。」顧川輕笑,
「假設現在一百來個QQ掛在網上,但其實中間有九十萬都是靜默狀態,用傳統輪詢,cpu要把算力放在這些靜默的QQ上,不斷詢問『你要不要發送消息』,這就導致單台伺服器能承載的用戶量減少,想要解決,唯一的辦法就是多買伺服器。」
「而在我的設想中,這九十萬個靜默狀態下的QQ根本不用搭理,直接處理已經發送的消息就行。」
「I/O復用的本質是消滅無效的等待損耗,而不是處理消息的時間。」
實際上,這正是小馬哥看到這篇論文會急忙來找他的原因。
顧川的論文,在他眼裡,通篇只有兩個字,省錢。
可惜顧川根本不會做資敵的事。
小馬哥你還是老老實實卡著吧,這對大家都好。
「很好。」顧校滿意的點了點頭,朝陳健龍點了點頭,「那麼第二個問題,小陳,你來吧。」
「好,」陳健龍朝顧川笑了笑,「顧川,我花了點時間看了一下你說的哈希環概念。」
「你說當網格里有伺服器A物理宕機了,那麼原本打向A的流量,會順時針尋找,平滑地轉移給下一個相鄰的節點B。
數學上,這確實避免了全網數據的重新洗牌,非常好。」
「但是在實際操作里,這是要出大事的。
現在A死了,你把A的全部流量瞬間砸到B的頭上。B的CPU和網卡絕對扛不住這突如其來的雙倍壓力,它會在幾秒鐘內被當場壓垮。
類似的,B死了,A和B的流量又會全部砸向下一個節點C,同理,C也會瞬間被擊穿,循環往復,整個系統會瞬間崩潰。
我想知道,你考慮過這個問題嗎?」
「當然。」顧川在黑板上畫了一個圈,標註了ABC,
「如果把物理伺服器1:1的掛在這個環上,那炸一台機子,其他的必炸。」
「所以…」
他用在ABC旁邊噠噠噠的開始畫點,
「我們需要在數學邏輯和物理硬體之間,再加一層,我管它叫虛擬節點。」
「每一台真實的物理伺服器,我給它加上不同的前綴鹽值,進行哈希計算。
舉個例子,一台物理機,我映射1000個虛擬的分身。
那麼回到您剛剛的問題。
這1000個A的分身,穿插在B和C的分身之間,散布在整個環上。
如果物理機A燒了,環上消失的,不是一個巨大的A,而是1000個微小的A的碎片。
這1000個碎片順時針尋找接盤…嗯,下一個伺服器時,它們找到的,將是剩下的所有其他物理機!
原本屬於A數據,不會整個砸向鄰居B,而是被網格里剩下的所有機器,均勻平攤。」
顧川在圈上寫下DEFG,
「這樣,一台機器只增加了一點點的負載,理論上並不會出現問題。
當然,要是環上所有機器都在滿負荷,那我建議加機器,別硬抗。」
「這…」楊健龍直接站了起來。
97年麻省理工的那篇論文裡,其實用數學語言提到了這個概念,只不過學術界現在根本沒有給它命名。
顧川一個18歲的學生,居然想給它命名?
真是…太狂妄…也太讓人喜歡了吧!
不愧是我們數學系的!
與之對應的,羅俊舟張著嘴,也站了起來。
他是計算機出身,想比楊健龍的更深一步。
在引入了虛擬節點後,不僅解決了雪崩問題,還順手解決了異構算力問題。
「咳咳。」顧校不滿的斜了一眼兩人,「丟不丟人?」
「啊…好…」兩人這才想起這是在哪,連忙坐下,開始竊竊私語,討論可行性。
「你還好意思說他們?」蔣校看在眼裡,歪著頭低聲說道,「你剛剛差點把手上筆甩飛了。」
「滾…」顧校摁了摁眉頭,感嘆道,「太嚇人了,老蔣。」
「怎麼說,這塊你是專家。」蔣校皺眉,,「理論上可行?」
「可能不僅僅是理論上…」顧校顫顫巍巍地摘下眼鏡,抹了把眼睛,
「你不明白…他說的東西,雖然都是舊有理論,但是完全碎片化,有的是六十年代提出的猜想,有的是前幾年剛出來的公式。」
「一年有多少期刊,多少論文?他到底是怎麼把這些知識整合在一起的…而且很多論文,都沒人翻譯…」
「你們學校能把數學和計算機結合的,有多少?」
「我明確告訴你,我們學校,博士生裡面,一個沒有。」
「老蔣,我現在突然有點擔心,我教不了他喲。」
「別胡說。」蔣校皺眉,「你是院士,有些話不能說出口的。」
顧校沒有回答,只是重新戴上眼鏡,笑呵呵的對站在講台上的顧川說道,
「顧川啊,我還有最後一個問題。」
「您說。」顧川鬆了口氣。
天色真不早了。
「你怎麼保證,數據一致性的問題?」顧校緩緩問道,「在我們現在的結構里…算了,你肯定懂我在說什麼吧?」
他看著顧川的眼睛。
「知道。」顧川點頭,
「您是想說,現在的數據結構,用資料庫鎖住,哪怕卡頓也不會有問題,我的這個如果卡頓丟包,可能會出大問題對吧?」
「沒錯。」顧校閉了閉眼睛,「這不是考較,而是探討,你說說你的想法就好…嗯…這塊我也沒想明白。」
這話一出,整間教室都安靜了下來,就連蔣校的眼神都變了變。
一位院士要跟一個少年探討嗎…
后座的許倩媛在顧川回答第一個問題的時候就已經大腦宕機了。
為什麼每個字都能聽懂,連起來就看不明白了…
顧川原來這麼厲害嗎?
那這題…顧川會嗎?
夕陽照進教室的窗戶,把顧川的半邊身子映襯的金黃。
「好。」他的聲音很平,很穩,嗓音還帶著少年的清朗,
「我有點想法,還請各位指正。」
…
「不要緊張。」顧校見顧川一臉古怪,笑著鼓勵道,「就當提前答辯了。」
什麼叫提前答辯…顧川才入學多久…
後排的許倩媛的心一下就被揪了起來,看著在講台上做著深呼吸的顧川,雙手交叉,暗暗祈禱。
但其實,這時候的顧川並不緊張。
他只是有點似曾相識。
他上輩子的崗階是4-2,因為算法部門在字節的特殊地位,他的實際權限相當於vp(副總裁)。
說是十來個人之下,十幾萬人之上,還真沒什麼問題。
上次給人像這樣「說課」是在哪裡?會議室吧?
底下的人是清北碩博還是矽谷海歸來著?
他捻起一支粉筆,再次朝領導們鞠了一躬,又看了一眼後排眼神有些擔心的許倩媛。
這應該是不少學生想像過的場景吧,自己站在講台上,下面的導師握著筆,喜歡的女生還坐在後排看著。
「我準備好了。」他停止胡思亂想。
「第一個問題我來吧。」顧校主場,又是校長,需要他先來定調,
「小顧啊,咱們先不聊後面那些複雜的哈希環,就聊你論文的第一部分。
你的思路很巧,論文裡舉的例子也很有趣。
傳統的 select輪詢,就像是宿管挨個敲整棟宿舍樓的房門,問有沒有垃圾要倒,這樣效率太低,處理太慢。
不如有垃圾的宿舍自己把垃圾打個包,放在走廊上排好隊,這樣宿管直接收就行。
這也就是你說的 O(1)。
這個比喻,我沒理解錯吧?」
見顧川點頭,顧校笑了笑,「那我這裡就有個問題了,如果某一天,這一萬個宿舍在同一秒鐘,全都有垃圾要倒。
你的那個就緒隊列里,瞬間塞滿一萬個任務,應用層程序難道不需要把這一萬個任務挨個處理一遍嗎?
既然最後還是要老老實實處理一萬次,總耗時依然是隨著連接數線性增長的。
那你所謂的 O(1)優勢,到底體現在哪裡呢?
這難道不是一個偷換概念的偽命題嗎?」
全網首發更新𝕿𝖂看書📕𝖘𝖍𝖚.𝖙𝖜
「是的。」顧川掂了掂手上的粉筆,知道顧校這是半測試半給自己抬轎子,
「瞬間一萬條信息,處理消息的計算時間依然是O(N)。」
「但我想解決的問題,從來不是處理信息,而是等待。」
「比如…QQ。」顧川輕笑,
「假設現在一百來個QQ掛在網上,但其實中間有九十萬都是靜默狀態,用傳統輪詢,cpu要把算力放在這些靜默的QQ上,不斷詢問『你要不要發送消息』,這就導致單台伺服器能承載的用戶量減少,想要解決,唯一的辦法就是多買伺服器。」
「而在我的設想中,這九十萬個靜默狀態下的QQ根本不用搭理,直接處理已經發送的消息就行。」
「I/O復用的本質是消滅無效的等待損耗,而不是處理消息的時間。」
實際上,這正是小馬哥看到這篇論文會急忙來找他的原因。
顧川的論文,在他眼裡,通篇只有兩個字,省錢。
可惜顧川根本不會做資敵的事。
小馬哥你還是老老實實卡著吧,這對大家都好。
「很好。」顧校滿意的點了點頭,朝陳健龍點了點頭,「那麼第二個問題,小陳,你來吧。」
「好,」陳健龍朝顧川笑了笑,「顧川,我花了點時間看了一下你說的哈希環概念。」
「你說當網格里有伺服器A物理宕機了,那麼原本打向A的流量,會順時針尋找,平滑地轉移給下一個相鄰的節點B。
數學上,這確實避免了全網數據的重新洗牌,非常好。」
「但是在實際操作里,這是要出大事的。
現在A死了,你把A的全部流量瞬間砸到B的頭上。B的CPU和網卡絕對扛不住這突如其來的雙倍壓力,它會在幾秒鐘內被當場壓垮。
類似的,B死了,A和B的流量又會全部砸向下一個節點C,同理,C也會瞬間被擊穿,循環往復,整個系統會瞬間崩潰。
我想知道,你考慮過這個問題嗎?」
「當然。」顧川在黑板上畫了一個圈,標註了ABC,
「如果把物理伺服器1:1的掛在這個環上,那炸一台機子,其他的必炸。」
「所以…」
他用在ABC旁邊噠噠噠的開始畫點,
「我們需要在數學邏輯和物理硬體之間,再加一層,我管它叫虛擬節點。」
「每一台真實的物理伺服器,我給它加上不同的前綴鹽值,進行哈希計算。
舉個例子,一台物理機,我映射1000個虛擬的分身。
那麼回到您剛剛的問題。
這1000個A的分身,穿插在B和C的分身之間,散布在整個環上。
如果物理機A燒了,環上消失的,不是一個巨大的A,而是1000個微小的A的碎片。
這1000個碎片順時針尋找接盤…嗯,下一個伺服器時,它們找到的,將是剩下的所有其他物理機!
原本屬於A數據,不會整個砸向鄰居B,而是被網格里剩下的所有機器,均勻平攤。」
顧川在圈上寫下DEFG,
「這樣,一台機器只增加了一點點的負載,理論上並不會出現問題。
當然,要是環上所有機器都在滿負荷,那我建議加機器,別硬抗。」
「這…」楊健龍直接站了起來。
97年麻省理工的那篇論文裡,其實用數學語言提到了這個概念,只不過學術界現在根本沒有給它命名。
顧川一個18歲的學生,居然想給它命名?
真是…太狂妄…也太讓人喜歡了吧!
不愧是我們數學系的!
與之對應的,羅俊舟張著嘴,也站了起來。
他是計算機出身,想比楊健龍的更深一步。
在引入了虛擬節點後,不僅解決了雪崩問題,還順手解決了異構算力問題。
「咳咳。」顧校不滿的斜了一眼兩人,「丟不丟人?」
「啊…好…」兩人這才想起這是在哪,連忙坐下,開始竊竊私語,討論可行性。
「你還好意思說他們?」蔣校看在眼裡,歪著頭低聲說道,「你剛剛差點把手上筆甩飛了。」
「滾…」顧校摁了摁眉頭,感嘆道,「太嚇人了,老蔣。」
「怎麼說,這塊你是專家。」蔣校皺眉,,「理論上可行?」
「可能不僅僅是理論上…」顧校顫顫巍巍地摘下眼鏡,抹了把眼睛,
「你不明白…他說的東西,雖然都是舊有理論,但是完全碎片化,有的是六十年代提出的猜想,有的是前幾年剛出來的公式。」
「一年有多少期刊,多少論文?他到底是怎麼把這些知識整合在一起的…而且很多論文,都沒人翻譯…」
「你們學校能把數學和計算機結合的,有多少?」
「我明確告訴你,我們學校,博士生裡面,一個沒有。」
「老蔣,我現在突然有點擔心,我教不了他喲。」
「別胡說。」蔣校皺眉,「你是院士,有些話不能說出口的。」
顧校沒有回答,只是重新戴上眼鏡,笑呵呵的對站在講台上的顧川說道,
「顧川啊,我還有最後一個問題。」
「您說。」顧川鬆了口氣。
天色真不早了。
「你怎麼保證,數據一致性的問題?」顧校緩緩問道,「在我們現在的結構里…算了,你肯定懂我在說什麼吧?」
他看著顧川的眼睛。
「知道。」顧川點頭,
「您是想說,現在的數據結構,用資料庫鎖住,哪怕卡頓也不會有問題,我的這個如果卡頓丟包,可能會出大問題對吧?」
「沒錯。」顧校閉了閉眼睛,「這不是考較,而是探討,你說說你的想法就好…嗯…這塊我也沒想明白。」
這話一出,整間教室都安靜了下來,就連蔣校的眼神都變了變。
一位院士要跟一個少年探討嗎…
后座的許倩媛在顧川回答第一個問題的時候就已經大腦宕機了。
為什麼每個字都能聽懂,連起來就看不明白了…
顧川原來這麼厲害嗎?
那這題…顧川會嗎?
夕陽照進教室的窗戶,把顧川的半邊身子映襯的金黃。
「好。」他的聲音很平,很穩,嗓音還帶著少年的清朗,
「我有點想法,還請各位指正。」
…