Por Deiby Gómez
Publicado en mayo 2013
Índice de contenidos
1. Introducción a Oracle Coherence
2. Topología de Replicación, ventajas y desventajas
3. Topología distribuida, ventajas y desventajas
4. Topología Near Cache, ventajas y desventajas
Introducción a Oracle Coherence
Oracle Coherence es un producto dentro de Fusion Middleware que permite crear redes de datos en memoria para agilizar las lecturas/escrituras de nuestros objetos, esto sin descuidar la confiabilidad, la accesibilidad y la seguridad de los datos. Coherence también es una solución escalable, la capacidad de memoria puede llegar a ser tan grande como se requiera, solo es necesario agregar más nodos a la configuración.
¿La Disponibilidad es importante?
El tema de la disponibilidad se subestima en la vida real, esto es un error. La disponibilidad de nuestros datos debe ser un tema de mucha importancia. Podemos establecer la disponibilidad como un “todo”, a esto le llamaremos: La disponibilidad del Sistema.
La disponibilidad del sistema puede ser definido como el producto de la disponibilidad de cada componente que está dentro de nuestro sistema.
DS=DC1*DC2*DC3*….*DCn
Donde: DS=Probabilidad de Disponibilidad del Sistema
DC1=Probabilidad de Disponibilidad del Componente 1
DCn=Probabilidad de Disponibilidad del Componente N
Por ejemplo, si tuviéramos los siguientes componentes:
Y cada uno de los anteriores componentes tuviera una disponibilidad del 99%, entonces se espera que la Disponibilidad del Sistema (DS) sea la siguiente:
DS=0.99*0.99*0.99=0.97=97%
Si usted considera que su empresa puede tolerar un sistema con disponibilidad del 97%, está bien. Sin embargo, debe tomar en cuenta que el 97% de Disponibilidad implica tener 11 días al año nuestro sistema sin servicio. ¿Acepta su empresa 11 días al año sin servicio?
Existen dos maneras de mejorar la disponibilidad de nuestro sistema:
1. Desacoplar componentes: Para tener componentes aislados dentro de nuestro sistema, de tal manera que si un componente falla no afecte a los demás y en consecuencia no afecte el sistema.
Coherence logra tener componentes desacoplados introduciendo el concepto de operaciones asincrónicas. Esto permite que aunque la capa de datos este inaccesible coherence seguirá aceptando operaciones de lectura/escritura. Las escrituras las irá encolando de tal manera que cuando la capa de datos este nuevamente disponible se realicen las operaciones sobre ella. Esto trae como beneficio que una falla de Base de datos sea totalmente transparente al usuario final.
Sin embargo, hay que tomar en cuenta los siguientes puntos:
2. Redundancia en los componentes: Si usted quiere alcanzar una alta disponibilidad de manera síncrona, la única alternativa es aumentar la redundancia de los componentes.
Sin embargo, la redundancia no es suficiente para lograr una disponibilidad del 100%. Para comprobar esto calculemos la probabilidad de falla de todo un conjunto de componentes redundantes:
FCC=FC1*FC2*…*FCN.
Donde FCC=Probabilidad de Falla del Conjunto de Componentes redundantes.
FC1=Probabilidad de Falla del Componente 1.
FCN=Probabilidad de Falla del Componente N.
Haciendo uso del dato “Disponibilidad de un componente” podemos calcular su probabilidad de Falla:
FC=1-DC
Donde FC=Probabilidad de Falla de un Componente.
DC=Probabilidad de Disponibilidad de un Componente.
Por ejemplo, nuestro componente Servidor de Aplicaciones tiene una disponibilidad del 99% entonces su Probabilidad de Falla es:
FC=1-0.99=0.01
Si a este componente le agregamos un Servidor de Aplicaciones de tal manera que nuestro componente ahora sea redundante, tendríamos la siguiente probabilidad de Disponibilidad:
DC=1-(0.01*0.01)=1-0.0001=0.9999=99.99%
Si a cada uno de los 2 componentes restantes que tenemos en nuestro Sistema (Servidor Web y Servidor de Bases de Datos) le agregamos un servidor de tal manera que sean ahora redundantes, la disponibilidad de cada componente quedaría de la siguiente manera:
Entonces la disponibilidad de todo nuestro Sistema quedaría de la siguiente manera:
DS=0.9999*0.9999*0.9999=0.9997=99.97%
Y la probabilidad de falla de todo nuestro Sistema quedaría así:
FS=1-0.9997=0.0003=0.03%
Conclusión:
Reestructuro mi pregunta anterior: ¿Acepta su empresa 2.6 horas al año sin servicio?
2.6 horas al año sin servido es un dato relativamente aceptable, sin embargo ¡no es 100% de Disponibilidad!
Por intuición vemos que el 100% de Disponibilidad lo vamos alcanzando proporcionalmente a la redundancia que se le dé a cada componente, pero ahí ya tendríamos que involucrar el factor costo. ¿Existe alguna alternativa que nos alivié la compra de N componente redundantes? ¡Sí, Oracle Coherence!
Arquitectura de Oracle Coherence:
Oracle Coherece trabaja con una arquitectura de “Cluster”.
Esta definición ya es muy conocida, sin embargo, a continuación expongo la definición formal:
Cluster: Es un conjunto de componentes interconectados entre sí trabajando como uno solo.
Un cluster de Oracle Coherence está formado por varios “servidores coherence” que no son más que instancias de maquinas virtuales java.
Cada una de estos servidores puede alojar datos de varias maneras las cuales dependen de los siguientes principales factores:
Dependiendo de las respuestas que se les dé a cada una de las anteriores preguntas se puede elegir entre las siguientes topologías básicas de Coherence:
NOTA: las 3 topologías presentadas a continuación no son las únicas de las cuales dispone Oracle Coherence, las topologías son muy personalizables.
1. Topología de Replicación
2. Topología Particionada
3. Near-Cache
En la siguiente parte del articulo “Topologías de Coherence Parte 2” estaré tratando la topología de Replicación, ventajas y desventajas.
Publicado por Deiby Gómez.