Roteiro do Milvus

🌌 Rumo à base de dados multimodal de próxima geração e ao Vector Lakebase

Roteiro do produto Milvus

Bem-vindo ao Roteiro do Milvus!

Estamos a conduzir o Milvus para uma nova era — a base de dados multimodal de próxima geração — que abrange desde dados estruturados a não estruturados, da recuperação em tempo real à análise offline e do desempenho num único cluster a uma arquitetura global do Vector Lakebase.

Este roteiro descreve os objetivos principais do Milvus v3.0 (beta pública) e do Milvus v3.1 (desenvolvimento a longo prazo), juntamente com o plano de evolução do Zilliz Vector Lakebase.

🌠 Milvus v3.0 (Beta Público)

Versão beta pública: maio de 2026

Foco: Construir um motor de consulta nativo semântico com ordenação, agregação e recuperação multivectorial integradas no próprio motor, bem como a base nativa do «lake» do Zilliz Vector Lakebase, para que a computação aceda aos dados sem necessidade de migração.

🎯 Principais destaques

🔹 Evolução do esquema e dos tipos de dados

  • Suporta ALTER COLLECTION ADD COLUMN e DROP COLUMN em tempo de execução, sem necessidade de reconstruir índices nem interromper o serviço.
  • Fornece duas vias de preenchimento retroativo para novas colunas: externa através do Spark Connector e interna com vetores esparsos BM25 gerados automaticamente no momento da gravação.
  • Introdução do TEXT como um tipo de dados de primeira classe que armazena o texto original juntamente com vetores, com suporte a BM25 e à correspondência de texto.

🔹 Reformulação da execução de consultas

  • Integra a função «Order By» no motor com ordenação por segmento e ordenação por fusão entre os nós de consulta.
  • Adicionar agregação de consultas ao estilo SQL (GROUP BY com COUNT, SUM, AVG, MIN, MAX) calculada no kernel.
  • Introduzir facetas de pesquisa sobre resultados de ANN com estatísticas por bucket e subfacetas aninhadas do lado do servidor.
  • Suporte a dicionários personalizados e tabelas de sinónimos registados no cluster para melhorar a recuperação de CJK e de domínios específicos.

🔹 Suporte a multivetores e interação tardia

  • Introduzir o StructList para representar uma entidade como uma única linha com vários vetores, com suporte nativo à interação tardia (ColBERT, ColPali) através de MAX_SIM.
  • Suporte à pesquisa ao nível do elemento e ao nível da entidade nos campos StructList, com políticas de correspondência configuráveis para resultados ao nível da entidade.
  • Adiciona três estratégias de recuperação multivetorial: TokenANN (exaustiva), Muvera (baseada em projeção, sem treino) e Lemur (compressão aprendida).

🔹 Revisão da recuperação e do índice

  • Reestruturação do índice invertido esparso com compressão em blocos, quantização de pesos e um formato persistente; introdução do SINDI como algoritmo IP esparso predefinido.
  • Expandir a cobertura do índice com toda a família Faiss (SVS, Panorama, PQ, IVFPQ, ScaNN) e MinHash DIDO para deteção de quase-duplicados.
  • Suporte a campos vetoriais nulos para incorporações assíncronas e modalidades em falta, com filtragem automática no momento da pesquisa.

🔹 Arquitetura de armazenamento e computação do Vector Lakebase

  • Introdução da «External Collection» para indexar e consultar dados no S3 / GCS / Azure no local, com suporte para os formatos de tabela Lance, Parquet, Iceberg e Vortex.
  • Adiciona o Vortex, um formato colunar aberto, e o Loon (Storage V3), uma camada de armazenamento de formato misto para leituras pontuais eficientes a partir do armazenamento de objetos.
  • Suporte a instantâneos pontuais com isolamento do tipo MVCC para processamento em lote, enquanto o serviço continua a gravar.
  • Integra-se como um Spark DataSource v2 para ler e escrever diretamente no Milvus em pipelines do Spark / Databricks / EMR.

🪐 Milvus v3.1 (Visão a Longo Prazo)

Cronograma: Final de 2026 e além

Foco: Inteligência de armazenamento, integridade do caminho de gravação, extensibilidade de computação e interoperabilidade alargada com o Vector Lakebase.

🎯 Principais destaques

🔹 Armazenamento e caminho de gravação

  • Adicionar pushdown de predicados com poda de índices de página e filtros Bloom na camada de armazenamento.
  • Implementar a deduplicação por chave primária na ingestão para evitar duplicados no momento da gravação.

🔹 Computação e elasticidade

  • Suporte a Funções Definidas pelo Utilizador (UDFs) para a execução de lógica personalizada no motor, no plano de dados.
  • Habilitar a divisão de fragmentos para redistribuir os fragmentos à medida que os dados crescem, com suporte a chaves de fragmentação personalizadas.

🔹 Expansão do Spark e do Vector Lakebase

  • Expandir o conector Spark com uma biblioteca mais rica de operadores de lote nativos.
  • Adicionar funcionalidades de formato de tabela, incluindo «time-travel», evolução de esquemas e reversão de instantâneos.
  • Expandir a interoperabilidade do Vector Lakebase com índices externos atualizados por CDC, suporte ao Apache Paimon e formatos de dados adicionais.

🤝 Construir em conjunto o futuro do Milvus

O Milvus é um projeto de código aberto impulsionado por uma comunidade global de programadores. Convidamos todos os membros da comunidade a ajudar a moldar a base de dados multimodal da próxima geração:

  • 💬 Partilhe o seu feedback: proponha novas funcionalidades ou ideias de otimização nas Discussões do GitHub.

  • 🐛 Relatar problemas: Registe bugs através do GitHub Issues.

  • 🔧 Contribua com código: envie PRs e ajude a desenvolver funcionalidades essenciais.

    • Pull requests: Contribua diretamente para a nossa base de código. Quer esteja a corrigir erros, a adicionar funcionalidades ou a melhorar a documentação, as suas contribuições são bem-vindas.
    • Guia de desenvolvimento: Consulte o nosso Guia do Colaborador para obter orientações sobre contribuições de código.
  • 🗣️ Participe na conversa: Faça perguntas e conheça os mantenedores no Discord, no Milvus Office Hours ou em todos os canais da comunidade.

  • Divulgue: Partilhe as melhores práticas e histórias de sucesso, e siga o Milvus no X, no LinkedIn e no YouTube.

👉 GitHub: milvus-io/milvus