身為使用者和企業信賴的檔案協作平台,Synology Drive 承載著成千上萬個個人或團隊的重要檔案。儘管資料量體龐大,Synology Drive 卻能保持靈活:無論是搜尋特定專案文件、還是將累積的大量活動照片轉移到正確資料夾,這些操作幾乎都能在滑鼠點按的瞬間完成。
這種低延遲的反應時間並非偶然,而是 Synology 開發團隊每天都在追求進步的目標。要做到如此高效運作,其背後隱藏著許多嚴謹且精巧的工程設計。接下來,就讓我們深入了解,Synology Drive 憑藉什麼樣的工程實力,能夠為您帶來閃電般快速的使用體驗。
為高速運作與規模化挑戰,奠定堅實基礎
一個應用程式要能快速運行,首先必須建立在穩固的基礎之上。這意味著在軟體開發初期,就需要打造一套具備高度可擴展性與資料完整性機制的架構藍圖,以應對龐大的資料量而不致崩潰,同時確保資料本身的安全性。為此,Synology 開發團隊在 Drive 的底層架構上,可說是下足功夫,尤其大幅改善了以下常見的使用痛點:
1. 輕鬆搬移大量檔案資料夾
使用者經常遇到一個痛點,那就是嘗試搬移包含數十萬個檔案的龐大專案資料夾,用滑鼠將檔案拖曳過去然後……就是漫長的等待。系統會因為要努力處理如此巨大的結構,整體速度會變得相當遲緩。
造成這種緩慢的根本原因,在於過去的資料庫設計,其中包含一個被 Synology 工程師稱為「肥大資料表」(fat table)的結構。這個資料表鉅細靡遺地映射了每個父資料夾與每個子項目之間的關係,並儲存了各個檔案或資料夾的完整文字路徑。隨著資料量的增長,這個資料表幾乎會以指數級的速度膨脹。
為了解決這個問題,Synology 開發團隊大規模地改造了 Drive 的資料庫,轉而採用精簡、基於 ID 的樹狀結構,徹底消除原有的肥大資料表。現在每個檔案與資料夾,只須知道自己的名稱,以及其直屬父層的 ID。這不僅讓資料庫查詢更為智慧與高效,將原本耗時數分鐘、消耗大量系統資源的操作,轉化為近乎即時的單一動作,讓 Drive 能夠輕鬆處理龐大資料集。
2. 平衡資料安全與卓越效能
為確保任何時候、即便是斷電情況下,資料都能安全無虞,每一次的檔案變更或更新,Drive 都必須完整記錄下來。然而,持續不斷的記錄動作,可能會導致顯著的效能卡頓,尤其當許多檔案同時更新時更是如此。我們過去的方法,依賴於資料庫引擎的預設自動設定,來處理其「預寫式日誌」(WAL, Write-Ahead Log)。這項安全功能可以在資料正式寫入前先行記錄變更,但當頻繁更新資料的時候,它就會被過度觸發,使得效能停滯。
為克服此問題,Synology 開發團隊採取自訂的檢查點(checkpointing) 策略。透過手動控制此過程,我們能將數千個微小的個別寫入操作,有效率地分組為批次處理。這使我們能充分利用 WAL 的雙重優勢:其堅固的資料耐用性,以及處理多個並行使用者的能力,同時避免預設設定帶來的效能開銷。靠著這項改變,在我們對 Drive 進行的內部測試中,索引速度就可以提升高達 20 倍或更高。
加速核心應用程式邏輯,減少遲緩操作感
建立堅實的基礎之後,下一步便是持續改善應用程式的內部邏輯,並對程式碼進行效能分析,以識別並消除影響使用者體驗的瓶頸。
例如,當使用者在 Drive 網頁入口執行操作時(如選取一群檔案再刪除或分享),我們發現瓶頸不一定發生在資料庫本身,而是應用程式如何處理與該動作相關的背景任務資料。過去,Drive 每次處理任務資訊時,會產生大量額外負擔,導致使用者介面感覺遲緩。
對此,Synology 開發團隊重新設計了核心資料的處理方式,從底層徹底改善這個過程。從測試結果來看,使用者介面響應速度顯著提升,例如從網頁入口選取並刪除 100 個檔案,其效能改善了超過 2.2 倍。這不僅僅是讓檔案操作的速度更快,更證明改善這些基礎的內部流程,能為使用者帶來更為流暢、一致的快速體驗。
完美整合運行平台整合,進一步推升使用效能
一個精心設計的應用程式固然強大,但當它與運行平台完美整合時,其真正的潛力才能完全釋放。Drive 如何善用 DiskStation Manager (DSM) 和 Btrfs 檔案系統,就是最好的證明。
過去,當重新啟動 Drive 套件時,伺服器必須對每個資料夾執行一次完整的「重新掃描」,以確認其離線期間可能發生的變化。對於大型部署來說,這個過程可能耗費數十分鐘。為消除這種遲緩感,Synology 開發團隊決定讓 Drive 連接到 DSM 作業系統內一個專門的變更追蹤服務。
由於這項服務會持續運行並維護所有檔案變更的持久日誌,即使 Drive 套件本身停止運作也不受影響。現在當 Drive 啟動時,它不再需要自行尋找變更;只需向該服務查詢一份簡潔的、所有錯過的變更列表。這種深度的作業系統整合,將一場耗費資源的馬拉松,轉化為一次簡短而高效的衝刺短跑。
另一個常見的情境是同一個檔案在工作時經常會產生多個版本,那麼系統如何提供強大的版本控制,同時又不會消耗大量儲存空間呢?這正是利用 Btrfs 檔案系統的絕佳機會。Btrfs 具備一項稱為 reflink 的功能:它能夠建立一個檔案的「複製體」,這個複製體會指向相同的資料區塊,而無需佔用新的空間。Synology Drive 開發團隊便重新設計版本控制邏輯,使其能夠充分利用 Btrfs 的這項特性,現在首次建立新版本幾乎是瞬間完成,且幾乎不佔用額外儲存空間。
以可靠為核心的開發文化
Synology 開發的核心信念,是一個值得信賴的產品,最根本也最重要的就是可靠度。從過去相對臃腫的資料庫,到現在響應迅速的介面;從啟動緩慢到具備空間效率的版本功能;透過重新設計資料庫以因應規模化需求、提升超過 20 倍的索引速度、更智慧的查詢方式並大幅降低 CPU 使用率,還有深度整合平台以提高儲存效率,Synology 開發團隊已將 Synology Drive,打造為滿足真實場景需求的解決方案,也是我們對此承諾的最佳證明。
我們將會抱持這樣的信念,不僅建立堅實的基礎,還會持續改善應用程式,並找到其與平台之間更合適的互動方式,讓每位使用者都能享受快速、高效且可靠的解決方案。