La compactación de bases de datos vectoriales recupera el espacio eliminado al reescribir los registros activos en segmentos limpios y retirar los archivos de segmentos antiguos que aún contienen vectores eliminados.
Eliminar un documento doméstico de una biblioteca RAG local puede hacer que desaparezca de la búsqueda de inmediato, mientras que el uso del disco apenas cambia. Esto no significa necesariamente que la eliminación haya fallado. Muchas bases de datos vectoriales separan la visibilidad lógica de la limpieza del almacenamiento físico para que las escrituras en primer plano sigan siendo rápidas y los lectores puedan continuar usando segmentos inmutables o orientados a anexos. La compactación es la ruta de mantenimiento posterior que convierte esas eliminaciones lógicas en una representación física más pequeña.
Una eliminación normalmente cambia la visibilidad antes de reescribir los bytes almacenados
Editar físicamente un archivo de índice grande con cada eliminación generaría escrituras aleatorias costosas y una concurrencia compleja. En su lugar, muchos motores registran un marcador de eliminación, un tombstone o un registro de eliminaciones que indica a la búsqueda que ignore el vector.
Los tombstones de HNSW permiten que los objetos eliminados dejen de ser aptos para la búsqueda en el grafo antes de que el mantenimiento en segundo plano elimine físicamente todo su estado del índice.
Por tanto, el resultado visible para el usuario y el resultado a nivel de disco se producen en momentos distintos. El registro puede dejar de aparecer en los resultados de vecinos más cercanos mientras sus bytes antiguos permanecen dentro de un segmento existente.
Esta separación también proporciona a la base de datos margen para coordinar consultas simultáneas, réplicas, instantáneas y reglas de retención antes de destruir las estructuras de almacenamiento históricas.
Los registros eliminados se acumulan dentro de los segmentos hasta alcanzar un umbral de limpieza
Un segmento puede contener tanto vectores activos como registros que ya no son aptos para la búsqueda. A medida que se acumulan actualizaciones y eliminaciones, disminuye la proporción de datos útiles frente a los datos obsoletos.
Un umbral de vectores eliminados puede retrasar la limpieza costosa hasta que se hayan acumulado suficientes puntos obsoletos para que valga la pena reescribir un segmento.
Esperar a alcanzar un umbral permite amortizar el trabajo de mantenimiento. Reescribir un segmento para recuperar un único registro eliminado y pequeño costaría más E/S que el espacio ahorrado. En un servidor doméstico con reindexaciones frecuentes, la cantidad visible de almacenamiento físico obsoleto puede aumentar durante un tiempo antes de que el optimizador decida que la limpieza merece la pena.
La compactación copia los datos activos en segmentos nuevos o fusionados
Una vez iniciado el mantenimiento, la base de datos lee los segmentos de origen aptos, omite los registros eliminados lógicamente y escribe los vectores y las cargas útiles supervivientes en una nueva representación compacta.
La compactación como fusión de segmentos y limpieza de eliminaciones reescribe los datos supervivientes en segmentos más limpios, omitiendo los registros que ya se han eliminado lógicamente o han caducado.
Los segmentos pequeños pueden fusionarse al mismo tiempo, lo que reduce el número de estructuras independientes que la búsqueda debe consultar. El nuevo segmento representa el estado activo en lugar de conservar todas las mutaciones históricas.
Esta reescritura puede necesitar temporalmente espacio libre adicional, ya que los segmentos antiguos y nuevos pueden coexistir hasta que se verifique el reemplazo y se active.
Los índices se reconstruyen alrededor del conjunto de vectores supervivientes
Eliminar los bytes de las cargas útiles vectoriales es solo una parte de la limpieza. Los enlaces del grafo, las estructuras cuantizadas, los filtros y los metadatos de los segmentos pueden hacer referencia a registros que ya no pertenecen al segmento activo.
Una ruta de compactación que reconstruye los índices durante la optimización garantiza que las estructuras de búsqueda del grafo y auxiliares correspondan al conjunto de vectores supervivientes, en lugar de conservar referencias a puntos eliminados.
En HNSW, esto puede cambiar la topología del grafo incluso cuando los vectores restantes no han cambiado. Por eso la compactación puede afectar al recorrido de vecinos aproximados y, al mismo tiempo, conservar el mismo conjunto de datos lógico. El mecanismo descrito en este artículo es el ciclo de vida del almacenamiento: los registros obsoletos se excluyen del índice reescrito para que su huella física pueda desaparecer finalmente.
Los segmentos antiguos deben retirarse antes de poder liberar su almacenamiento
Una vez que el segmento compactado se convierte en la representación activa, los segmentos antiguos se marcan como obsoletos o se descartan. Es posible que los archivos subyacentes aún esperen un periodo de recolección de basura o retención antes de que se liberen realmente los bloques del disco.
Cuando la recolección de basura sigue a la compactación, los archivos de segmentos descartados pueden permanecer temporalmente después de que el reemplazo compactado esté activo, por lo que el espacio del sistema de archivos puede liberarse más tarde que los cambios de visibilidad en las consultas.
Las instantáneas, la retención de copias de seguridad, la replicación o los lectores que mantienen referencias pueden prolongar ese retraso en los sistemas que conservan generaciones anteriores de segmentos.
Por ello, la supervisión del disco debe distinguir entre el número lógico de entidades, el tamaño de los segmentos activos, el espacio temporal de compactación, los segmentos descartados y la capacidad libre del sistema de archivos.
La compactación es un mantenimiento en segundo plano con su propio coste de recursos
Leer segmentos antiguos, escribir otros nuevos, reconstruir índices y eliminar archivos obsoletos consume CPU, ancho de banda del disco, memoria y, en ocasiones, almacenamiento temporal duplicado.
Las métricas de limpieza de tombstones permiten observar la reparación de eliminaciones como una carga de trabajo de mantenimiento con sus propios ciclos, duraciones y consumo de recursos.
Evitar registros obsoletos del índice tras actualizar archivos es un requisito previo: una eliminación del origen debe llegar primero a la base de datos vectorial antes de que la compactación pueda recuperar la representación obsoleta.
Centro de Tecnología e IA
Más para leer

¿Qué es el estado de Plex y qué partes deben persistir?
El estado persistente de Plex es la información que conserva la experiencia del servidor entre reinicios y reconstrucciones; los datos multimedia y los datos...

¿Cómo gestiona Plex la autenticación entre sesiones locales y remotas?
La autenticación de Plex comienza con la identidad del servidor y de la cuenta; después, las rutas de red locales o remotas determinan la...

¿Por qué puede ralentizarse la búsqueda en Plex a medida que crecen los datos de la biblioteca?
El crecimiento de la biblioteca por sí solo no es el diagnóstico. Comprueba la estructura de las consultas, los índices, el estado de la...

