jueves, marzo 22, 2007

Terracotta, clustering y JBossCache

jueves, marzo 22, 2007 por Martín

Ari Zilka, fundador de terracotta y Filip Anik PMC the Apache Tomcat y Apache Tribes han publicado un interesante webinar en el blog del primero.

El webminar explica como ayudaron a uno de sus clientes a migrar su solución de Caching desde JBossCache a Terracotta y como la escalabilidad se multiplico en factores sorprendentes. Estos estudios se los hay que tomar siempre como anécdotas porque a lo mejor hay otros casos que no publican y que los resultados no son tan buenos, pero de todos modos resulta interesante. Lo mejor del webinar es que hace una introducción a la arquitectura de clustering utilizada por terracotta. Así que si queréis verlos pues os podéis saltar el primer 40% y seguir hacia adelante desde ahí :)

Saco algunas notas interesantes:
  • Server centralizado donde se registran los mapeos entre objetos en diferentes máquinas virtuales.
  • Posibilidad de congelar el estado de tu heap y rearrancar el servidor central (me entran muchas dudas sobre las consecuencias de esto).
  • Posibilidad de tener un heap virtual mucho mayor del que permite el SO (no entran en detalle)
  • El propio servidor central soporta clustering.
  • Posibilidad de persistir grafos completos de objetos o subgrafos.
  • Dos niveles de locking: read y write. Se especifican muy al estilo AOP diciendo que métodos van con "read" y cuales van con "write".
  • Se puede depurar el código que ha sido "modificado". En 2001 una serie de JSRs ya especificaron como las modificaciones de bytecode no deberían influir en los números de líneas y todo esto, de forma que sigue siendo posible depurar una aplicación cuyo bytecode ha sido cambiado.


Como nota aparte en una de las pregutnas se descubre que todos sus benchmarks se realizan sin HA (ok, dicen que algo de HA porque soportan el persistir el heap a disco y cuando rearrancan el servidor vuelven a leer el heap, pero eso para mi no es HA, lo podriamos dejar en MA :-) ). Habría que ver los números con el servidor centralizado en modo HA real.

La verdad es que es una tecnología que me gustaría probar. En nuestra empresa tenemos que migrar un sistema de Caching y estamos evaluando que herramienta utilizar. Teniendo en cuenta el precio de las alternativas, terracotta no parece mala idea, lo malo es que toda la transaccionalidad la tienes que implementar tú manualmente.

Ya veremos.

comments

2 Respuestas a "Terracotta, clustering y JBossCache"
Taylor dijo...
17:00

Martin,

I am glad to see your post about Terracotta.

I wanted to clear up one doubt you seemed to have about Terracotta. In persistence mode, Terracotta performs the same as when not in persistence mode.

I realize this sounds counterintuitive, but it is the result of where we have focused our optimization efforts. We haven't focused very much on the non-persistence mode, but have spent a great deal on the persistence mode.

Finally, regarding the failover from the active to passive server, the passive server does not actually read the entire heap back in to the backup server before becoming active. Thus the failover happens very very fast, on the order of 10s of milliseconds. Reading the heap back in to the passive server happens on demand.

Thanks for blogging about us!

Taylor Gautier
http://www.terracotta.org
http://forums.terracotta.org
tgautier - at - terracottatech.com


Martín dijo...
17:15

Very good!

Thanks for the clarifications.

Martin