Como siempre que hago en mis artículos sobre programación, y tecnología en general, intentaré dar algunas claves en forma de pequeña chuleta, a tener en cuenta cuando usamos este inestimable recurso. El por qué no es más, de nuevo, que la falta de información general que hay en Internet a este respecto.Qué es una caché de datosHay muchos tipos de caché: de sistema, de memoria, de datos…, y más. En este caso hablaré de las de datos. Las más importantes o de uso más generalizado son Spaces y Coherence, de ORACLE, esta última con la que me he visto obligado a trabajar últimamente.
No voy a entrar a nombrar las virtudes y defectos de cada una (para eso recomiendo la lectura de este artículo), sino de las cachés de datos y funcionamiento en general.
Cuando tenemos necesidad de almacenar datos de forma permanente utilizamos unos almacenes a los que llamamos bases de datos, y unos programas que nos ayudan a acceder y manejar fácilmente esos datos, a los que llamamos motores de datos.Así tenemos, por ejemplo, ORACLE, MySQL, DB2, etc.
Pero cuando necesitamos manejar y operar con enormes cantidades de datos, incluso con ordenadores potentes y potentes motores también, este trabajo, el acceso y la operativa con esos datos, se hace lenta. Al fin y al cabo, esos datos se guardan como archivos en disco, y el acceso a disco siempre es lento.
Por eso necesitamos un acceso a datos más rápido. Lo ideal es tenerlos en memoria, cuya velocidad de acceso es significativamente mayor, en cualquier caso, que el acceso a disco. El inconveniente de tener los datos en memoria es que esta es volátil, y los datos sólo permanecen en lla momentáneamente. Luego desaparecen.
Pero si disponemos de un sistema que nos permita conservar en memoria esos datos el tiempo suficiente, sólo mientras necesitamos ese acceso a los mismos, ya hemos ganado. Ese sistema en el que los datos se mantienen en memoria durante un tiempo determinado, ofreciéndonos ese acceso rápido a los mismos, es lo que llamamos caché de datos.
Cómo funciona una caché de datosEntender el funcionamiento de una caché de datos no debería ser muy complicado.Al comienzo de la aplicación que utilizará los datos, estos se cargarán en memoria (la caché), y luego la aplicación accede a los datos en la caché, en lugar de hacerlo directamente contra el motor de datos. Luego, por motivos de persistencia y coherencia, que explicaré más adelante en este mismo artículo, se van recargando los datos en períodos regulares de tiempo, y de forma absolutamente transparente para el usuario de la aplicación.
El siguiente gráfico lo demuestra en su forma más básica: