Notas de la versión
Descubra las novedades de Milvus. Esta página resume las nuevas características, mejoras, problemas conocidos y correcciones de errores de cada versión. Puede encontrar las notas de la versión para cada versión publicada después de la v2.4.0 en esta sección. Le sugerimos que visite regularmente esta página para conocer las actualizaciones.
v2.4.9
Fecha de lanzamiento: 20 de agosto de 2024
Versión de Milvus | Versión del SDK de Python | Versión del SDK de Java | Versión del SDK de Node.js |
---|---|---|---|
2.4.9 | 2.4.5 | 2.4.3 | 2.4.4 |
Milvus v2.4.9 soluciona un problema crítico que podía devolver resultados inferiores al límite (topk) en algunos casos e incluye varias mejoras clave para aumentar el rendimiento y la usabilidad de la plataforma.
Correcciones críticas
- Excluido el segmento l0 de la instantánea legible(#35510).
Mejoras
- Eliminada la creación duplicada de ayudantes de esquema en el proxy(#35502).
- Añadido soporte para compilar Milvus en Ubuntu 20.04(#35457).
- Optimizado el uso de bloqueos y evitado la doble descarga del escritor de búferes de clustering(#35490).
- Eliminado el registro inválido(#35473).
- Añadida una guía de usuario de compactación de clustering(#35428).
- Añadido soporte para campos dinámicos en el schema helper(#35469).
- Añadida la sección msgchannel en el YAML generado(#35466).
v2.4.8
Fecha de publicación: 14 de agosto de 2024
Versión Milvus | Versión del SDK de Python | Versión del SDK de Java | Versión del SDK de Node.js |
---|---|---|---|
2.4.8 | 2.4.5 | 2.4.3 | 2.4.4 |
Milvus 2.4.8 introdujo varias mejoras significativas en el rendimiento y la estabilidad del sistema. La característica más notable fue la implementación de la compactación por agrupación, un mecanismo que mejora la eficiencia de las búsquedas y consultas mediante la redistribución de los datos en grandes colecciones en función de una clave de agrupación designada, lo que reduce la cantidad de datos escaneados. La compactación también se desacopló del DataNode shard, permitiendo que cualquier DataNode realizara la compactación de forma independiente, lo que mejoró la tolerancia a fallos, la estabilidad, el rendimiento y la escalabilidad. Además, se ha refactorizado la interfaz entre los componentes Go y C++ para utilizar llamadas CGO asíncronas, lo que ha permitido resolver problemas como los tiempos de espera de sesión, y se han realizado otras optimizaciones de rendimiento basadas en la creación de perfiles. También se han actualizado las dependencias de la aplicación para solucionar vulnerabilidades de seguridad conocidas. Además, esta versión incluye numerosas optimizaciones de rendimiento y correcciones de errores críticos.
Características
- Se ha implementado la compactación de agrupaciones, que permite redistribuir los datos en función de una clave de agrupación designada para mejorar la eficacia de las consultas(#34326),(#34363).
Mejoras
- Implementación de capacidades de búsqueda y recuperación asíncronas en CGO.(#34200)
- Separación del proceso de compactación del Shard DataNode para mejorar la modularidad del sistema.(#34157)
- Añadido soporte para la agrupación de clientes en QueryNode dentro del proxy/delegador para mejorar el rendimiento.(#35195)
- Sonic integrado para minimizar la sobrecarga de la CPU durante JSON marshaling y unmarshaling en Gin y RestfulV1 manejadores.(#35018)
- Se ha introducido una caché en memoria para optimizar la recuperación de resultados de autenticación.(#35272)
- Modificado el tipo de métrica por defecto para autoindex.[#34277, #34479]
- Se ha refactorizado el formato de memoria en tiempo de ejecución para las columnas variables, lo que ha permitido reducir el uso de memoria.[#34367, #35012, #35041]
- Refactorizados los procesos de compactación para permitir el almacenamiento persistente de datos.(#34268)
- Habilitado el soporte de archivos mapeados en memoria para segmentos crecientes, mejorando la gestión de memoria.(#34110)
- Mejorados los registros de acceso añadiendo soporte RESTful API, registrando niveles de consistencia y distinguiendo entre errores de sistema y de usuario.[#34295, #34352, #34396]
- Utilizado el nuevo parámetro
range_search_k
en Knowhere para acelerar las búsquedas de rango.(#34709) - Aplicados filtros Bloom bloqueados para mejorar la velocidad de construcción de filtros y consultas.[#34377, #34922]
- Mejoras en el Uso de Memoria:
- Espacio preasignado para los buffers de inserción de DataNode.(#34205)
- Espacio preasignado
FieldData
para operaciones de reducción.(#34254) - Registros liberados en el códec de borrado para evitar fugas de memoria.(#34506)
- Controlado el nivel de concurrencia del gestor de archivos de disco durante la carga de archivos.(#35282)
- Optimizada la lógica de recolección de basura en tiempo de ejecución de Go para la liberación oportuna de memoria.(#34950)
- Implementada una nueva política de sellado para segmentos crecientes.(#34779)
- Mejoras en DataCoord:
- Reducción del uso de CPU.[#34231, #34309]
- Implementada una lógica de salida de la recolección de basura más rápida.(#35051)
- Mejorados los algoritmos de programación de nodos trabajadores.(#34382)
- Mejorado el algoritmo de control de tamaño de segmento específicamente para operaciones de importación.(#35149)
- Mejoras en el algoritmo de equilibrio de carga:
- Reducido el factor de sobrecarga de memoria en el delegador.(#35164)
- Asignado un tamaño de memoria fijo para el delegador.(#34600)
- Evitada la asignación excesiva de segmentos y canales para nuevos nodos de consulta.(#34245)
- Reducido el número de tareas por ciclo de programación por parte del Coordinador de Consultas mientras se incrementa la frecuencia de programación.(#34987)
- Mejorado el algoritmo de equilibrio de canales en el DataNode.(#35033)
- Métricas del sistema ampliadas: Se han añadido nuevas métricas en varios componentes para supervisar aspectos específicos, como:
Cambios en
Para los usuarios de código abierto, esta versión cambia los tipos de métrica en AutoIndex para
FloatVector
yBinaryVector
aCosine
yHamming
, respectivamente.Versiones corregidas de dependencias de terceros:
- Esta versión introduce versiones fijas para ciertas bibliotecas de dependencias de terceros, mejorando significativamente la gestión de la cadena de suministro de software de Milvus.
- Al aislar el proyecto de los cambios aguas arriba, protege las compilaciones diarias de posibles interrupciones.
- La actualización garantiza la estabilidad alojando exclusivamente paquetes validados de C++ de terceros en JFrog Cloud y utilizando Conan Recipe Revisions (RREV).
- Este enfoque mitiga el riesgo de romper los cambios de las actualizaciones en ConanCenter.
- Los desarrolladores que utilicen Ubuntu 22.04 se beneficiarán inmediatamente de estos cambios. Sin embargo, es posible que los desarrolladores de otros sistemas operativos deban actualizar su versión de
glibc
para evitar problemas de compatibilidad.
Corrección de errores críticos
- Se ha corregido un problema por el que se perdían datos de borrado debido a que se omitían segmentos durante la compactación L0.[#33980, #34363]
- Rectificado un problema por el que los mensajes de borrado no se reenviaban debido a un manejo incorrecto del ámbito de los datos.(#35313)
- Resuelta una excepción SIGBUS que se producía debido al uso incorrecto de
mmap
.[#34455, #34530] - Corregidos fallos causados por expresiones de búsqueda ilegales.(#35307)
- Corregido un problema en el que la vigilancia de DataNode fallaba debido a un ajuste incorrecto del tiempo de espera en el contexto de vigilancia.(#35017)
Corrección de errores
- Se han corregido vulnerabilidades de seguridad mediante la actualización de ciertas dependencias.[#33927, #34693]
- Corregido un error de análisis provocado por expresiones excesivamente largas.(#34957)
- Resuelta una fuga de memoria que se producía durante el análisis del plan de consultas.(#34932)
- Solucionado un problema por el que las modificaciones dinámicas del nivel de registro no surtían efecto.(#34777)
- Se ha resuelto un problema por el que las consultas de agrupar por sobre datos crecientes fallaban debido a desplazamientos de segmento no inicializados.(#34750)
- Se ha corregido la configuración de los parámetros de búsqueda al utilizar el iterador Knowhere.(#34732)
- Revisada la lógica para comprobar el estado de la carga de particiones.(#34305)
- Se corrigió un problema donde las actualizaciones de caché de privilegios fallaban debido a errores de solicitud no manejados.(#34697)
- Resuelto un fallo en la recuperación de la colección cargada tras el reinicio de QueryCoord.(#35211)
- Solucionado un problema de idempotencia de carga eliminando la validación innecesaria de parámetros de índice.(#35179)
- Asegurado
compressBinlog
se ejecuta para permitirreloadFromKV
para llenar correctamentelogID
de binlog después de DataCoord reinicia.(#34062) - Se ha corregido un problema por el que los metadatos de recogida no se eliminaban después de la recogida de basura en DataCoord.(#34884)
- Se ha resuelto una fuga de memoria en SegmentManager dentro de DataCoord mediante la eliminación de segmentos lavados generados a través de importaciones.(#34651)
- Se ha solucionado un problema de pánico cuando se desactivaba la compactación y se eliminaba una colección.(#34206)
- Se ha corregido un problema de falta de memoria en DataNode mejorando el algoritmo de estimación del uso de memoria.(#34203)
- Se ha evitado el uso de memoria en ráfagas cuando varias solicitudes de recuperación de vectores fallan en la caché mediante la implementación de singleflight para la caché de trozos.(#34283)
- Capturado
ErrKeyNotFound
durante las operaciones CAS (Compare and Swap) en la configuración.(#34489) - Se ha solucionado un problema por el que fallaban las actualizaciones de la configuración debido al uso erróneo del valor formateado en una operación CAS.(#34373)
Varios
- Añadido soporte para el exportador OTLP HTTP, mejorando las capacidades de observación y monitorización.[#35073, #35299]
- Mejorada la funcionalidad de la base de datos introduciendo propiedades como "max collections" y "disk quota", que ahora pueden ser modificadas dinámicamente.[#34511, #34386]
- Añadidas capacidades de rastreo para procesos de compactación L0 dentro de DataNode para mejorar el diagnóstico y la monitorización.(#33898)
- Introducida configuración de cuota para el número de entradas de segmento L0 por colección, permitiendo un mejor control sobre las tasas de borrado mediante la aplicación de backpressure.(#34837)
- Se ha ampliado el mecanismo de limitación de velocidad de las operaciones de inserción para cubrir también las operaciones de inserción ascendente, lo que garantiza un rendimiento constante con cargas elevadas.(#34616)
- Implementado un pool dinámico de CGO para llamadas proxy CGO, optimizando el uso de recursos y el rendimiento.(#34842)
- Habilitada la opción de compilación DiskAnn para los sistemas operativos Ubuntu, Rocky y Amazon, mejorando la compatibilidad y el rendimiento en estas plataformas.(#34244)
- Actualizado Conan a la versión 1.64.1, asegurando la compatibilidad con las últimas características y mejoras.(#35216)
- Actualización de Knowhere a la versión 2.3.7, con mejoras de rendimiento y nuevas funciones.(#34709)
- Corregida la revisión de paquetes específicos de terceros para asegurar construcciones consistentes y reducir el riesgo de cambios inesperados.(#35316)
v2.4.6
Fecha de lanzamiento: 16 de julio de 2024
Versión de Milvus | Versión del SDK de Python | Versión del SDK de Java | Versión del SDK de Node.js |
---|---|---|---|
2.4.6 | 2.4.4 | 2.4.2 | 2.4.4 |
Milvus v2.4.6 es una versión de corrección de errores que soluciona problemas críticos como pánicos, fugas de memoria y pérdida de datos durante los borrados. También introduce varias optimizaciones, incluidas mejoras en las métricas de supervisión, la actualización de la versión Go a 1.21 y la mejora de la experiencia de usuario para las consultas RESTful count(*).
Mejoras
- Mejora de la facilidad de uso de las consultas RESTful API(#34444).
- Actualizada la versión Go de 1.20 a 1.21(#33940).
- Optimizado el cubo métrico histograma para granularidad más fina en bucketing(#34592).
- Actualizada la versión de dependencia de Pulsar de 2.8.2 a 2.9.5. Se recomienda actualizar Pulsar a 2.9.5 desde Milvus 2.4.6.
Corrección de errores
- Se ha corregido un problema por el que la API GetReplicas devolvía un estado nulo(#34019).
- Se ha corregido un problema por el que las consultas podían devolver registros eliminados(#34502).
- Se ha resuelto un problema por el que IndexNode se bloqueaba durante la detención debido a un control incorrecto del tiempo de vida(#34559).
- Corregida una fuga de memoria de objetos oráculo de clave primaria cuando un trabajador está desconectado(#34020).
- Corregido ChannelManagerImplV2 para notificar al Nodo correcto, solucionando problemas de captura de parámetros en el cierre de bucle(#34004).
- Se ha corregido una carrera de lectura-escritura de datos en ImportTask segmentsInfo implementando una copia profunda(#34126).
- Corregida la información de versión para la opción de configuración "legacyVersionWithoutRPCWatch" para evitar errores durante las actualizaciones continuas(#34185).
- Corregida la métrica para el número de particiones cargadas(#34195).
- Se ha pasado la configuración de
otlpSecure
al configurar el seguimiento de segcore(#34210). - Solucionado un problema por el que las propiedades de DataCoord se sobrescribían por error(#34240).
- Resuelto un problema de pérdida de datos causado por la fusión errónea de dos flujos de mensajes recién creados(#34563).
- Corregido un pánico causado por msgstream intentando consumir un pchannel inválido(#34230).
- Se ha solucionado un problema por el que las importaciones podían generar archivos huérfanos(nº 34071).
- Se han corregido los resultados de consulta incompletos debidos a claves primarias duplicadas en un segmento(#34302).
- Resuelto un problema de segmentos sellados faltantes en la compactación L0(#34566).
- Corregido el problema de datos sucios en el canal-cp meta generado después de la recolección de basura(#34609).
- Corregida la métrica donde database_num era 0 después de reiniciar RootCoord(#34010).
- Corregida una fuga de memoria en SegmentManager en DataCoord mediante la eliminación de segmentos flushed generados a través de la importación(#34652).
- Asegurado compressBinlog para llenar binlogs' logID después de DataCoord reinicia, asegurando la correcta recarga de KV(#34064).
v2.4.5
Fecha de lanzamiento: 18 de junio de 2024
Versión de Milvus | Versión del SDK de Python | Versión Java SDK | Versión del SDK de Node.js |
---|---|---|---|
2.4.5 | 2.4.4 | 2.4.1 | 2.4.3 |
El lanzamiento de Milvus 2.4.5 introduce varias mejoras y correcciones de errores para mejorar el rendimiento, la estabilidad y la funcionalidad. Milvus 2.4.5 simplifica la búsqueda de vectores dispersos, float16 y bfloat16 con autoindexación, acelera las búsquedas, eliminaciones y compactaciones con las optimizaciones del filtro Bloom y aborda la gestión de datos mediante tiempos de carga más rápidos y compatibilidad con la importación de segmentos L0. También introduce el índice HNSW disperso para la búsqueda eficiente de datos dispersos de alta dimensión, mejora la API RESTful con soporte de vectores flotantes dispersos y corrige errores críticos para mejorar la estabilidad.
Novedades
- Se ha añadido compatibilidad con rbac a la API de descripción/alteración de bases de datos(nº 33804).
- Soporte de la creación del índice HNSW para vectores dispersos(#33653, #33662)
- Posibilidad de crear el índice de disco para vectores binarios(#33575)
- Soporte de vectores dispersos en RESTful v2(#33555)
- Añadir /management/stop RESTful api para detener un componente(#33799)
Mejoras
- Fijar el valor por defecto de maxPartitionNum en 1024(#33950)
- Habilitado el restablecimiento forzado de la conexión en caso de error de indisponibilidad(#33910)
- Habilitado limitador de tasa de descarga de nivel de colección(#33864)
- Ejecutado bloom filter aplicar en paralelo para acelerar segmento predecir(#33793)
- Utilizado fastjson lib para unmarshal borrar registro para acelerar json.Unmarshal(#33802)
- Utilización de BatchPkExist para reducir el coste de la llamada a la función bloom filter(#33752)
- Acelerada la carga de colecciones pequeñas(#33746)
- Soportada la importación de datos de borrado al segmento L0 (#33712)
- Se han omitido las tareas de compactación de marcas para evitar que se ejecute la misma tarea una y otra vez(#33833)
- Los vectores float16 y bfloat16 se tratan como BinaryVector en la inserción masiva de numpy (#33788)
- Añadido el indicador includeCurrentMsg para el método seek(#33743)
- Añadido mergeInterval, targetBufSize, maxTolerantLagof msgdispatcher a las configuraciones(#33680)
- Mejorado GetVectorByID de vector disperso(#33652)
- Se ha eliminado StringPrimarykey para reducir el coste innecesario de las copias y las llamadas a funciones (#33649)
- Añadida la asignación de autoíndices para tipos de datos binarios/esparcidos(#33625)
- Optimizado algunos caché para reducir el uso de memoria(#33560)
- Interfaz de ejecución abstraída para la tarea de importación/preimportación (#33607)
- Utilizado mapa pk a timestamp en inserción de búfer para reducir causas bf(#33582)
- Evitar meta operaciones redundantes de importación (#33519)
- Mejora de los registros mediante el registro de mejor información de cuota de disco, añadiendo la bandera UseDefaultConsistency, eliminando registros innecesarios(#33597, #33644, #33670)
Corrección de errores
- Corregido un error que impedía a queryHook reconocer el tipo de vector(#33911)
- Impedido el uso capturado iteración variable partitionID(#33970)
- Se ha corregido un error que podía provocar que Milvus no pudiera crear AutoIndex en vectores binarios y dispersos(#33867)
- Se ha corregido un error que podía provocar que indexnode volviera a intentar crear el índice en parámetros de índice no válidos de todos los vectores(#33878)
- Corregido el error que cuando las cargas y liberaciones ocurren concurrentemente puede bloquear el Servidor(#33699)
- Mejorada la consistencia de la caché para los valores de configuración(#33797)
- Se ha evitado la posible pérdida de datos durante la eliminación(#33821)
- Se ha garantizado que el campo DroppedAt (fecha y hora probable de eliminación) se establezca tras la eliminación de colecciones(#33767)
- Se ha solucionado un problema que podía hacer que Milvus manejara incorrectamente los tamaños de datos de vectores binarios(#33751)
- Se ha evitado que las credenciales sensibles de Kafka se registren en texto sin formato(#33694, #33747)
- Se ha garantizado que Milvus pueda importar correctamente datos con múltiples campos vectoriales.(#33724)
- Se ha mejorado la fiabilidad de la importación comprobando si existe un trabajo de importación antes de comenzar.(#33673)
- Mejorado el manejo del índice HNSW disperso (funcionalidad interna)(#33714)
- Se ha limpiado la memoria vectorial para evitar fugas de memoria(#33708)
- Asegurado un calentamiento asíncrono más suave arreglando un problema de bloqueo de estado.(#33687)
- Se ha corregido un error que podía provocar la pérdida de resultados en los iteradores de consulta.(#33506)
- Se ha corregido un error que podía provocar que el tamaño del segmento de importación fuera desigual. (#33634)
- Se ha corregido la gestión incorrecta del tamaño de los datos para los tipos bf16, fp16 y vector binario(#33488)
- Se ha mejorado la estabilidad solucionando posibles problemas con el compactador L0(#33564)
- Se ha garantizado que las actualizaciones de configuración dinámica se reflejen correctamente en la caché.(#33590)
- Se ha mejorado la precisión de la métrica RootCoordQuotaStates (#33601)
- Garantizada la información precisa del número de entidades cargadas en la métrica(#33522)
- Se ha proporcionado información más completa en los registros de excepciones. (#33396)
- Optimizada la canalización de consultas eliminando el comprobador de grupos innecesario(#33485)
- Utilización de la ruta de almacenamiento local para una comprobación más precisa de la capacidad de disco en el nodo de índice.(#33505)
- Se ha corregido la posibilidad de que hasMoreResult devuelva false cuando el número de aciertos supera el límite(#33642)
- Retraso en la carga de bf en el delegador para evitar que los bfs se carguen una y otra vez cuando el trabajador no tiene más memoria(#33650)- Corregido un error por el que queryHook no podía reconocer el tipo de vector(#33911)
- Impedido el uso capturado iteración variable partitionID(#33970)
- Corregido un error que puede provocar que Milvus sea incapaz de crear AutoIndex en vectores binarios y dispersos(#33867)
- Se ha corregido un error que podía provocar que indexnode volviera a intentar crear el índice en parámetros de índice no válidos de todos los vectores(#33878)
- Corregido el error que cuando las cargas y liberaciones ocurren concurrentemente puede bloquear el Servidor(#33699)
- Mejorada la consistencia de la caché para los valores de configuración(#33797)
- Se ha evitado la posible pérdida de datos durante la eliminación(#33821)
- Se ha garantizado que el campo DroppedAt (fecha y hora probable de eliminación) se establezca tras la eliminación de colecciones(#33767)
- Se ha solucionado un problema que podía hacer que Milvus manejara incorrectamente los tamaños de datos de vectores binarios(#33751)
- Se ha evitado que las credenciales sensibles de Kafka se registren en texto sin formato(#33694, #33747)
- Se ha garantizado que Milvus pueda importar correctamente datos con múltiples campos vectoriales.(#33724)
- Se ha mejorado la fiabilidad de la importación comprobando si existe un trabajo de importación antes de comenzar.(#33673)
- Mejorado el manejo del índice HNSW disperso (funcionalidad interna)(#33714)
- Se ha limpiado la memoria vectorial para evitar fugas de memoria(#33708)
- Asegurado un calentamiento asíncrono más suave arreglando un problema de bloqueo de estado.(#33687)
- Se ha corregido un error que podía provocar la pérdida de resultados en los iteradores de consulta.(#33506)
- Se ha corregido un error que podía provocar que el tamaño del segmento de importación fuera desigual. (#33634)
- Se ha corregido la gestión incorrecta del tamaño de los datos para los tipos bf16, fp16 y vector binario(#33488)
- Se ha mejorado la estabilidad solucionando posibles problemas con el compactador L0(#33564)
- Se ha garantizado que las actualizaciones de configuración dinámica se reflejen correctamente en la caché.(#33590)
- Se ha mejorado la precisión de la métrica RootCoordQuotaStates (#33601)
- Garantizada la información precisa del número de entidades cargadas en la métrica(#33522)
- Se ha proporcionado información más completa en los registros de excepciones. (#33396)
- Optimizada la canalización de consultas eliminando el comprobador de grupos innecesario(#33485)
- Utilización de la ruta de almacenamiento local para una comprobación más precisa de la capacidad de disco en el nodo de índice.(#33505)
- Se ha corregido la posibilidad de que hasMoreResult devuelva false cuando el número de aciertos supera el límite(#33642)
- Retraso en la carga de bfs en el delegador para evitar que los bfs se carguen una y otra vez cuando el trabajador no tiene más memoria(#33650)
v2.4.4
Fecha de lanzamiento: 31 de mayo de 2024
Versión de Milvus | Versión del SDK de Python | Versión del SDK de Java | Versión del SDK de Node.js |
---|---|---|---|
2.4.4 | 2.4.3 | 2.4.1 | 2.4.2 |
Milvus v2.4.4 incluye varias correcciones de errores críticos y mejoras destinadas a aumentar el rendimiento y la estabilidad. En particular, hemos resuelto un problema crítico por el que los registros de estadísticas de inserción masiva se recopilaban incorrectamente, lo que podía afectar a la integridad de los datos. Recomendamos encarecidamente a todos los usuarios de la versión 2.4 que actualicen a esta versión para beneficiarse de estas correcciones.
Si utiliza la inserción masiva, actualice a la versión 2.4.4 lo antes posible para garantizar la integridad de los datos.
Corrección de errores críticos
- Se ha rellenado el ID del registro de estadísticas y se ha validado su exactitud(#33478)
Mejoras
- Conjunto de bits actualizado para ARM SVE(#33440)
- Habilitada la compilación Milvus con GCC-13(#33441)
Corrección de errores
- Visualización de colecciones vacías cuando se conceden todos los privilegios(#33454)
- Asegurado CMake descargas e instalaciones para la plataforma actual, no sólo x86_64(#33439)
v2.4.3
Fecha de lanzamiento: 29 de mayo de 2024
Versión Milvus | Versión del SDK de Python | Versión del SDK de Java | Versión del SDK de Node.js |
---|---|---|---|
2.4.3 | 2.4.3 | 2.4.1 | 2.4.2 |
La versión 2.4.3 de Milvus introdujo una serie de funciones, mejoras y correcciones de errores para aumentar el rendimiento y la fiabilidad. Entre las mejoras más destacadas se encuentran la compatibilidad con la inserción masiva de vectores flotantes dispersos y la aceleración optimizada del filtro bloom. Las mejoras abarcaron diversas áreas, desde las actualizaciones dinámicas de la configuración hasta la optimización del uso de la memoria. Las correcciones de errores abordaron problemas críticos como situaciones de pánico y garantizaron un funcionamiento más fluido del sistema. Esta versión subraya el compromiso constante de Milvus de mejorar la funcionalidad, optimizar el rendimiento y ofrecer una experiencia de usuario sólida.
Características
- Soporte de inserción masiva de vectores flotantes dispersos para binlog/json/parquet(#32649)
Mejoras
- Implementación del canal de vigilancia Datacoord/node basado en RPC(#32036)
- Optimizado el filtro bloom para acelerar el filtrado de borrado(#32642, #33329, #33284)
- Carga de datos sin procesar a través de mmap si el índice escalar no tiene datos sin procesar(#33317)
- Sincronización de la configuración de milvus con milvus.yaml(#33322, #32920, #32857, #32946)
- Actualizada la versión de knowhere(#33310, #32931, #33043)
- Habilitada la actualización dinámica de la política del equilibrador en QueryCoord(#33272)
- Utilizado un registrador pre-construido en el búfer de escritura para minimizar la asignación del registrador(#33304)
- Mejorada la comprobación de parámetros(#32777, #33271, #33218)
- Añadido un parámetro para ignorar IDs de mensajes incorrectos en el punto de control(#33249)
- Añadida configuración para controlar la gestión de fallos de inicialización para plugins(#32680)
- Se agregó una configuración de consistencia de cómputo de puntaje para knowhere(#32997)
- Introducida una opción de configuración para controlar la inicialización de los permisos de roles públicos(#33174)
- Optimizado el uso de memoria al leer campos(#33196)
- Implementación refinada de Channel Manager v2(#33172, #33121, #33014)
- Añadida la función de seguimiento del tamaño de los datos en memoria para binlog(#33025)
- Añadidas métricas para el tamaño de los archivos de índice de segmentos(#32979, #33305)
- Sustitución de Delete por DeletePartialMatch para eliminar las métricas(#33029)
- Obtención del tamaño de los datos relacionados según el tipo de segmento(#33017)
- Limpiada la información del nodo del canal en el metaalmacén(#32988)
- Eliminado rootcoord de datanode broker(#32818)
- Habilitada la carga por lotes(#32788)
- Cambiado el número de partición por defecto a 16 cuando se utiliza la clave de partición(#32950)
- Mejora del rendimiento de reducción en consultas top-k muy grandes(#32871)
- Utilizada la capacidad de TestLocations para acelerar la escritura y la compactación(#32948)
- Optimización del conjunto de analizadores de planes para evitar el reciclaje innecesario(#32869)
- Mejora de la velocidad de carga(#32898)
- Utilización del nivel de coherencia predeterminado de recogida para restv2(#32956)
- Añadida respuesta de costes para la API rest(#32620)
- Habilitada la política de equilibrio exclusivo de canales(#32911)
- API describedatabase expuesta en proxy(#32732)
- Utilización del mapeo coll2replica al obtener RG por colección(#32892)
- Añadido más rastreo para búsqueda y consulta(#32734)
- Soporte de configuración dinámica para el rastreo de opentelemetría(#32169)
- Se ha evitado la iteración sobre los resultados de canal al actualizar la vista de líder(#32887)
- Optimizada la gestión de las compensaciones vectoriales para parquet(#32822)
- Mejorado el filtrado de segmentos de datacoord con la recopilación(#32831)
- Ajustado el nivel de registro y la frecuencia(#33042, #32838, #33337)
- Posibilidad de detener el equilibrio después de suspenderlo(#32812)
- Actualizada la caché del líder del shard cuando cambia la ubicación del líder(#32470)
- Eliminados API y campos obsoletos(#32808, #32704)
- Añadido metautil.channel para convertir cadena comparar a int(#32749)
- Añadida información de tipo para el mensaje de error del escritor de carga útil y el registro cuando querynode encuentra una nueva colección(#32522)
- Comprobación del número de partición al crear una colección con clave de partición(#32670)
- Se ha eliminado el segmento l0 heredado si falla la vigilancia(#32725)
- Mejorada la impresión del tipo de solicitud(#33319)
- Comprobación de que los datos de campo de matriz eran nulos antes de obtener el tipo(nº 33311)
- Devolución de error cuando fallaba la operación de inicio de nodo Delete/AddNode(#33258)
- Permitir la actualización del ID de servidor de datanode(#31597)
- Limpieza unificada de métricas querynode en la versión de colección(#32805)
- Corregida la versión incorrecta de la configuración del índice automático escalar(#32795)
- Refinada la comprobación de parámetros de índice para crear/alterar índice(#32712)
- Eliminada la recuperación de réplicas redundantes(#32985)
- Habilitada la meta tabla de canales para escribir más de 200k segmentos(#33300)
Corrección de errores
- Corregido pánico cuando la base de datos no existía en el interceptor de límite de tasa(#33308)
- Corregido fallo en la recogida de métricas quotacenter debido a parámetros incorrectos(#33399)
- Corregido pánico si processactivestandby devolvía un error(#33372)
- Corregido truncamiento de resultados de búsqueda en restful v2 cuando nq > 1(#33363)
- Añadido campo de nombre de base de datos para operaciones de rol en restful v2(#33291)
- Arreglado el límite de velocidad global que no funcionaba(#33336)
- Arreglado pánico causado por fallo de construcción de índice(#33314)
- Añadida validación para vector disperso en segcore para asegurar legalidad(#33312)
- Eliminada tarea de syncmgr después de la finalización de la tarea(#33303)
- Corregido fallo de filtrado de clave de partición durante la importación de datos(#33277)
- Corregida la imposibilidad de generar traceID al utilizar el exportador noop(#33208)
- Mejorada la recuperación de resultados de consultas(#33179)
- Se ha eliminado el punto de control de canal marcado para evitar la fuga de métricas de retraso de punto de control(#33201)
- Corregido el atasco del nodo de consulta durante la detención del progreso(#33154)
- Corrección de la falta de segmentos en la respuesta de descarga(#33061)
- Operación de envío idempotente(#33053)
- Asignación de un nuevo segmento para cada lote en el lector de flujo(#33360)
- Eliminado el nodo fuera de línea del grupo de recursos después de reiniciar QueryCoord(#33233)
- Eliminado compactador l0 en completedCompactor(#33216)
- Restablecido el valor de cuota al inicializar el limitador(#33152)
- Solucionado problema por el que se superaba el límite de etcd(#33041)
- Resuelta la superación del límite de transacciones etcd debido a demasiados campos(#33040)
- Eliminada la reentrada de RLock en GetNumRowsOfPartition(#33045)
- Iniciado LeaderCacheObserver antes de SyncAll(#33035)
- Activado el equilibrio del canal de espera liberado(#32986)
- Inicializado el registrador de acceso antes de la inicialización del servidor(#32976)
- Compactador capaz de borrar segmentos vacíos(#32821)
- Completado el número de entrada deltalog y el rango de tiempo en las compactaciones l0(#33004)
- Corregido el fallo del proxy debido a una carrera de datos en la caché del líder de fragmentos(#32971)
- Corregida unidad de tiempo para métrica de índice de carga(#32935)
- Se ha solucionado el problema por el que no se podía liberar correctamente un segmento en un nodo de consulta detenido(nº 32929).
- Corregida la estimación de recursos de índice(#32842)
- Fijar punto de control de canal en posición delta(#32878)
- Syncmgr bloquea la clave antes de devolver el futuro(#32865)
- Asegurarse de que el índice invertido tenga sólo un segmento(#32858)
- Corregido el disparo de compactación eligiendo dos segmentos idénticos(#32800)
- Solucionado el problema por el que no se podía especificar el nombre de la partición en la importación de binlog(#32730, #33027)
- Columna dinámica opcional en la importación de parquet(#32738)
- Omisión de la comprobación del ID automático al insertar datos(nº 32775)
- Validación del número de filas para insertar datos de campo con el esquema(#32770)
- Añadido Wrapper y Keepalive para CTraceContext IDs(#32746)
- Solucionado el problema por el que no se encontraba el nombre de la base de datos en el metaobjeto datacoord(nº 33412)
- Sincronizado el segmento abandonado para la partición abandonada(#33332)
- Corregido fallo en la recogida de métricas de quotaCenter debido a parámetros incorrectos(#33399)
v2.4.1
Fecha de lanzamiento: 6 de mayo de 2024
Versión de Milvus | Versión del SDK de Python | Versión del SDK de Java | Versión del SDK de Node.js |
---|---|---|---|
2.4.1 | 2.4.1 | 2.4.0 | 2.4.2 |
La versión 2.4.1 de Milvus aporta numerosas mejoras y correcciones de errores que pretenden aumentar el rendimiento, la observabilidad y la estabilidad del software. Estas mejoras incluyen una API declarativa de grupos de recursos, una funcionalidad de inserción masiva mejorada que admite los tipos de datos vectoriales Float16/BFloat16, un mecanismo refinado de recogida de basura (GC) que reduce las operaciones de lista para el almacenamiento de objetos y otros cambios relacionados con la optimización del rendimiento. Además, se han corregido errores de compilación, coincidencias difusas fallidas en caracteres de nueva línea, tipos de datos de parámetros incorrectos para interfaces RESTful y errores de BulkInsert en archivos numpy cuando los campos dinámicos están activados.
Cambios de última hora
- Discontinuado el soporte para eliminar con una expresión de filtro vacía.(#32472)
Características
- Añadido soporte para los tipos de datos vectoriales Float16/BFloat16 en la inserción masiva(#32157)
- Mejora del vector flotante disperso para admitir la búsqueda de iteradores por fuerza bruta y la búsqueda de rangos(#32635)
Mejoras
- Añadida la api declarativa de grupo de recursos(#31930, #32297, #32536, #32666)
- Reescrito el observador de colección en QueryCoord para que sea impulsado por tareas(#32441)
- Refactorizado la estructura de datos utilizada en el SyncManager de DataNode para reducir el uso de memoria y evitar errores(#32673)
- Revisada la implementación de la recolección de basura para minimizar las operaciones de lista asociadas con el almacenamiento de objetos(#31740)
- Reducción del uso de cpu cuando el número de colecciones es alto(#32245)
- Mejora de la gestión de milvus.yaml mediante la generación automática de elementos de configuración relevantes en el archivo milvus.yaml a través de código(#31832, #32357)
- Mejorado el rendimiento de la consulta mediante la recuperación de los datos después de realizar la reducción local(#32346)
- Añadida la opción WithBlock para la creación de clientes etcd(#32641)
- Utilizado client_request_id especificado por el cliente como el TraceID si el cliente lo proporciona(#32264)
- Añadida la etiqueta db a las métricas para las operaciones de borrado e inserción masiva(#32611)
- Añadida lógica para omitir la verificación a través de la configuración para las columnas AutoID y PartitionKey(#32592)
- Mejora de los errores relacionados con la autenticación(nº 32253)
- Mejora de los registros de errores de AllocSegmentID en DataCoord(nº 32351, 32351)
- Eliminación de métricas duplicadas(#32380, #32308) y limpieza de métricas no utilizadas(#32404, #32515)
- Se ha añadido una opción de configuración para controlar si se activa o no la función partitionKey(#32433).
- Añadida una opción de configuración para controlar la cantidad máxima de datos que se pueden insertar en una única solicitud(#32433)
- Paralelización de la operación applyDelete a nivel de segmento para acelerar el procesamiento de mensajes Delete por el Delegator(#32291)
- Utilización de índices(#32232, #32505, #32533, #32595) y caché de adición(#32580) para acelerar las operaciones de filtrado frecuentes en QueryCoord.
- Reestructurada la estructura de datos(#32273) y refactorizado el código(#32389) para acelerar las operaciones frecuentes en DataCoord.
- Eliminado openblas de conan(#32002)
Corrección de errores
- Corregido build milvus en rockylinux8(#32619)
- Corregidos errores de compilación para SVE en ARM(#32463, #32270)
- Corregido el problema de crash en imágenes GPU basadas en ARM(#31980)
- Corregida la consulta regex que no puede manejar texto con nueva línea(#32569)
- Corregida la búsqueda que obtenía un resultado vacío cuando GetShardLeaders devolvía una lista de nodos vacía(#32685)
- Corregido el error que provocaba BulkInsert al encontrar campos dinámicos en archivos numpy(#32596)
- Corregidos errores relacionados con la interfaz RESTFulV2, incluyendo una importante corrección que permite que los parámetros numéricos en las peticiones acepten entrada numérica en lugar de tipo cadena(#32485, #32355)
- Se ha corregido la pérdida de memoria en el proxy mediante la eliminación de la observación del evento de configuración en el limitador de velocidad(nº 32313).
- Se ha solucionado el problema por el que el limitador de velocidad informa incorrectamente de que no se puede encontrar la partición cuando no se especifica partitionName(#32647)
- Añadida la detección entre los casos de Colección en estado de recuperación y no cargada en el tipo de error.(#32447)
- Corregida la métrica negativa de entidades num consultables(#32361)
v2.4.0
Fecha de lanzamiento: 17 de abril de 2024
Versión Milvus | Versión del SDK de Python | Versión del SDK de Node.js |
---|---|---|
2.4.0 | 2.4.0 | 2.4.0 |
Nos complace anunciar el lanzamiento oficial de Milvus 2.4.0. Partiendo de la sólida base de la versión 2.4.0-rc.1, nos hemos centrado en solucionar los errores críticos notificados por nuestros usuarios, preservando al mismo tiempo la funcionalidad existente. Además, Milvus 2.4.0 introduce una serie de optimizaciones destinadas a aumentar el rendimiento del sistema, mejorar la observabilidad mediante la incorporación de diversas métricas y racionalizar el código base para aumentar la simplicidad.
Mejoras
- Compatibilidad con conexiones TLS MinIO(#31396, #31618)
- Soporte de AutoIndex para campos escalares(#31593)
- Refactorización de búsqueda híbrida para rutas de ejecución consistentes con búsqueda regular(#31742, #32178)
- Filtrado acelerado mediante la refactorización de bitset y bitset_view(#31592, #31754, #32139)
- Las tareas de importación permiten ahora esperar a la finalización del índice de datos(#31733)
- Mejora de la compatibilidad de las importaciones(nº 32121), la programación de tareas(nº 31475) y los límites de tamaño y número de archivos importados(nº 31542).
- Esfuerzos de simplificación del código, incluida la normalización de la interfaz para la comprobación de tipos(#31945, #31857), eliminación de código y métricas obsoletos(#32079, #32134, #31535, #32211, #31935) y normalización de nombres de constantes(#31515).
- Nuevas métricas para la latencia del punto de control del canal de destino actual de QueryCoord(#31420)
- Nueva etiqueta db para métricas comunes(#32024)
- Nuevas métricas relativas al recuento de entidades eliminadas, indexadas y cargadas, con la inclusión de etiquetas como collectionName y dbName(#31861)
- Mejoras en la gestión de errores para tipos de vectores no coincidentes(nº 31766)
- Soporte para lanzar errores en lugar de bloquearse cuando el índice no se puede construir(#31845)
- Soporte para invalidar la meta caché de la base de datos cuando se eliminan bases de datos(#32092)
- Refactorización de la interfaz para la distribución de canales(#31814) y la gestión de vistas de líderes(#32127)
- Refactorización de la interfaz del gestor de distribución de canales(#31814) y refactorización de la interfaz del gestor de vistas de líderes(#32127)
- Procesamiento por lotes(#31632), adición de información de mapeo(#32234, #32249), y evitar el uso de bloqueo(#31787) para acelerar las operaciones invocadas con frecuencia
Cambios de última hora
- Discontinuación de la búsqueda de agrupamiento en vectores binarios(#31735)
- Discontinuación de la búsqueda agrupada con búsqueda híbrida(#31812)
- Interrupción del índice HNSW en vectores binarios(#31883)
Corrección de errores
- Mejora del tipo de datos y de las comprobaciones de valores en las consultas e inserciones para evitar fallos(#31478, #31653, #31698, #31842, #32042, #32251, #32204)
- Corrección de errores de la API RESTful(#32160)
- Mejora de la predicción del uso de recursos del índice invertido(#31641)
- Resolución de problemas de conexión con etcd cuando la autorización está activada(#31668)
- Actualización de seguridad para el servidor nats(#32023)
- Almacenamiento de archivos de índices invertidos en una ruta de almacenamiento local de QueryNode en lugar de /tmp(#32210)
- Corrección de las fugas de memoria de datacoord en collectionInfo(#32243)
- Corrección de errores relacionados con fp16/bf16 que podían causar pánico en el sistema(#31677, #31841, #32196)
- Se han resuelto los problemas por los que la búsqueda agrupada no devolvía suficientes resultados(#32151)
- Ajuste de la búsqueda con iteradores para gestionar los desplazamientos en el paso Reducir de forma más eficaz y garantizar resultados adecuados con "reduceStopForBest" activado(#32088)
v2.4.0-rc.1
Fecha de publicación: 20 de marzo de 2024
Versión Milvus | Versión del SDK de Python |
---|---|
2.4.0-rc.1 | 2.4.0 |
Esta versión introduce varias funciones basadas en escenarios:
Nuevo índice de GPU - CAGRA: Gracias a la contribución de NVIDIA, este nuevo índice de GPU ofrece una mejora de rendimiento de 10x, especialmente para búsquedas por lotes. Para más detalles, consulta Índice GPU.
Búsquedamultivectorial e híbrida: Esta función permite almacenar incrustaciones vectoriales de múltiples modelos y realizar búsquedas híbridas. Para obtener más información, consulte Búsqueda híbrida.
Vectores dispersos: Ideales para la interpretación y el análisis de palabras clave, los vectores dispersos son ahora compatibles con el procesamiento en su colección. Para obtener más información, consulte Vectores dispersos.
Búsqueda por agrupación: La agrupación por categorías mejora la recuperación a nivel de documento para aplicaciones de generación mejorada de recuperación (RAG). Para obtener más información, consulte Búsqueda por agrupación.
Índice invertido y concordancia difusa: Estas funciones mejoran la recuperación de palabras clave para campos escalares. Para obtener más información, consulte Índice de campos escalares y búsqueda filtrada.
Nuevas funciones
Índice GPU - CAGRA
Queremos expresar nuestro más sincero agradecimiento al equipo de NVIDIA por su inestimable contribución a CAGRA, un índice de grafos basado en la GPU (SoTA) de última generación que puede utilizarse online.
A diferencia de índices anteriores basados en la GPU, CAGRA demuestra una superioridad abrumadora incluso en consultas de lotes pequeños, un área en la que tradicionalmente destacan los índices basados en la CPU. Además, el rendimiento de CAGRA en consultas de grandes lotes y la velocidad de construcción de índices, dominios en los que los índices de GPU ya brillan, es realmente incomparable.
El código de ejemplo se encuentra en example_gpu_cagra.py.
Vector disperso (Beta)
En esta versión, introducimos un nuevo tipo de campo vectorial denominado vector disperso. Los vectores dispersos son diferentes de sus homólogos densos, ya que tienden a tener varias magnitudes mayor número de dimensiones con sólo un puñado de ser distinto de cero. Esta característica ofrece una mejor interpretabilidad debido a su naturaleza basada en términos y puede ser más eficaz en determinados dominios. Los modelos dispersos aprendidos, como SPLADEv2/BGE-M3, han demostrado ser muy útiles para tareas comunes de clasificación de primera etapa. El principal caso de uso de esta nueva función de Milvus es permitir una búsqueda semántica aproximada eficiente del vecino más próximo sobre vectores dispersos generados por modelos neuronales como SPLADEv2/BGE-M3 y modelos estadísticos como el algoritmo BM25. Milvus soporta ahora un almacenamiento, indexación y búsqueda eficaces y de alto rendimiento (MIPS, Maximum Inner Product Search) de vectores dispersos.
Encontrará código de ejemplo en hello_sparse.py.
Multiincrustación y búsqueda híbrida
El soporte multivectorial es la piedra angular de las aplicaciones que requieren el procesamiento de datos multimodelo o una mezcla de vectores densos y dispersos. Con el soporte multivectorial, ahora puede:
- Almacenar incrustaciones vectoriales generadas para muestras de texto, imagen o audio no estructuradas a partir de múltiples modelos.
- Realizar búsquedas RNA que incluyan múltiples vectores de cada entidad.
- Personalizar las estrategias de búsqueda asignando pesos a los distintos modelos de incrustación.
- Experimente con varios modelos de incrustación para encontrar la combinación óptima de modelos.
El soporte multivectorial permite almacenar, indexar y aplicar estrategias de reordenación a múltiples campos vectoriales de distintos tipos, como FLOAT_VECTOR y SPARSE_FLOAT_VECTOR, en una colección. Actualmente existen dos estrategias de reordenación: Reciprocal Rank Fusion (RRF) y Average Weighted Scoring. Ambas estrategias combinan los resultados de búsqueda de distintos campos vectoriales en un conjunto de resultados unificado. La primera estrategia da prioridad a las entidades que aparecen sistemáticamente en los resultados de búsqueda de diferentes campos vectoriales, mientras que la otra estrategia asigna pesos a los resultados de búsqueda de cada campo vectorial para determinar su importancia en el conjunto de resultados final.
El código de ejemplo se encuentra en hybrid_search.py.
Índice invertido y coincidencia difusa
En versiones anteriores de Milvus, se utilizaban índices de búsqueda binaria basados en memoria e índices Marisa Trie para la indexación de campos escalares. Sin embargo, estos métodos consumían mucha memoria. La última versión de Milvus emplea ahora el índice invertido basado en Tantivy, que puede aplicarse a todos los tipos de datos numéricos y de cadena. Este nuevo índice mejora drásticamente el rendimiento de las consultas escalares, reduciendo diez veces la consulta de palabras clave en cadenas. Además, el índice invertido consume menos memoria, gracias a optimizaciones adicionales en la compresión de datos y al mecanismo de almacenamiento en mapa de memoria (MMap) de la estructura de indexación interna.
Esta versión también admite coincidencias difusas en el filtrado escalar mediante prefijos, infijos y sufijos.
Encontrará código de ejemplo en inverted_index_example.py y fuzzy_match.py.
Agrupación de búsquedas
Ahora puede agrupar los resultados de la búsqueda por los valores de un campo escalar específico. Esto ayuda a las aplicaciones RAG a implementar la recuperación a nivel de documento. Considere una colección de documentos, cada documento se divide en varios pasajes. Cada pasaje está representado por un vector incrustado y pertenece a un documento. Para encontrar los documentos más relevantes en lugar de pasajes dispersos, puede incluir el argumento group_by_field en la operación search() para agrupar los resultados por el ID del documento.
Puede encontrar código de ejemplo en example_group_by.py.
Tipos de datos vectoriales Float16 y BFloat
El aprendizaje automático y las redes neuronales utilizan a menudo tipos de datos de media precisión, como Float16 y BFloat. Aunque estos tipos de datos pueden mejorar la eficiencia de las consultas y reducir el uso de memoria, tienen como contrapartida una menor precisión. Con esta versión, Milvus soporta ahora estos tipos de datos para campos vectoriales.
Se puede encontrar código de ejemplo en float16_example.py y bfloat16_example.py.
Arquitectura actualizada
Segmento L0
Esta versión incluye un nuevo segmento denominado Segmento L0, diseñado para registrar los datos eliminados. Este segmento compacta periódicamente los registros borrados almacenados y los divide en segmentos sellados, reduciendo el número de lavados de datos necesarios para borrados pequeños y dejando una pequeña huella de almacenamiento. Con este mecanismo, Milvus separa completamente las compactaciones de datos de los volcados de datos, mejorando el rendimiento de las operaciones de borrado y upsert.
BulkInsert refactorizado
Esta versión también introduce una lógica de inserción masiva mejorada. Esto permite importar varios archivos en una única solicitud de inserción masiva. Con la versión modificada, tanto el rendimiento como la estabilidad de la inserción masiva han experimentado mejoras significativas. También se ha mejorado la experiencia del usuario, como la limitación de velocidad ajustada y los mensajes de error más fáciles de usar. Además, puede acceder fácilmente a los puntos finales de inserción masiva a través de la API RESTful de Milvus.
Almacenamiento en memoria
Milvus utiliza almacenamiento en mapa de memoria (MMap) para optimizar el uso de la memoria. En lugar de cargar el contenido del archivo directamente en la memoria, este mecanismo mapea el contenido del archivo en la memoria. Este enfoque tiene como contrapartida una degradación del rendimiento. Al activar MMap para una colección indexada en HNSW en un host con 2 CPU y 8 GB de RAM, puede cargar 4 veces más datos con menos de un 10% de degradación del rendimiento.
Además, esta versión también permite un control dinámico y detallado de MMap sin necesidad de reiniciar Milvus.
Para más detalles, consulte Almacenamiento MMap.
Otros
Milvus-CDC
Milvus-CDC es una herramienta complementaria fácil de usar para capturar y sincronizar datos incrementales entre instancias de Milvus, lo que permite una copia de seguridad incremental y una recuperación de desastres sencillas. En esta versión, Milvus-CDC ha mejorado su estabilidad y su funcionalidad de captura de datos de cambios (CDC) está ahora disponible de forma general.
Para obtener más información sobre Milvus-CDC, consulte el repositorio GitHub y la descripción general de Milvus-CDC.
Interfaces MilvusClient perfeccionadas
MilvusClient es una alternativa fácil de usar al módulo ORM. Adopta un enfoque puramente funcional para simplificar las interacciones con el servidor. En lugar de mantener un pool de conexiones, cada MilvusClient establece una conexión gRPC con el servidor. El módulo MilvusClient ha implementado la mayoría de las funcionalidades del módulo ORM. Para saber más sobre el módulo MilvusClient, visite pymilvus y los documentos de referencia.