Configurar la caché de trozos
El mecanismo de caché de trozos permite a Milvus precargar datos en la caché del disco duro local de los nodos de consulta antes de que se necesiten. Este mecanismo mejora significativamente el rendimiento de la recuperación de vectores al reducir el tiempo que se tarda en cargar los datos del disco a la memoria.
Antecedentes
Antes de realizar consultas para recuperar vectores, Milvus necesita cargar los datos desde el almacenamiento de objetos a la memoria caché en el disco duro local de los nodos de consulta. Se trata de un proceso que requiere mucho tiempo. Antes de que se carguen todos los datos, Milvus puede responder a algunas solicitudes de recuperación de vectores con retraso.
Para mejorar el rendimiento de la consulta, Milvus proporciona un mecanismo de caché de trozos para cargar previamente los datos del almacenamiento de objetos en la caché del disco duro local antes de que se necesiten. Cuando se recibe una solicitud de consulta, Segcore comprueba primero si los datos están en la caché, en lugar de en el almacenamiento de objetos. Si los datos están en la caché, Segcore puede recuperarlos rápidamente de la caché y devolver el resultado al cliente.
Configurar la caché de trozos
Esta guía proporciona instrucciones sobre cómo configurar el mecanismo de caché de trozos para una instancia de Milvus. La configuración varía según la forma de instalar la instancia Milvus.
Para instancias Milvus instaladas utilizando Helm Charts
Añada la configuración al archivo
values.yaml
en la secciónconfig
. Para más detalles, consulte Configurar Milvus con Helm Charts.Para instancias Milvus instaladas utilizando Docker Compose
Añada la configuración al archivo
milvus.yaml
que ha utilizado para iniciar la instancia de Milvus. Para más detalles, consulte Configurar Milvus con Docker Compose.Para instancias Milvus instaladas utilizando Operator
Añada la configuración a la sección
spec.components
del recurso personalizadoMilvus
. Para más detalles, consulte Configurar Milvus con Operator.
Opciones de configuración
queryNode:
cache:
warmup: async
El parámetro warmup
determina si Milvus carga previamente los datos del almacenamiento de objetos en la caché del disco duro local de los nodos de consulta antes de que se necesiten. Este parámetro es por defecto disable
. Las opciones posibles son las siguientes:
async
: Milvus precarga los datos de forma asíncrona en segundo plano, lo que no afecta al tiempo que se tarda en cargar una colección. Sin embargo, los usuarios pueden experimentar un retraso al recuperar vectores durante un breve periodo de tiempo después de que el proceso de carga se haya completado. Esta es la opción por defecto.sync
: Milvus precarga los datos de forma sincrónica, lo que puede afectar al tiempo que se tarda en cargar una colección. Sin embargo, los usuarios pueden realizar consultas inmediatamente después de que se complete el proceso de carga sin ningún retraso.disable
: Milvus no precarga datos en la memoria caché.
Tenga en cuenta que la configuración de la caché de trozos también se aplica cuando se insertan nuevos datos en las colecciones o se reconstruyen los índices de las colecciones.
FAQ
¿Cómo puedo determinar si el mecanismo de caché por partes funciona correctamente?
Le recomendamos que compruebe la latencia de una solicitud de búsqueda o consulta después de cargar una colección. Si la latencia es significativamente superior a la esperada (por ejemplo, varios segundos), puede indicar que el mecanismo de caché de trozos sigue funcionando.
Si la latencia de la consulta se mantiene alta durante mucho tiempo. Puedes comprobar el rendimiento del almacenamiento de objetos para asegurarte de que la caché de trozos sigue funcionando. En casos normales, la caché de trozos en funcionamiento generará un alto rendimiento en el almacenamiento de objetos. Alternativamente, puedes simplemente probar la caché de trozos en el modo
sync
.