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