La invalidación de la caché es un proceso en un sistema informático mediante el cual las entradas de una caché se reemplazan o eliminan.
Se puede hacer de forma explícita, como parte de un protocolo de coherencia de caché . En tal caso, un procesador cambia una ubicación de memoria y luego invalida los valores almacenados en caché de esa ubicación de memoria en el resto del sistema informático.
Invalidación explícita
La invalidación de caché se puede utilizar para enviar contenido nuevo a un cliente . Este método funciona como una alternativa a otros métodos de mostrar contenido nuevo a los clientes conectados. La invalidación se realiza cambiando los datos de la aplicación, que a su vez marca la información recibida por el cliente como desactualizada. Después de invalidar la caché, si el cliente solicita la caché, se le entrega una nueva versión. [1]
Métodos
Hay tres métodos específicos para invalidar una caché, pero no todos los proxies de caché admiten estos métodos.
Purga
Elimina el contenido del proxy de almacenamiento en caché de inmediato. Cuando el cliente solicita los datos nuevamente, se obtienen de la aplicación y se almacenan en el proxy de almacenamiento en caché. Este método elimina todas las variantes del contenido almacenado en caché. [1]
Actualizar
Obtiene el contenido solicitado de la aplicación, incluso si el contenido almacenado en caché está disponible. El contenido almacenado previamente en la caché se reemplaza con una nueva versión de la aplicación. Este método afecta solo a una variante del contenido en caché. [1]
Prohibición
Se agrega una referencia al contenido almacenado en caché a una lista negra (o lista de prohibición). Luego, las solicitudes de los clientes se comparan con esta lista negra y, si una solicitud coincide, se obtiene nuevo contenido de la aplicación, se devuelve al cliente y se agrega a la caché. [1]
Este método, a diferencia de la purga, no elimina inmediatamente el contenido en caché del proxy de almacenamiento en caché. En cambio, el contenido almacenado en caché se actualiza después de que un cliente solicita esa información específica.
Alternativas
Existen algunas alternativas a la invalidación de caché que aún entregan contenido actualizado al cliente. Una alternativa es hacer que el contenido almacenado en caché caduque rápidamente reduciendo el tiempo de vida (TTL) a un valor muy bajo. Otra alternativa es validar el contenido almacenado en caché en cada solicitud. Una tercera opción es no almacenar en caché el contenido volátil solicitado por el cliente. Estas alternativas pueden causar problemas, ya que crean una gran carga en la aplicación debido a solicitudes de información más frecuentes. [1]
Desventajas
Usar la invalidación para transferir contenido nuevo puede resultar difícil cuando se invalidan varios objetos. La invalidación de varias representaciones agrega un nivel de complejidad a la aplicación. La invalidación de la caché debe realizarse a través de un proxy de almacenamiento en caché; estas solicitudes pueden afectar el rendimiento del proxy de almacenamiento en caché, lo que hace que la información se transfiera a un ritmo más lento a los clientes. [1]