План развития Milvus
🌌 На пути к мультимодальной базе данных нового поколения и Vector Lakebase
План развития продукта Milvus
Добро пожаловать в раздел «Дорожная карта Milvus»!
Мы вступаем с Milvus в новую эру — эру мультимодальных баз данных нового поколения — охватывающих как структурированные, так и неструктурированные данные, от поиска в реальном времени до офлайн-аналитики, а также от производительности одного кластера до глобальной архитектуры Vector Lakebase.
В этой дорожной карте изложены основные цели для Milvus v3.0 (публичная бета-версия) и Milvus v3.1 (долгосрочная разработка), а также план развития Zilliz Vector Lakebase.
🌠 Milvus v3.0 (открытая бета-версия)
Открытая бета-версия: май 2026 г.
Основная задача: создание механизма запросов с встроенной поддержкой семантики, включающего сортировку, агрегацию и поиск по нескольким векторам, а также основанной на технологии «lake-native» платформы Zilliz Vector Lakebase, позволяющей вычислительным ресурсам обращаться к данным без их миграции.
🎯 Основные особенности
🔹 Развитие схемы и типов данных
- Поддержка команд ALTER COLLECTION ADD COLUMN и DROP COLUMN во время выполнения без перестроения индексов и прерывания обслуживания.
- Предоставление двух путей заполнения данных для новых столбцов: внешнего через Spark Connector и внутреннего с помощью разреженных векторов BM25, автоматически генерируемых при записи.
- Внедрение TEXT в качестве полноценного типа данных, который хранит исходный текст наряду с векторами с поддержкой BM25 и сопоставления текста.
🔹 Переработка механизма выполнения запросов
- Перенос оператора ORDER BY в ядро с сортировкой по сегментам и слиянием результатов между узлами запроса.
- Добавлена агрегация запросов в стиле SQL (GROUP BY с COUNT, SUM, AVG, MIN, MAX), вычисляемая в ядре.
- Внедрить фасеты поиска по результатам ANN со статистикой по каждому сегменту и вложенными подфасетами на стороне сервера.
- Поддержка пользовательских словарей и таблиц синонимов, зарегистрированных на стороне кластера, для улучшения полноты поиска по CJK и в конкретных предметных областях.
🔹 Поддержка мультивекторов и позднего взаимодействия
- Внедрить StructList для представления одной сущности в виде одной строки с множеством векторов, с встроенной поддержкой позднего взаимодействия (ColBERT, ColPali) через MAX_SIM.
- Поддержка поиска на уровне элементов и сущностей по полям StructList с настраиваемыми правилами сопоставления для результатов на уровне сущностей.
- Добавлены три стратегии поиска с использованием нескольких векторов: TokenANN (исчерпывающий), Muvera (на основе проекции, без обучения) и Lemur (обученное сжатие).
🔹 Переработка механизмов поиска и индексирования
- Переработка разреженного инвертированного индекса с блочным сжатием, квантованием весов и формат с сохранением в памяти; внедрение SINDI в качестве алгоритма разреженного инвертированного индекса по умолчанию.
- Расширение охвата индекса за счёт полного семейства Faiss (SVS, Panorama, PQ, IVFPQ, ScaNN) и MinHash DIDO для обнаружения почти-дубликатов.
- Поддержка векторных полей, допускающих нулевые значения, для асинхронных вложений и отсутствующих модальностей с автоматической фильтрацией во время поиска.
🔹 Архитектура хранения и вычислений Vector Lakebase
- Внедрение External Collection для индексирования и запросов данных в S3 / GCS / Azure на месте с поддержкой форматов таблиц Lance, Parquet, Iceberg и Vortex.
- Добавлен Vortex — открытый столбчатый формат — и Loon (Storage V3) — уровень хранения со смешанными форматами для эффективного чтения отдельных элементов из объектного хранилища.
- Поддержка моментальных снимков с изоляцией типа MVCC для пакетной обработки при одновременном продолжении записи данных.
- Интеграция в качестве Spark DataSource v2 для чтения из Milvus и записи в него непосредственно в конвейерах Spark / Databricks / EMR.
🪐 Milvus v3.1 (долгосрочная перспектива)
Сроки: конец 2026 года и далее
Приоритеты: интеллектуальное хранение данных, целостность пути записи, расширяемость вычислительных ресурсов и расширенная совместимость с Vector Lakebase.
🎯 Основные особенности
🔹 Хранилище и путь записи
- Добавление переноса предикатов с обрезкой по индексу страниц и фильтру Блума на уровне хранилища.
- Реализация дедупликации по первичному ключу при поступлении данных для предотвращения дубликатов при записи.
🔹 Вычисления и эластичность
- Поддержка пользовательских функций (UDF) для выполнения настраиваемой логики в движке на уровне обработки данных.
- Включить разделение шардов для повторного разделения шардов по мере роста объема данных с поддержкой пользовательских ключей шардирования.
🔹 Расширение Spark и Vector Lakebase
- Расширить коннектор Spark за счет более обширной библиотеки нативных пакетных операторов.
- Добавление возможностей работы с таблицами, включая перемещение во времени, эволюцию схемы и откат моментальных снимков.
- Расширение возможностей взаимодействия Vector Lakebase за счет внешних индексов с оперативными данными (CDC), поддержки Apache Paimon и дополнительных форматов данных.
🤝 Совместное создание будущего Milvus
Milvus — это проект с открытым исходным кодом, развиваемый глобальным сообществом разработчиков. Мы приглашаем всех членов сообщества помочь в создании мультимодальной базы данных нового поколения:
💬 Делитесь отзывами: предлагайте новые функции или идеи по оптимизации в разделах обсуждений на GitHub.
🐛 Сообщайте о проблемах: регистрируйте ошибки через GitHub Issues.
🔧 Вносите свой вклад в код: отправляйте PR и помогайте разрабатывать основные функции.
- Пулл-реквесты: вносите вклад непосредственно в наш исходный код. Независимо от того, исправляете ли вы ошибки, добавляете функции или улучшаете документацию, ваши вклады приветствуются.
- Руководство по разработке: ознакомьтесь с нашим «Руководством для участников», чтобы узнать о правилах внесения изменений в код.
🗣️ Присоединяйтесь к обсуждению: задавайте вопросы и общайтесь с разработчиками в Discord, на «Приёмах Milvus» или на всех каналах сообщества.
⭐ Распространяйте информацию: делитесь передовым опытом и историями успеха, а также подписывайтесь на Milvus в X, LinkedIn и YouTube.
👉 GitHub: milvus-io/milvus