ENES

Caché

Guardar una copia de una respuesta a mano para no tener que calcularla de nuevo.

Los pedidos van primero a una caché rápida; un hit responde enseguida, un miss sigue hasta la base de datos lenta y la respuesta se guarda en la caché para la próxima

Usar una caché (o cachear) significa guardar el resultado de algo lento o caro, una consulta a la base de datos, una página web, una foto, un cálculo, en un lugar rápido de leer, para que la próxima vez que alguien lo pida le des la copia guardada. Cuando la respuesta está ahí, es un cache hit; cuando no, es un cache miss: hacés el trabajo lento y en general guardás el resultado para la próxima.

En un solo clic hay cachés por todos lados. Tu navegador guarda imágenes y archivos de los sitios que visitás. Una CDN guarda copias de páginas en ciudades cerca tuyo. La aplicación guarda en memoria los resultados más pedidos de la base de datos, muchas veces en una herramienta como Redis. La base de datos tiene los datos más usados en RAM en vez de en disco. Hasta el procesador tiene su propia caché de CPU. Cada capa se ahorra un viaje a algo más lento.

Lo difícil es saber cuándo una copia guardada quedó vieja. Si un precio cambia pero la caché sigue teniendo el anterior, la gente ve el precio equivocado. Las respuestas típicas son darle a cada dato un vencimiento (un TTL, time to live) o borrarlo de la caché cada vez que cambia el original, lo que se llama invalidación de caché. Hacerlo mal es una fuente clásica de bugs desconcertantes, y por eso hay un chiste entre programadores que dice que es uno de los dos problemas difíciles de la informática.

Para quedarse

Para seguir leyendo

Términos relacionados

Más de Software