讓網路不塞車的種樹訣竅
想像一座光禿禿的大山,一大群志工正等著種樹苗。如果全部人都只能聽山腳下唯一一個總指揮的廣播,規定誰去哪裡挖坑,對講機頻道馬上就會塞爆,大家只能傻傻站在原地等指令。傳統的電腦網路就是這樣。當一個中央大腦試圖把龐大的工作分配給每一台機器時,這個大腦就會忙不過來,把整個系統的速度嚴重拖垮。
為了加快速度,主辦方決定放手,讓各個小隊長自己看哪裡有空地就帶人過去。結果新問題來了。山頭兩邊的小隊長沒互相講好,竟然同時把人帶到同一塊空地。大家擠成一團,反而把泥土都踩壞了。在電腦世界裡,如果讓各個設備自己決定工作排程,不互相溝通,它們常常會不小心把大量工作同時丟給同一台機器,直接讓機器當機。
後來他們想到一個好方法,安排了一位行程確認員。現在小隊長出發前,要先用對講機回報預計去哪裡。如果確認員看地圖發現有兩隊快撞在一起了,就會馬上指派另一個安全地點給其中一隊。這種新技術用在電腦上,就像架設了一層數位防護罩。它會在工作開始前一刻,快速檢查所有設備的預定計畫,只要發現哪台機器快被塞爆了,就會立刻把工作轉移走。
剛開始,整座山只有一個確認員,但隨著志工越來越多,這個人光是看地圖就看到眼花。於是他們把大山劃分成好幾個山谷,每個山谷都有專屬的確認員。這些分區確認員平時各管各的,只有當志工走到山谷交界處時,才會互相通報一下。把這套做法搬到科技領域,就是把龐大的數位防護罩切分成好幾個區域小防護罩。這樣一來,不管網路規模變得多大,系統都能跑得飛快。
有了這些分區確認員的幫忙,整座山的樹苗很快就種完了,而且再也沒有發生人擠人的狀況。對我們現代社會依賴的複雜網路來說,這種防護罩設計不僅把處理時間砍半,還省下了大量的電力。這證明了一件很有意思的事,要完成超級龐大的任務,我們既不需要一個動作慢吞吞的中央獨裁者,也不需要毫無紀律的各做各的。只要在行動前一刻互相確認一下,事情就能順利完成。