En
la parte 1 de este artículo de topologías vimos la importancia de tener
altamente disponible nuestras aplicaciones, se realizaron algunas formulas para
demostrar qué tan disponible es nuestro sistema. En esta segunda parte se
tratará las ventajas y desventajas de una de las topologías básicas de Oracle
Coherence: Topología de Replicación.
Topología
de Replicación:
La topología
de replicación almacena cada objeto que se envía a un determinado servidor de
Coherence, en todos los demás servidores, de tal manera que cada cliente
pueda acceder cualquier objeto de manera local, logrando con esto una latencia
completamente nula.
En la siguiente imagen se puede
observar que cada uno de los objetos (A,B,C,D) están replicados en cada uno de
los servidores de Coherence. Y que cada lectura (get) está siendo realizada de
manera local:
La
latencia nula para un determinado objeto se logra después de su segunda
lectura. Lo que sucede es que cuando un objeto es enviado al Cache de
Coherence, se “serializa” y luego se
manda a escribir a los N servidores de Coherence que existan en el cluster.
Cada uno de los servidores recibe el objeto serializado y así lo mantiene hasta que reciba una primer solicitud
de lectura, entonces deserializa el objeto y lo mantiene así para las
siguientes lecturas, es ahí cuando se alcanza la latencia nula. Entonces podríamos
decir que la primera lectura de un objeto implica un costo pequeño: El costo de
deserializar el objeto.
Las
escrituras en una topología de replicación no son tan eficientes como las
lecturas, pues cada escritura implica N-1 escrituras adicionales, donde N es el
número de servidores Coherence que se tienen en el cluster. Estas escrituras
son necesarias realizarlas para que la información esté totalmente replicada,
Coherence no termina una escritura
completamente hasta que no haya sido escrita en los demás servidores.
En la siguiente imagen se ve que
cuando se escribe el objeto A en el servidor 1, éste se replica a los 3
servidores restantes:
De
esto podemos concluir que el rendimiento de las escrituras decaerá conforme se aumente el número
de servidores Coherence que se tenga en el cluster.
Sin
embargo, el estar manteniendo replicados todos los objetos en todos los
servidores nos favorece en cuanto a Disponibilidad. La disponibilidad es
directamente proporcional al número de servidores que se incluyan en el
cluster. Cuando un servidor falla, únicamente el servidor que escribe un
determinado objeto replicará el objeto a todos los demás servidores menos el
que no está disponible. Cuando el servidor que falló vuelve a estar disponible,
los servidores lo vuelven a tomar en cuenta para replicar los objetos.
En la siguiente imagen el servidor 2
ha dejado de estar disponible. Por lo tanto las escrituras del objeto A solo se
realizan a los servidores 3 y 4.
En esta
topología también se tiene la limitante
de la suma del tamaño de todos los objetos dentro de un servidor no debe
sobrepasar el tamaño del servidor más pequeño, esto es porque todos los datos deben
ser mantenidos en todos los servidores. Por ejemplo, si se tienen los
siguientes tamaños para nuestros 4 servidores:
JVM1 = 3GB.
JVM2 = 3GB.
JVM3 = 1GB.
JVM4 = 3GB.
Cada
uno de los servidores solo podrá soportar una cantidad de 1GB en objetos,
aunque los servidores 1,2 Y 4 tengan 3GB. Por lo tanto, si lo que nos importa
es la disponibilidad de nuestros objetos y el tamaño total de los objetos no
excede 1GB nuestra configuración estaría bien. Sin embargo, si se desea tener
un total de objetos que exceda 1GB podríamos sacrificar un poco de
Disponibilidad y extraer el tercer servidor, dejando únicamente 3 servidores
(JVM1, JVM2 y JVM4).
Conclusión:
- Las lecturas son locales, una latencia nula.
- Cada escritura requiere N-1 escrituras adicionales. Donde N es el número de servidores en nuestro cluster.
- La Disponibilidad es tan buena como número de servidores se tenga en el cluster.
- El tamaño del Cache se limita al tamaño del servidor más pequeño.
- En esta topologia la Disponibilidad es inversamente proporcional al rendimiento de las lecturas.
Parte 3: Topologias de Coherence Parte 3
Articulo Completo listo para descargarse en el siguiente link: https://www.dropbox.com/s/
No hay comentarios:
Publicar un comentario