Actualmente estoy desarrollando la base de una aplicación y estoy buscando formas de optimizar el rendimiento. Mi configuración se basa en the CakePHP framework, pero creo que mi pregunta es relevante para cualquier pila de tecnología, ya que se relaciona con el almacenamiento en memoria caché de datos.Patrones para el almacenamiento en caché de datos relacionados
Tomemos una relación típica post-autor, que está representada por 2 tablas en mi db. Cuando consulto la base de datos para una publicación de blog específica, al mismo tiempo la funcionalidad ORM incorporada en CakePHP también busca al autor de la publicación, comentarios en la publicación, etc. Todo esto se devuelve como una matriz anidada de gran culo , que almaceno en caché usando un identificador único para la publicación de blog correspondiente.
Al actualizar la publicación del blog, es un juego de niños destruir la memoria caché de la publicación y volver a generarla con la siguiente solicitud.
Pero, ¿qué pasa cuando no se actualiza la entidad principal (en este caso, la publicación del blog), sino más bien algunos de los datos relacionados? Por ejemplo, un comentario podría eliminarse, o el autor podría actualizar su avatar. ¿Hay algún enfoque (patrones) que pueda considerar para rastrear actualizaciones de datos relacionados y aplicar actualizaciones a mi caché en consecuencia?
Tengo curiosidad por saber si también ha enfrentado desafíos similares y cómo ha logrado superar el obstáculo. Siéntase libre de proporcionar una perspectiva abstracta, si está utilizando otra pila en su extremo. Sus opiniones son de todos modos muy apreciadas, ¡muchas gracias!
Tenía miedo de que esto fuera la única salida posible, pero gracias por confirmar que, ya que lograron que suene más "capaz" :-) Así que la desventaja es una gran cantidad de código personalizado por vista, pero Lo bueno es que esto aún permitiría una fácil conmutación del back-end de caché. Thx también para obtener información adicional sobre la función de bloqueo, esta será para v2 :-) – Shahways
Para una visión conceptual más compleja y algunos temas prácticos, encontré esta lectura interesante http://highscalability.com/blog/2010/9/ 30/facebook-and-site-failures-caused-by-complex-weakly-interact.html – Unreason