Cache en la Web

  • 935 views
Uploaded on

Estrategias de Cache en la web

Estrategias de Cache en la web

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
935
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Estrategias de Cache Matías Alejo García Confronte.com
  • 2. Cache Es una memoria temporal de rápido acceso , donde se guardan valores de uso frecuente .
  • 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. 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. 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. 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. 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. 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. 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. Nuestra experiencia: Qué almacenar - Páginas HTML parciales - Widgets - !!! - (cada widget provee su key, por ejemplo ts>>3, o sessionID, Idioma)‏
  • 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. 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?