🚀 免費嘗試 Zilliz Cloud,完全托管的 Milvus,體驗速度提升 10 倍!立即嘗試

milvus-logo
LFAI
  • Home
  • Blog
  • Milvus 推出 MMap,重新定義資料管理並提升儲存能力

Milvus 推出 MMap,重新定義資料管理並提升儲存能力

  • Engineering
November 15, 2023
Yang Cen

Milvus是開放原始碼向量資料庫中速度最快的解決方案,可滿足具有密集效能需求的使用者。然而,使用者需求的多樣性反映了他們所使用的資料。有些用戶會優先使用經濟實惠的解決方案和大容量儲存空間,而非純粹的速度。Milvus 瞭解到這些需求,因此推出 MMap 功能,重新定義我們處理大量資料的方式,並承諾在不犧牲功能的前提下提高成本效益。

什麼是 MMap?

MMap 是記憶體映射檔案的縮寫,它在作業系統中的檔案和記憶體之間架起了一座橋樑。這項技術允許 Milvus 將大型檔案直接映射到系統的記憶體空間,將檔案轉換為連續的記憶體區塊。這種整合不需要明確的讀取或寫入作業,從根本上改變了 Milvus 管理資料的方式。對於大型檔案或使用者需要隨機存取檔案的情況,它可確保無縫存取和有效率的儲存。

誰能從 MMap 獲益?

由於向量資料的儲存需求,向量資料庫需要大量的記憶體容量。有了 MMap 功能,在有限的記憶體內處理更多資料就成為現實。然而,這種能力的提升需要付出性能代價。系統會智慧地管理記憶體,根據負載和使用情況驅逐一些資料。這種驅逐功能可讓 Milvus 在相同的記憶體容量內處理更多資料。

在測試過程中,我們觀察到在記憶體充足的情況下,所有資料都會在預熱後儲存在記憶體中,以維持系統效能。然而,隨著資料量的增加,效能會逐漸下降。因此,我們建議對效能波動不太敏感的使用者使用 MMap 功能。

在 Milvus 中啟用 MMap:簡單配置

在 Milvus 中啟用 MMap 非常簡單直接。您只需修改milvus.yaml 檔案:在queryNode 設定下新增mmapDirPath 項,並設定有效路徑作為其值。

取得平衡:效能、儲存與系統限制

資料存取模式會顯著影響效能。Milvus 的 MMap 功能可根據位置優化資料存取。MMap 讓 Milvus 能夠將標量資料直接寫入磁碟,以連續存取資料區段。變長資料(例如字串)會進行扁平化處理,並使用記憶體中的偏移量陣列進行索引。此方法可確保資料存取的區域性,並消除分開儲存每個可變長度資料的開銷。向量索引的優化非常仔細。MMap 有選擇性地用於向量資料,同時保留記憶體中的相鄰列表,在不影響效能的情況下節省大量記憶體。

此外,MMap 藉由最小化記憶體使用量來最大化資料處理。不同於之前 Milvus 版本中 QueryNode 會複製整個資料集的做法,MMap 在開發過程中採用了簡化的、無複製的串流處理方式。這種優化大大降低了記憶體開銷。

我們的內部測試結果顯示,啟用 MMap 後,Milvus 可以有效率地處理雙倍的資料量。

未來之路:持續創新和以用戶為中心的改進

雖然 MMap 功能仍處於測試階段,但 Milvus 團隊致力於持續改進。未來的更新將改善系統的記憶體使用量,讓 Milvus 在單一節點上支援更廣泛的資料量。使用者可預期對 MMap 功能進行更仔細的控制,使集合的動態變更和進階欄位載入模式成為可能。這些強化功能提供了前所未有的彈性,讓使用者可根據特定需求量身打造資料處理策略。

結論:利用 Milvus MMap 重新定義卓越的資料處理功能

Milvus 2.3 的 MMap 功能標誌著資料處理技術的重大飛躍。通過在性能、成本和系統限制之間取得微妙的平衡,Milvus 使用戶能夠高效、低成本地處理大量數據。隨著 Milvus 的持續演進,它仍然站在創新解決方案的最前線,重新定義資料管理可實現的邊界。

Milvus 將繼續邁向無與倫比的卓越資料處理,敬請期待更多突破性的發展。

Like the article? Spread the word

繼續閱讀