Milvus(@milvusio)

Most people's vector database defaults to keeping all data in memory. 𝗧𝗵𝗮𝘁 𝗺𝗶𝗴𝗵𝘁 𝗯𝗲 ...

7.5内容质量
Most people's vector database defaults to keeping all data in memory. 𝗧𝗵𝗮𝘁 𝗺𝗶𝗴𝗵𝘁 𝗯𝗲 ...

TL;DR · AI 摘要

Milvus 指出默认全内存存储向量数据成本过高,推荐 MMap 和分层存储两种配置优化方案。

核心要点

  • 默认全内存存储在1亿+向量规模下成本高3-10倍
  • MMap方案用本地磁盘按需加载,延迟稳定且内存占用降低
  • 分层存储适合有冷热数据区分的场景,显著节省内存和磁盘
#Milvus#向量数据库#存储优化#MMap#分层存储
打开原文

Two ways to stop paying for idle data (both config changes in https://t.co/0Ad3zYktCi" / X

Most people's vector database defaults to keeping all data in memory. 𝗧𝗵𝗮𝘁 𝗺𝗶𝗴𝗵𝘁 𝗯𝗲 𝗰𝗼𝘀𝘁𝗶𝗻𝗴 𝘆𝗼𝘂 𝟯-𝟭𝟬𝘅 𝗺𝗼𝗿𝗲 𝘁𝗵𝗮𝗻 𝗶𝘁 𝗻𝗲𝗲𝗱𝘀 𝘁𝗼 (once you scale to production with 100M+ vectors). Two ways to stop paying for idle data (both config changes in Milvus, not redesigns): • 𝗠𝗠𝗮𝗽 (v2.3+):data on local disk, loaded on demand. Stable latency. Disk must hold the full dataset. • 𝗧𝗶𝗲𝗿𝗲𝗱 𝘀𝘁𝗼𝗿𝗮𝗴𝗲 (v2.6+): hot data cached locally, cold data in S3. Cache misses add 50-200ms. Both need NVMe SSDs (10K+ IOPS). 𝗢𝗻 𝟭𝟬𝟬𝗠 𝘃𝗲𝗰𝘁𝗼𝗿𝘀 (𝟳𝟲𝟴-𝗱𝗶𝗺, 𝗳𝗹𝗼𝗮𝘁𝟯𝟮): 𝗣𝗶𝗰𝗸 𝗠𝗠𝗮𝗽 𝗶𝗳: • P99 < 20ms — data is local, no network fetch, no surprise spikes. ~77-230 GB memory (vs 768 GB default). • Uniform access — tiered storage's cache doesn't help if everything gets hit equally 𝗣𝗶𝗰𝗸 𝘁𝗶𝗲𝗿𝗲𝗱 𝘀𝘁𝗼𝗿𝗮𝗴𝗲 𝗶𝗳: • Cost is the priority — <77 GB memory (vs 768 GB default). Saves on both memory and disk (70-90% less) • Clear 80/20 access pattern — hot data cached, cold data stays cheap in S3 • 500M+ vectors — one node's disk can't hold it all Full config walkthrough Image 1: 👇milvus.io/blog/how-to-cu

The media could not be played.