Tidehunter:Sui 的下一代數據庫,優化低延遲和降低寫入放大

簡要概述

Sui 已推出 Tidehunter,一款專為取代 RocksDB 而設計的存儲引擎,旨在降低寫入放大效應,提供更高、更穩定的吞吐量以及較低的延遲,適用於驗證者和完整節點的工作負載。

tidehunter: Sui 下一代為低延遲與降低寫入放大而優化的資料庫

作為一個 Layer 1 區塊鏈網絡,Sui 引入了 Tidehunter,一款針對現代區塊鏈基礎設施中常見的性能需求、數據存取特性和運營限制而設計的新型存儲引擎。

該系統被定位為現有驗證者和完整節點所使用的資料庫層的潛在繼任者,反映出為應對生產環境中規模和工作負載變化而進行的核心基礎設施現代化的更廣泛努力。

Sui 最初依賴 RocksDB 作為其主要的鍵值存儲層,這是一個廣泛採用且成熟的解決方案,促使協議能快速開發。隨著平台擴展和運營需求增加,通用 LSM-樹資料庫的根本限制在類生產環境中變得越來越明顯。

大量調整和深厚的內部專業知識無法完全解決與區塊鏈系統典型存取模式相衝突的結構性低效問題,促使策略轉向設計一個專為區塊鏈工作負載優化的存儲引擎,最終開發出 Tidehunter。

這一決策背後的核心因素之一是持續的寫入放大。在現實的 Sui 工作負載下測量,放大倍數約為十到十二倍,意味著相對較小的應用數據量會產生不成比例的大量磁碟流量。雖然這種行為在基於 LSM 的系統中很常見,但它降低了有效存儲帶寬,並加劇了背景壓縮與讀取操作之間的競爭。在寫入密集或讀寫平衡的環境中,這種開銷隨著吞吐量擴展而變得越來越具有限制性。

在高性能集群上的負載測試證實了這一影響,磁碟利用率接近飽和,儘管應用寫入速率適中,突顯出傳統存儲架構與現代區塊鏈性能需求之間日益嚴重的不匹配。

Tidehunter 架構:為區塊鏈存取模式和持續高吞吐量工作負載優化的存儲引擎

在 Sui 和類似區塊鏈平台中,存取行為由少數重複出現的數據存取模式主導,Tidehunter 就是專門圍繞這些特性設計的。大量的狀態是使用加密哈希鍵來定位,這些鍵分布均勻,通常映射到較大的記錄,這樣可以消除局部性,但簡化一致性和正確性。

同時,區塊鏈高度依賴附加導向的結構,如共識日誌和檢查點,這些結構中的數據按順序寫入,並使用單調遞增的標識符來檢索。這些環境本身也是寫入密集型的,同時又需要在延遲敏感的讀取路徑上提供快速存取,使得過度的寫入放大成為吞吐量和響應速度的直接威脅。

Tidehunter 的核心是一個高併發寫入管道,旨在利用現代固態存儲的平行能力。進入的寫入數據通過一個無鎖的預寫日誌(write-ahead log)進行排隊,該日誌能支撐極高的操作速率,並將競爭限制在最小的分配步驟內。

數據複製在並行進行,系統避免每個操作的系統調用,採用可寫的記憶體映射文件,而耐久性則由背景服務異步處理。這種設計產生一條可預測且高度平行的寫入路徑,能飽和磁碟帶寬而不受 CPU 開銷限制。

降低寫入放大被視為一個主要的架構目標,而非僅僅是優化步驟。 Tidehunter 不將日誌用作臨時緩衝區,而是將數據永久存儲在日誌段中,並建立直接引用偏移量的索引,避免重複重寫值。

索引被大量分片,以保持低寫入放大並增加平行性,免除傳統 LSM-樹結構的需求。對於以附加為主的數據集,如檢查點和共識記錄,專門的分片策略將近期數據緊密分組,即使歷史數據增長,寫入開銷也能保持穩定。

對於由均勻分佈哈希鍵定位的表,Tidehunter 引入一個統一查找索引,優化預測性低延遲存取。索引不會發出多個小而隨機的讀取,而是讀取一個略大的連續區域,統計上包含所需條目,使大多數查找能在一次磁碟往返中完成。

這種方法有意犧牲部分讀取吞吐量,以換取較低且更穩定的延遲,這個權衡是合理的,因為降低的寫入放大釋放了大量磁碟帶寬用於讀取流量。結果是在延遲敏感操作(如交易執行和狀態驗證)中提供更一致的性能。

為了進一步控制大規模下的尾部延遲,Tidehunter 結合了直接 I/O 和應用管理的快取。大型歷史讀取繞過操作系統的頁面快取,以防止快取污染,而近期和頻繁存取的數據則保留在用戶空間快取中,並根據應用層的存取模式進行調整。結合其索引佈局,這減少了不必要的磁碟往返,並在持續負載下提高預測性。

數據生命週期管理也變得更簡單。由於記錄直接存儲在日誌段中,刪除過時的歷史數據可以通過刪除超出保留窗口的整個日誌文件來完成,避免了 LSM 資料庫所需的複雜且 I/O 密集的壓縮機制,並使資料集擴展時的修剪更快、更可預測。

在模擬實際 Sui 使用情境的工作負載中,Tidehunter 展示出比 RocksDB 更高的吞吐量和更低的延遲,同時消耗的磁碟寫入帶寬顯著較少。最明顯的改進來自於幾乎消除的寫入放大,這使磁碟活動更貼近應用層的寫入,並保留 I/O 容量用於讀取。這些效果在受控基準測試和完整驗證者部署中均有體現,表明這些優勢超越了合成測試。

評估使用一個與資料庫無關的基準框架進行,模擬插入、刪除、點查和迭代工作負載的現實混合。測試參數反映 Sui 類鍵分佈、值大小和讀寫比例,並在符合驗證者建議規格的硬體上執行。在這些條件下,Tidehunter 一貫地提供比 RocksDB 更高的吞吐量和更低的延遲,尤其在寫入密集和平衡場景中優勢最大。

驗證者層級的基準進一步確認了這些結果。當直接整合到 Sui 並承受持續的交易負載時,使用 Tidehunter 的系統在磁碟利用率開始上升、性能下降之前,能保持穩定的吞吐量和較低的延遲。測量結果顯示磁碟壓力降低,CPU 使用更穩定,最終延遲改善,顯示在相似負載下行為明顯不同。

Tidehunter 是對長期運行、高吞吐量區塊鏈系統運營需求的實用回應。隨著區塊鏈向持續而非突發工作負載轉變,存儲效率成為協議性能的基礎要求。Tidehunter 的設計反映出向專為下一階段擴展而構建的基礎設施轉變,更多技術細節和部署計劃預計將隨後公布。

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 轉發
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate App
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)