TurboKV 是一款基於 Rust 的新型鍵值儲存庫,透過最佳化預寫日誌(WAL)以避免每次寫入同步,從而實現高效能。該專案提供可配置的持久性模式,其中「持久」設定確保資料在程序崩潰後仍可恢復,但不一定能在斷電後保留。TurboKV 的「持久」模式依賴作業系統快取邊界而非磁碟同步,這表示在斷電時可能會遺失資料。基準測試是在擁有 32 GiB RAM 且資料集為 80 MiB 的機器上進行,這可能無法反映大於記憶體工作負載下的效能。
事件背景
預寫日誌(WAL)是一種資料庫技術,透過在將變更套用至主要資料儲存區之前記錄變更來確保資料完整性。傳統的 WAL 通常會對每個交易進行同步磁碟寫入以保證持久性,這可能會顯著影響寫入效能。現代嵌入式資料庫有時會透過依賴作業系統頁面快取來最佳化此過程,以速度換取斷電持久性。
社群觀察
社群討論集中在「持久性」的定義上,有人指出 TurboKV 的模式無法在斷電後保留資料。其他人則批評基準測試的方法,認為在 RAM 內的小資料集上測試可能無法代表涉及較大資料或隨機查詢的典型資料庫工作負載。



