Saltar al contenido

¿Qué se entiende por caché en frío y caché en caliente?

El paso a paso o código que encontrarás en este artículo es la solución más eficiente y efectiva que hallamos a tu duda o problema.

TL; DR Existe una analogía con un motor frío y un motor caliente del automóvil. Caché en frío: no tiene ningún valor y no puede darle ninguna aceleración porque, bueno, está vacío. La caché caliente tiene algunos valores y puede darle esa aceleración.

Una caché es una estructura que contiene algunos valores (inodos, páginas de memoria, bloques de disco, etc.) para una búsqueda más rápida.

La caché funciona almacenando algún tipo de referencias cortas en una estructura de datos de búsqueda rápida (tabla hash, árbol B +) o medios de acceso más rápidos (memoria RAM frente a HDD, SSD frente a HDD).

Para poder hacer esta búsqueda rápida, necesita que su caché contenga valores. Veamos un ejemplo.

Digamos que tiene un sistema Linux con algún sistema de archivos. Para acceder a los archivos en el sistema de archivos, necesita saber dónde comienza su archivo en el disco. Esta información almacenada en el inodo. Para simplificar, decimos que la tabla de inodo se almacena en algún lugar del disco (la parte llamada “superbloque”).

Ahora imagina que necesitas leer el archivo / etc / fstab. Para hacer esto, necesita leer la tabla de inodo del disco (10 ms), luego analizarla y obtener el bloque de inicio del archivo y luego leer el archivo en sí (10 ms). Total ~ 20 ms

Son demasiadas operaciones. Entonces está agregando un caché en forma de tabla hash en la RAM. El acceso a la RAM es de 10 ns, ¡eso es 1000 (!) Veces más rápido. Cada fila de esa tabla hash tiene 2 valores.

(inode number or filename) : (starting disk block)

Pero el problema es que al principio su caché está vacío; dicho caché se llama caché frío. Para aprovechar los beneficios de su caché, debe completarlo con algunos valores. ¿Cómo sucede? Cuando busca un archivo, busca en su caché de inodo. Si no encuentra inodo en el caché (perdida de caché) está diciendo ‘Está bien’ y hace un ciclo de lectura completo con la lectura de la tabla de inodo, analizándola y leyendo el archivo en sí. Pero después de analizar la parte, está guardando el número de inodo y el bloque de disco de inicio analizado en su caché. Y eso sigue y sigue: intentas leer otro archivo, miras en el caché, obtienes un error de caché (tu caché está frío), lees desde el disco, agregas una fila en el caché.

Entonces, el caché en frío no le da ninguna aceleración porque todavía está leyendo desde el disco. En algunos casos, el caché en frío hace que su sistema sea más lento porque está haciendo un trabajo adicional (paso adicional de buscar en una tabla) para calentar su caché.

Después de un tiempo, tendrá algunos valores en su caché, y cuando intente leer el archivo, busque en el caché y ¡BAM! has encontrado un inodogolpe de caché)! Ahora tiene el bloque de disco inicial, por lo que omite la lectura del superbloque y comienza a leer el archivo en sí. ¡Acaba de ahorrar 10 ms!

Ese caché se llama caché caliente – caché con algunos valores que le dan aciertos de caché.

ingrese la descripción de la imagen aquí

Fondo:

Cache es un pequeño y más rápido memory, eso ayuda a evitar CPU acceder main memory (más grande y más lento) para ahorrar tiempo (cache lee son ~100 x más rápido que las lecturas de main memory). Pero esto solo ayuda si los datos que su programa necesita han sido cached (Leer de main memory en cache) y es válido. También, cache se llena de datos a lo largo del tiempo. Entonces, cache puede ser:
1. Vacío, o
2. puede contener irrelevante datos, o
3. puede contener pertinente datos.


Ahora, a tu pregunta:

Caché frío: Cuando el cache está vacío o tiene datos irrelevantes, por lo que CPU necesita hacer una lectura más lenta de main memory para los requisitos de datos de su programa.

Caché caliente: Cuando el cache contiene datos relevantes, y todas las lecturas de su programa se satisfacen desde el cache sí mismo.

Por lo tanto, los cachés calientes son deseables, los cachés fríos no lo son.

Muy buena respuesta @avd.

Caché frío es solo un caché en blanco o uno con datos obsoletos.

Caché caliente por otro lado, mantiene datos útiles que su sistema requiere. Le ayuda a lograr un procesamiento más rápido; principalmente se utiliza para el procesamiento de solicitudes casi en tiempo real. Hay sistemas / procesos que necesitan cierta información a mano antes de comenzar a atender las solicitudes de los usuarios; como una plataforma de negociación que requeriría datos de mercado / información de riesgo / información de seguridad, etc. antes de que pueda procesar una solicitud de usuario. Llevará mucho tiempo si para cada solicitud el proceso tiene que consultar una base de datos / servicio para obtener esta información crítica. Por lo tanto, sería una buena idea almacenarlo en caché; y eso sería factible a través de Hot Cache. Este caché debe mantenerse con regularidad (actualizaciones / eliminaciones, etc.); de lo contrario, durante el período, su caché puede aumentar de tamaño con datos innecesarios y es posible que observe una degradación del rendimiento.

Para crear Hot Cache, un método sería una población diferida de caché, lo que quiero decir con eso es que a medida que recibes solicitudes, llenas el cahce; en ese caso, las solicitudes iniciales serían lentas, pero las posteriores serían más rápidas. Otro enfoque sería cargar los datos al inicio del proceso (o antes de que comiencen a llegar las solicitudes de los usuarios) y mantener la caché hasta que el proceso viva.

Agradecemos que desees asistir nuestro quehacer mostrando un comentario o puntuándolo te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *