? FastDFS V6.09?發(fā)布,主要改進:引入網(wǎng)絡(luò)框架庫?libserverframe,替換原有的?tracker nio?和?storage nio?兩個模塊。?2015?年?libserverframe?從?FastDFS?的?nio?模塊抽取出來,現(xiàn)在?FastDFS?使用?libserverframe,使得代碼更加簡潔高效,并解決了由來已久的一個?bug:網(wǎng)絡(luò)線程接收到客戶端請求,把文件讀寫交給磁盤?IO?線程后,在磁盤線程處理過程中如果客戶端斷開連接,對應(yīng)的網(wǎng)絡(luò)線程將空轉(zhuǎn)導(dǎo)致?CPU?跑滿。解決方法是?task?對象使用引用計數(shù)器,網(wǎng)絡(luò)線程和磁盤線程分別持有?task?對象(引用計數(shù)加一),各自處理完成后釋放該?task?對象(引用計數(shù)減一),當引用計數(shù)為零時,才能將該?task?放回對象池。
? V6.09?另外兩點改進:
? ? 1)tracker server?和?storage server?均支持?-N?選項,表示程序在前臺運行,而不采用傳統(tǒng)的?daemon?運行方式,以方便和其他運維工具整合;
? ? 2)文件上傳次數(shù)、文件下載次數(shù)等計數(shù)器不再采用線程鎖,而是使用原子操作,這樣代碼更加簡潔且性能更高。
? FastDFS V6.09?依賴?libfastcommon?和?libserverframe?這兩個基礎(chǔ)庫,歡迎大家下載使用,建議已有用戶盡快升級到最新版本。