Un Cache Miss, o fallo de caché, es un evento en el que una solicitud de datos a una memoria caché no puede ser satisfecha porque el dato solicitado no reside en la caché. Esto contrasta con un Cache Hit, donde el dato se encuentra disponible en la caché. Cuando ocurre un Cache Miss, el sistema debe acceder a un nivel de memoria más lento y de mayor latencia (por ejemplo, de L1 a L2, de L2 a L3, de L3 a RAM principal, o de RAM a disco) para recuperar el dato. Una vez recuperado, el dato se carga en la caché para futuras solicitudes, siguiendo una política de reemplazo si la caché está llena.
El concepto de Cache Miss es fundamental en múltiples niveles de la computación. A nivel de hardware, las CPUs modernas utilizan múltiples niveles de caché (L1, L2, L3) para minimizar la latencia de acceso a la memoria principal. Un Cache Miss en L1 implica una búsqueda en L2, y así sucesivamente. En sistemas operativos, el 'page cache' gestiona los accesos a disco, y un Cache Miss aquí significa una lectura física del disco. Bases de datos como PostgreSQL o MySQL, y sistemas de caché distribuida como Redis o Memcached, también experimentan Cache Misses cuando los datos solicitados no están en su memoria. Incluso los navegadores web tienen cachés HTTP que pueden incurrir en Cache Misses al requerir una nueva descarga de recursos de un servidor remoto.
Para un Arquitecto de Sistemas, entender y mitigar los Cache Misses es crucial para el diseño de sistemas de alto rendimiento y baja latencia. Un alto índice de Cache Misses puede degradar significativamente el rendimiento de una aplicación o sistema, ya que cada fallo implica una penalización de tiempo considerable. Los arquitectos deben considerar la localidad de los datos, los patrones de acceso y las políticas de caché al diseñar estructuras de datos, algoritmos y la topología de la memoria. Esto incluye elegir el tamaño y la estrategia de reemplazo de la caché, decidir si implementar cachés a nivel de aplicación o utilizar soluciones distribuidas, y optimizar el código para mejorar la 'cache-friendliness'. La gestión efectiva de los Cache Misses es un trade-off constante entre el costo de la memoria caché (más rápida y costosa) y la latencia aceptable para las operaciones críticas.