抖。
「拋棄資料庫的關係查詢,把所有的關係表抽出來,在內存裡維護一個稀疏矩陣,所有的查詢,全部在內存裡做向量相乘,算出結果後,再拿用戶ID去資料庫裡提頭像和名字。」
「對。」
陳拙應了一聲。
「但是有個問題。」
楚戈的程式設計師思維迅速抓住了漏洞。
「A認識B,B認識C,C又認識A,這在圖論裡是個環,如果向量一直乘下去,會不會無限循環,把算力耗死?」「楚戈。」
陳拙在電話那頭嘆了口氣,語氣裡帶著點無奈。
「這是工程問題,不是數學證明題,向量乘出來的結果裡,凡是數值大於0的,你順手用個哈希表把1D記下來,下次乘的時候遇到已經記過的,直接跳過不就行陳拙輕輕搖了搖頭。
「你是個寫代碼的,別指望數學公式連你拉屎用幾格紙都算清楚,用點你程式設計師的常識好嗎?」楚戈聽著電話裡那點調侃,突然咧開嘴樂了。
「行,哥哥我承你這個情了,這回算我欠你的。」
楚戈把那張泡麵蓋子折了兩下,小心翼翼地塞進貼身的口袋裡。
「過完年回科大,我請你吃一個月的食堂小炒,先掛了,我得趕緊把這個底層的內存守護進程寫出來。」沒等陳拙說話,電話裡傳來了嘟嘟嘟的忙音。
陳拙放下話筒,搖了搖頭,嘴角帶著一抹笑意。
他轉過身,走向廚房去拿碗筷,準備吃晚飯。
距離澤陽市一千多公裡外的京城。
中關村附近的一棟破舊居民樓裡。
屋子裡沒開燈,隻有三四顯示器散發著慘白的光,窗外偶爾閃過幾道絢爛的煙花,照亮了滿地的菸頭和吃剩的外賣盒。汪興裹著一件棉服,整個人窩在電腦椅裡,雙眼布滿血絲,死死盯著屏幕上的後日誌。
他們想在這個網際網路的荒蠻時代,做一個真正意義上的實名製校園社交網站,點子是極好的,幾個汪興甚至已經靠著PPT拉到了一筆幾十萬的天使投資。但是技術瓶頸卡死了他們。
明天就是大年初三,投資人要求看一個承載五百人同時在線的係統Demo。
汪興已經三天沒合眼了。
隻要並發量一上來,好友的好友這個核心功能的資料庫查詢,就會像雪崩一樣拖垮整個係統。屏幕右下角的MSN圖標突然跳動了起來。
汪興布滿血絲的眼睛動了一下,握著滑鼠點開。
是楚戈,那個遠在徽州,被他拉來當免費技術外援的科大變態黑客。
「老楚,別費勁了。」
汪興敲了一行字發過去,手指有些僵硬。
獲取最新章節更新,請訪問𝑜𝑜𝑝.𝑡𝑤
「我們試了加緩存,試了建索引,沒用,關係型資料庫處理不了這種多級網狀查詢,硬體扛不住。」幾秒鐘後,楚戈發過來一個壓縮包。
隻有不到Z0KB。
緊接著,楚戈的消息彈了出來。
「把你們之前的關係查詢代碼全刪了,把這個C語言寫的守護進程掛在伺服器後。」
汪興愣了一下。
「這是什麼?」
「一個內存級別的稀疏矩陣相乘工具。」
楚戈的回覆很簡單。
「你隻要把你們的關係表導出一份純文本塞給它,以後所有的好友查詢,不用過資料庫,直接發指令給這個進程,它在內存裡算完,把好友ID數組返回給你。」
汪興看著那段話,有些摸不著頭腦。
但他現在已經走投無路了,死馬當活馬醫。
他接收了文件,解壓,把原始碼拖進編譯器,粗路地掃了一眼。
這一看,汪興的冷汗嘩的一下就下來了。
代碼極其精簡,沒有任何資料庫連接的庫文件,全是底層的內存指針操作和幾個他看不太懂的一維數組循環相乘。裡麵沒有一條SL語句。
汪興深吸了一口氣,把編譯好的執行文件掛到了測試伺服器的後,然後把幾萬條測試用的關係數據塞了進去。進程悄無聲息地啟動了,占用內存不到五十兆。
「跑個壓測。」
汪興轉頭,對旁邊另一個已經困得東倒西歪的王惠文喊了一聲。
王惠文迷迷糊糊地揉了揉眼睛,在鍵盤上敲下了一行壓測指令。
」。詢查度深友好級三,求請發並個百五擬模「
。車回完敲文惠王
」….. .前鐘秒三是還計估,吧器服伺啟重備準,哥興「
。裡嚨喉了在卡音聲的文惠王,完說沒還話
。色綠的屏滿。滿刷間瞬,度速的捉捕法無乎幾眼肉種一以是而,住卡死死樣那前之像有沒並條度進的具工測壓
。聲吱嘎的負重堪不出發子椅,體身了直坐地猛興汪
。據數總匯的果結測壓著盯死死他
。005:數成完求請
。0:數敗失
。秒毫3:間時應響均平
。控監源資統係的器服伺眼一了看頭轉他,了花眼己自得覺興汪
。了束結經已就詢查,動轉速加及得來沒都扇風連器服伺。%1了到落回速迅又後然,%8了到,下一了動跳僅僅率用使的UPC,間瞬一的測壓才剛在
。聲鳴蜂的弱微箱機到聽能隻得靜安裡子屋
」…..哥興「
。抖在都手的幕屏著指,沫唾口了咽文惠王的邊旁
」?轉沒庫料資?況情麼什這「
」。庫料資過有沒「
。據數查在是不這。輯邏學數的怕可那麵裡了白明看於終,碼代C段那才剛著盯死死他,啞沙得變音聲的興汪
。算計維降的度維學數行進網係關戶用個整對接直,裡存內在是這
」!?的寫誰是輯邏層底這!楚老「。改上不顧都字別錯個幾好了打連至甚,字敲地快極速手,口窗天聊的NSM回切他,麻發些有指手的興汪
。口窗動抖個三了發續連興汪
線階高和論圖的粹純是媽他這「