(綜合報導)Facebook在用戶數高速成長之際,需要解決的問題之一便是速度。除了龐大的儲存空間及伺服器基礎建設,其強大的數據庫技術與暫存技術也讓用戶大幅提升載入與存取效率,讓「滑Facebook」這個動作流暢無比。 有了這麼多硬體之後,還需要軟體才能讓這些機器活過來。 大部分的軟體程式都在Facebook的伺服器中,最重要、最鼎鼎大名的數據庫技術如MySQL與memcache,是Facebook自己建造的關聯及物件管理系統TAO(The Associations and Objects),用來追蹤數以兆計的資訊(包括人、東西與評論)與關係(例如張三是李四的朋友,李四剛剛在雪梨歌劇院打卡,張三在李四的Facebook上按讚),以應付每一秒鐘的數十億個請求;另外還有特別製作並貼切地稱為「稻草堆」(Haystack)的系統,要隨時要存取數百億筆照片和影片資料。 如果每一次都要到特定的數據中心找特定的伺服器,才能找出你想看的那張照片,就連稻草堆系統也招架不住,所以Facebook用了一種叫做「暫存」(caching)的軟體技術,把最常用的資訊存在網路各地:第一次要求存取照片時(比如朋友的度假照片),並不會暫存到各處,而是必須從Facebook數據中心的原始伺服器中取出,但是當它透過網際網路傳給你時,就會在那個數據中心的數位入口做第一次暫存;然後再透過全球數千個網際網路交流道,找到最靠近用戶網路位置的地方,存入周邊暫存器(edge cache),然後再送到你的手機或電腦。下一次你要看這張照片時,直接從你的設備上取用就可以。如果你有個朋友也和你在同一個網路空間中,也想看這張照片,系統就會去這個周邊暫存器取用,即使是在世界另外一個角落有人想看這張照片,也不需要回到最初的伺服器找照片,在數據中心的數位入口就有原始的暫存版了。 Facebook數位工廠的偉大科技成就 兩年增加4億8500萬名用戶。記得在2009年底,Facebook一年增加的用戶就比先前五年半都多嗎?為了成就這個大業,Facebook成立了第一個量身打造的數據中心,還針對一種網路上最通用的開發語言推出自己的高效率優化系統(優化對象包括前端的PHP和虛擬機器),還把伺服器效能提升了六倍以上,等於是買了六倍以上的伺服器。Facebook不只大幅擴充基礎建設,同時也大幅提升效能。 這些努力的結果如何?這個團隊完美地服務了在2010年到2011年新增的4億8500萬名用戶,這是Facebook歷史上最瘋狂成長的24個月,前所未有,也是唯一僅見。
|