Trabajando con cachés IV

Publicado el 28 marzo 2015 por Elvenbyte @elvenbyte

La duración de la caché es quizás el concepto del que menos se habla cuando se habla de cachés. Suele hablarse más de conceptos que ya hemos tratado, como persistencia de los datos, o tiempo de acceso. Pero la permanencia o duración de la caché también es importante. Para la duración utilizaremos el término TTL (Time To Live, o tiempo de vida, en su traducción), y veremos cómo funciona. Al trabajar con cachés no pensamos en cuánto nos tiene que durar. Damos por hecho que cuando la tengamos montada, cargada y lista, en nuestra memoria, o en nuestro clúster, se va a ir actualizando cuando está programado, y vamos a tener acceso a ella de forma permanente. Pero a veces necesitamos que no se produzca esa permanencia. A veces nos hace falta que esos datos en memoria “mueran”, por decirlo así, tras un periodo de tiempo determinado, o en un momento concreto. Las razones para querer esto pueden ser muchas y variadas, pero no tengo intención de incorporar ejemplos. Lo que sí voy a aportar, como información adicional, es que este TTL puede forzarse para una caché concreta, o sólo para parte de los datos de la misma.

Tampoco voy a hablar  específicamente de las instrucciones  o configuraciones necesarias, aunque sí diré que podemos forzar una caída TTL por programación o por configuración. Hay algunos conceptos útiles, como el Mínimo de Permanencia en caché, que es el tiempo mínimo en que los datos estarán cacheados. O el Vencimiento de los Datos en Caché, que es una forma de configurar el TTL. En definitiva, no son más que técnicas para configurar los tiempos de caché. Por último, no confundir TTL con TimeOut; mientra que el TTL es una funcionalidad de algunas cachés, un TimeOut es un fallo que se produce por tiempo de espera sobrepasado, por ejemplo al tratar de acceder a una caché y no obtener respuesta. Así como tampoco debe confundirse “permanencia”, que es lo que hemos tratado en este artículo, con “persistencia”, que ya vimos en otro.