Cache en la Web

1,119 views
1,032 views

Published on

Estrategias de Cache en la web

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,119
On SlideShare
0
From Embeds
0
Number of Embeds
69
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Cache en la Web

  1. 1. Estrategias de Cache Matías Alejo García Confronte.com
  2. 2. Cache Es una memoria temporal de rápido acceso , donde se guardan valores de uso frecuente .
  3. 3. Qué tan efectivo será un cache ? Hit ratio: % de pedidos que se resuelven en el caché, sin tener que consultar la memoria principal. Te = HitRatio * Tcache ,+ (1 - HitRatio) * Tmemoria
  4. 4. Qué tan efectivo será un cache ? Te = HitRatio * Tcache + (1 - HitRatio) * Tmemoria Suponiendo Tmemoria constante (sino...)‏ ... tenemos dos formas de mejorar Te Aumentar el HitRatio Disminuir Tcache
  5. 5. WWW: Dónde almacenar? - La RAM y el problema de persistencia en la web ... - por request... - por proceso... - IPC local ? - por servidor - Soluciones de memoria distribuida - Memcached, ehCached (sun), etc. - SQL Memory tables
  6. 6. WWW: Qué almacenar? - Resultados de queries SQL - Resultados parciales de queries SQL. - Contenidos de archivos - Objetos y colecciones de objetos - Páginas HTML ( Resultados de rendering )‏ - Páginas HTML parciales ( Resultados de rendering )‏ - Resultados de WebServices (fb)‏ - ...
  7. 7. Nuestra experiencia: Qué almacenar - Resultados de queries - No es muy útil - Confiar en el caché de la DB (Query cache)‏ - Tips: - texto del query exacto. - ajustar la variables de configuración
  8. 8. Nuestra experiencia: Qué almacenar - Resultados parciales de queries - Desnormalizar la DB - (ej. cantidad de comentarios de un post). - Excelentes resultados - Para actualizar: - No usar triggers (escalabilidad)‏ - Mejor usar procesos batch
  9. 9. Nuestra experiencia: Qué almacenar - Páginas HTML - Proxy reverso - Páginas “muy dinámicas” -> sin caché! - entonces para qué?? ( M + T)‏ Clientes Proxy Application Servers
  10. 10. Nuestra experiencia: Qué almacenar - Páginas HTML parciales - Widgets - !!! - (cada widget provee su key, por ejemplo ts>>3, o sessionID, Idioma)‏
  11. 11. Nuestra experiencia: Dónde almacenar - RAM : No escala (tenemos cientos de app servers, al principio teníamos 4 , con tiempo de M<50ms). - IPC local ...
  12. 12. Nuestra experiencia: Dónde almacenar - SQL Memory tables (heap) - Sencillo (misma interfaz)‏ - No es tan rápido (3x 4x un query sin query cache)‏ - Memcached - Distribuido y simple. Muchos binds. - Lento vs. soluciones comerciales?

×