oracle coherence (by leonardo torres altez)

50
Oracle Coherence Leonardo Torres Altez Solutions Architect @leonardo_ta

Upload: barcelonajug

Post on 04-Dec-2014

1.204 views

Category:

Technology


0 download

DESCRIPTION

Talk about Oracle Coherence by Leonardo Torres Altez (@leonardo_ta) inside the Barcelona Java Users's Group (12/06/2014)

TRANSCRIPT

Page 1: Oracle Coherence (by Leonardo Torres Altez)

Oracle Coherence

Leonardo Torres Altez ndash Solutions Architect

leonardo_ta

Nuestros

Servicios

3270 5250 JEE

3270 5250 NET

GUI Web

4GL COBOL

ASP JEE

JEE NET

NET host

EAI

BPM

JEE host

SOA

RIA SOA

TECNOLOGIacuteA

FORMACIOacuteN

IBM SOFTWARE

METODOLOacuteGICA

CALIDAD

PRODUCTIVIDAD

OPEN SOURCE

CONSTRUCCIOacuteN

PLUG-INS

ECLIPSE

TUNING

PRODUCTIVIDAD

OPTIMIZACIOacuteN

ARQUITECTURA

JEE NET

SOPORTE

VIRTUALIZACIOacuteN

WAS

24 X 7

TEacuteCNICA DE

SISTEMAS

GESTIOacuteN

DOCUMENTAL

Servicios de

Migracioacuten

Servicio de

Integracioacuten

Servicios de

Consultoriacutea

Servicios

Avanzados de

Arquitectura

Sistemas Servicios de

Desarrollo

Web

DESARROLLO

JEE NET PHP

PORTALES CMS

RIA REA

USABILIDAD

DISENtildeO

MAQUETACIOacuteN

OPEN SOURCE

CENTRO DE

DESARROLLO

MOacuteVILES

Agenda bull Overview

bull Coacutemo funciona Oralce Coherence

bull Montar

bull Monitorizar Operar

bull Mas funcionalidad

bull Demo

bull Preguntas

Oraclereg Javatrade are trademarks or registered trademarks of Oracle Corporation andor its affiliates

Overview - iquestQueacute es Coherence

bull Sistema con

ndash Lectura yo escritura intensiva de datos

ndash Procesamiento intenso de datos

bull Sistema requiere

ndash Bajar tiempos de respuesta

ndash Acceso transaccional

bull Sistema con problemas de

ndash Escalabilidad con su repositorio de datos ( costoso )

ndash Disponibilidad

ndash Arquitectura cada vez maacutes compleja

Overview ndash Problema

bull Escalar verticalmente

ndash Maacutes Memoria

ndash Maacutes CPU

bull Escalar horizontalmente

ndash Clustering de aplicaciones bull Web ndash session stickiness

bull Load balance

ndash Caching bull Sincronizacioacuten de la cache en el

cluster

Overview ndash Solucioacuten SIN Coherence

Overview ndash Solucioacuten cache

WEB

ORM BD

Overview ndash Solucioacuten cache

La opcioacuten mas interesante

bull Coherence como repositorio de datos ( GBs )

ndash Clustering soportando HA

ndash Sincronizacioacuten con la base de datos ( asiacutencrono )

ndash Auto Load Balance

ndash Querys Iacutendices procesos ( paralelo)

Overview

Con Coherence Sin Coherence

Overview

Overview ndash Problema

Antes Ahora

Coste memoria

Cantidad request

Cantidadprocesamiento de datos

Escalamiento de bases de datos

Alta disponibilidad de bases de datos

Soluciones Bigdata

Coacutemo funciona

bull Nodos Coherence - JVMs

bull Cluster Coherence HA ( distribuido replicado near )

bull Estructura del cacheacute ndash NamedCache

bull Primary vs Backup data

Coacutemo funciona Coherence - Terminologiacutea

bull Los datos son esparcidos entre los nodos del cluster ( JVMs )

bull Transparente al desarrollador

bull Cada miembro tiene acceso a todos los datos

bull Todas las localizaciones de datos son conocidas ndash no hace falta lookup

bull Un nodo nuevo se une automaacuteticamente

bull Balanceo de carga automaacutetico

NamedCache paises = CacheFactorygetCache(ldquopaises)

paisesput(lsquoJPNrsquolsquoJaponrsquo)

Coacutemo funciona Coherence

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

Portable public class Customer PortableProperty private int customerId PortableProperty private String name PortableProperty private String region PortableProperty private float creditLimit

NamedCache customers= hellip customersput(customerIdcustomerObj)

12

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 2: Oracle Coherence (by Leonardo Torres Altez)

Nuestros

Servicios

3270 5250 JEE

3270 5250 NET

GUI Web

4GL COBOL

ASP JEE

JEE NET

NET host

EAI

BPM

JEE host

SOA

RIA SOA

TECNOLOGIacuteA

FORMACIOacuteN

IBM SOFTWARE

METODOLOacuteGICA

CALIDAD

PRODUCTIVIDAD

OPEN SOURCE

CONSTRUCCIOacuteN

PLUG-INS

ECLIPSE

TUNING

PRODUCTIVIDAD

OPTIMIZACIOacuteN

ARQUITECTURA

JEE NET

SOPORTE

VIRTUALIZACIOacuteN

WAS

24 X 7

TEacuteCNICA DE

SISTEMAS

GESTIOacuteN

DOCUMENTAL

Servicios de

Migracioacuten

Servicio de

Integracioacuten

Servicios de

Consultoriacutea

Servicios

Avanzados de

Arquitectura

Sistemas Servicios de

Desarrollo

Web

DESARROLLO

JEE NET PHP

PORTALES CMS

RIA REA

USABILIDAD

DISENtildeO

MAQUETACIOacuteN

OPEN SOURCE

CENTRO DE

DESARROLLO

MOacuteVILES

Agenda bull Overview

bull Coacutemo funciona Oralce Coherence

bull Montar

bull Monitorizar Operar

bull Mas funcionalidad

bull Demo

bull Preguntas

Oraclereg Javatrade are trademarks or registered trademarks of Oracle Corporation andor its affiliates

Overview - iquestQueacute es Coherence

bull Sistema con

ndash Lectura yo escritura intensiva de datos

ndash Procesamiento intenso de datos

bull Sistema requiere

ndash Bajar tiempos de respuesta

ndash Acceso transaccional

bull Sistema con problemas de

ndash Escalabilidad con su repositorio de datos ( costoso )

ndash Disponibilidad

ndash Arquitectura cada vez maacutes compleja

Overview ndash Problema

bull Escalar verticalmente

ndash Maacutes Memoria

ndash Maacutes CPU

bull Escalar horizontalmente

ndash Clustering de aplicaciones bull Web ndash session stickiness

bull Load balance

ndash Caching bull Sincronizacioacuten de la cache en el

cluster

Overview ndash Solucioacuten SIN Coherence

Overview ndash Solucioacuten cache

WEB

ORM BD

Overview ndash Solucioacuten cache

La opcioacuten mas interesante

bull Coherence como repositorio de datos ( GBs )

ndash Clustering soportando HA

ndash Sincronizacioacuten con la base de datos ( asiacutencrono )

ndash Auto Load Balance

ndash Querys Iacutendices procesos ( paralelo)

Overview

Con Coherence Sin Coherence

Overview

Overview ndash Problema

Antes Ahora

Coste memoria

Cantidad request

Cantidadprocesamiento de datos

Escalamiento de bases de datos

Alta disponibilidad de bases de datos

Soluciones Bigdata

Coacutemo funciona

bull Nodos Coherence - JVMs

bull Cluster Coherence HA ( distribuido replicado near )

bull Estructura del cacheacute ndash NamedCache

bull Primary vs Backup data

Coacutemo funciona Coherence - Terminologiacutea

bull Los datos son esparcidos entre los nodos del cluster ( JVMs )

bull Transparente al desarrollador

bull Cada miembro tiene acceso a todos los datos

bull Todas las localizaciones de datos son conocidas ndash no hace falta lookup

bull Un nodo nuevo se une automaacuteticamente

bull Balanceo de carga automaacutetico

NamedCache paises = CacheFactorygetCache(ldquopaises)

paisesput(lsquoJPNrsquolsquoJaponrsquo)

Coacutemo funciona Coherence

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

Portable public class Customer PortableProperty private int customerId PortableProperty private String name PortableProperty private String region PortableProperty private float creditLimit

NamedCache customers= hellip customersput(customerIdcustomerObj)

12

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 3: Oracle Coherence (by Leonardo Torres Altez)

Agenda bull Overview

bull Coacutemo funciona Oralce Coherence

bull Montar

bull Monitorizar Operar

bull Mas funcionalidad

bull Demo

bull Preguntas

Oraclereg Javatrade are trademarks or registered trademarks of Oracle Corporation andor its affiliates

Overview - iquestQueacute es Coherence

bull Sistema con

ndash Lectura yo escritura intensiva de datos

ndash Procesamiento intenso de datos

bull Sistema requiere

ndash Bajar tiempos de respuesta

ndash Acceso transaccional

bull Sistema con problemas de

ndash Escalabilidad con su repositorio de datos ( costoso )

ndash Disponibilidad

ndash Arquitectura cada vez maacutes compleja

Overview ndash Problema

bull Escalar verticalmente

ndash Maacutes Memoria

ndash Maacutes CPU

bull Escalar horizontalmente

ndash Clustering de aplicaciones bull Web ndash session stickiness

bull Load balance

ndash Caching bull Sincronizacioacuten de la cache en el

cluster

Overview ndash Solucioacuten SIN Coherence

Overview ndash Solucioacuten cache

WEB

ORM BD

Overview ndash Solucioacuten cache

La opcioacuten mas interesante

bull Coherence como repositorio de datos ( GBs )

ndash Clustering soportando HA

ndash Sincronizacioacuten con la base de datos ( asiacutencrono )

ndash Auto Load Balance

ndash Querys Iacutendices procesos ( paralelo)

Overview

Con Coherence Sin Coherence

Overview

Overview ndash Problema

Antes Ahora

Coste memoria

Cantidad request

Cantidadprocesamiento de datos

Escalamiento de bases de datos

Alta disponibilidad de bases de datos

Soluciones Bigdata

Coacutemo funciona

bull Nodos Coherence - JVMs

bull Cluster Coherence HA ( distribuido replicado near )

bull Estructura del cacheacute ndash NamedCache

bull Primary vs Backup data

Coacutemo funciona Coherence - Terminologiacutea

bull Los datos son esparcidos entre los nodos del cluster ( JVMs )

bull Transparente al desarrollador

bull Cada miembro tiene acceso a todos los datos

bull Todas las localizaciones de datos son conocidas ndash no hace falta lookup

bull Un nodo nuevo se une automaacuteticamente

bull Balanceo de carga automaacutetico

NamedCache paises = CacheFactorygetCache(ldquopaises)

paisesput(lsquoJPNrsquolsquoJaponrsquo)

Coacutemo funciona Coherence

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

Portable public class Customer PortableProperty private int customerId PortableProperty private String name PortableProperty private String region PortableProperty private float creditLimit

NamedCache customers= hellip customersput(customerIdcustomerObj)

12

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 4: Oracle Coherence (by Leonardo Torres Altez)

Overview - iquestQueacute es Coherence

bull Sistema con

ndash Lectura yo escritura intensiva de datos

ndash Procesamiento intenso de datos

bull Sistema requiere

ndash Bajar tiempos de respuesta

ndash Acceso transaccional

bull Sistema con problemas de

ndash Escalabilidad con su repositorio de datos ( costoso )

ndash Disponibilidad

ndash Arquitectura cada vez maacutes compleja

Overview ndash Problema

bull Escalar verticalmente

ndash Maacutes Memoria

ndash Maacutes CPU

bull Escalar horizontalmente

ndash Clustering de aplicaciones bull Web ndash session stickiness

bull Load balance

ndash Caching bull Sincronizacioacuten de la cache en el

cluster

Overview ndash Solucioacuten SIN Coherence

Overview ndash Solucioacuten cache

WEB

ORM BD

Overview ndash Solucioacuten cache

La opcioacuten mas interesante

bull Coherence como repositorio de datos ( GBs )

ndash Clustering soportando HA

ndash Sincronizacioacuten con la base de datos ( asiacutencrono )

ndash Auto Load Balance

ndash Querys Iacutendices procesos ( paralelo)

Overview

Con Coherence Sin Coherence

Overview

Overview ndash Problema

Antes Ahora

Coste memoria

Cantidad request

Cantidadprocesamiento de datos

Escalamiento de bases de datos

Alta disponibilidad de bases de datos

Soluciones Bigdata

Coacutemo funciona

bull Nodos Coherence - JVMs

bull Cluster Coherence HA ( distribuido replicado near )

bull Estructura del cacheacute ndash NamedCache

bull Primary vs Backup data

Coacutemo funciona Coherence - Terminologiacutea

bull Los datos son esparcidos entre los nodos del cluster ( JVMs )

bull Transparente al desarrollador

bull Cada miembro tiene acceso a todos los datos

bull Todas las localizaciones de datos son conocidas ndash no hace falta lookup

bull Un nodo nuevo se une automaacuteticamente

bull Balanceo de carga automaacutetico

NamedCache paises = CacheFactorygetCache(ldquopaises)

paisesput(lsquoJPNrsquolsquoJaponrsquo)

Coacutemo funciona Coherence

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

Portable public class Customer PortableProperty private int customerId PortableProperty private String name PortableProperty private String region PortableProperty private float creditLimit

NamedCache customers= hellip customersput(customerIdcustomerObj)

12

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 5: Oracle Coherence (by Leonardo Torres Altez)

bull Sistema con

ndash Lectura yo escritura intensiva de datos

ndash Procesamiento intenso de datos

bull Sistema requiere

ndash Bajar tiempos de respuesta

ndash Acceso transaccional

bull Sistema con problemas de

ndash Escalabilidad con su repositorio de datos ( costoso )

ndash Disponibilidad

ndash Arquitectura cada vez maacutes compleja

Overview ndash Problema

bull Escalar verticalmente

ndash Maacutes Memoria

ndash Maacutes CPU

bull Escalar horizontalmente

ndash Clustering de aplicaciones bull Web ndash session stickiness

bull Load balance

ndash Caching bull Sincronizacioacuten de la cache en el

cluster

Overview ndash Solucioacuten SIN Coherence

Overview ndash Solucioacuten cache

WEB

ORM BD

Overview ndash Solucioacuten cache

La opcioacuten mas interesante

bull Coherence como repositorio de datos ( GBs )

ndash Clustering soportando HA

ndash Sincronizacioacuten con la base de datos ( asiacutencrono )

ndash Auto Load Balance

ndash Querys Iacutendices procesos ( paralelo)

Overview

Con Coherence Sin Coherence

Overview

Overview ndash Problema

Antes Ahora

Coste memoria

Cantidad request

Cantidadprocesamiento de datos

Escalamiento de bases de datos

Alta disponibilidad de bases de datos

Soluciones Bigdata

Coacutemo funciona

bull Nodos Coherence - JVMs

bull Cluster Coherence HA ( distribuido replicado near )

bull Estructura del cacheacute ndash NamedCache

bull Primary vs Backup data

Coacutemo funciona Coherence - Terminologiacutea

bull Los datos son esparcidos entre los nodos del cluster ( JVMs )

bull Transparente al desarrollador

bull Cada miembro tiene acceso a todos los datos

bull Todas las localizaciones de datos son conocidas ndash no hace falta lookup

bull Un nodo nuevo se une automaacuteticamente

bull Balanceo de carga automaacutetico

NamedCache paises = CacheFactorygetCache(ldquopaises)

paisesput(lsquoJPNrsquolsquoJaponrsquo)

Coacutemo funciona Coherence

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

Portable public class Customer PortableProperty private int customerId PortableProperty private String name PortableProperty private String region PortableProperty private float creditLimit

NamedCache customers= hellip customersput(customerIdcustomerObj)

12

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 6: Oracle Coherence (by Leonardo Torres Altez)

bull Escalar verticalmente

ndash Maacutes Memoria

ndash Maacutes CPU

bull Escalar horizontalmente

ndash Clustering de aplicaciones bull Web ndash session stickiness

bull Load balance

ndash Caching bull Sincronizacioacuten de la cache en el

cluster

Overview ndash Solucioacuten SIN Coherence

Overview ndash Solucioacuten cache

WEB

ORM BD

Overview ndash Solucioacuten cache

La opcioacuten mas interesante

bull Coherence como repositorio de datos ( GBs )

ndash Clustering soportando HA

ndash Sincronizacioacuten con la base de datos ( asiacutencrono )

ndash Auto Load Balance

ndash Querys Iacutendices procesos ( paralelo)

Overview

Con Coherence Sin Coherence

Overview

Overview ndash Problema

Antes Ahora

Coste memoria

Cantidad request

Cantidadprocesamiento de datos

Escalamiento de bases de datos

Alta disponibilidad de bases de datos

Soluciones Bigdata

Coacutemo funciona

bull Nodos Coherence - JVMs

bull Cluster Coherence HA ( distribuido replicado near )

bull Estructura del cacheacute ndash NamedCache

bull Primary vs Backup data

Coacutemo funciona Coherence - Terminologiacutea

bull Los datos son esparcidos entre los nodos del cluster ( JVMs )

bull Transparente al desarrollador

bull Cada miembro tiene acceso a todos los datos

bull Todas las localizaciones de datos son conocidas ndash no hace falta lookup

bull Un nodo nuevo se une automaacuteticamente

bull Balanceo de carga automaacutetico

NamedCache paises = CacheFactorygetCache(ldquopaises)

paisesput(lsquoJPNrsquolsquoJaponrsquo)

Coacutemo funciona Coherence

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

Portable public class Customer PortableProperty private int customerId PortableProperty private String name PortableProperty private String region PortableProperty private float creditLimit

NamedCache customers= hellip customersput(customerIdcustomerObj)

12

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 7: Oracle Coherence (by Leonardo Torres Altez)

Overview ndash Solucioacuten cache

WEB

ORM BD

Overview ndash Solucioacuten cache

La opcioacuten mas interesante

bull Coherence como repositorio de datos ( GBs )

ndash Clustering soportando HA

ndash Sincronizacioacuten con la base de datos ( asiacutencrono )

ndash Auto Load Balance

ndash Querys Iacutendices procesos ( paralelo)

Overview

Con Coherence Sin Coherence

Overview

Overview ndash Problema

Antes Ahora

Coste memoria

Cantidad request

Cantidadprocesamiento de datos

Escalamiento de bases de datos

Alta disponibilidad de bases de datos

Soluciones Bigdata

Coacutemo funciona

bull Nodos Coherence - JVMs

bull Cluster Coherence HA ( distribuido replicado near )

bull Estructura del cacheacute ndash NamedCache

bull Primary vs Backup data

Coacutemo funciona Coherence - Terminologiacutea

bull Los datos son esparcidos entre los nodos del cluster ( JVMs )

bull Transparente al desarrollador

bull Cada miembro tiene acceso a todos los datos

bull Todas las localizaciones de datos son conocidas ndash no hace falta lookup

bull Un nodo nuevo se une automaacuteticamente

bull Balanceo de carga automaacutetico

NamedCache paises = CacheFactorygetCache(ldquopaises)

paisesput(lsquoJPNrsquolsquoJaponrsquo)

Coacutemo funciona Coherence

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

Portable public class Customer PortableProperty private int customerId PortableProperty private String name PortableProperty private String region PortableProperty private float creditLimit

NamedCache customers= hellip customersput(customerIdcustomerObj)

12

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 8: Oracle Coherence (by Leonardo Torres Altez)

Overview ndash Solucioacuten cache

La opcioacuten mas interesante

bull Coherence como repositorio de datos ( GBs )

ndash Clustering soportando HA

ndash Sincronizacioacuten con la base de datos ( asiacutencrono )

ndash Auto Load Balance

ndash Querys Iacutendices procesos ( paralelo)

Overview

Con Coherence Sin Coherence

Overview

Overview ndash Problema

Antes Ahora

Coste memoria

Cantidad request

Cantidadprocesamiento de datos

Escalamiento de bases de datos

Alta disponibilidad de bases de datos

Soluciones Bigdata

Coacutemo funciona

bull Nodos Coherence - JVMs

bull Cluster Coherence HA ( distribuido replicado near )

bull Estructura del cacheacute ndash NamedCache

bull Primary vs Backup data

Coacutemo funciona Coherence - Terminologiacutea

bull Los datos son esparcidos entre los nodos del cluster ( JVMs )

bull Transparente al desarrollador

bull Cada miembro tiene acceso a todos los datos

bull Todas las localizaciones de datos son conocidas ndash no hace falta lookup

bull Un nodo nuevo se une automaacuteticamente

bull Balanceo de carga automaacutetico

NamedCache paises = CacheFactorygetCache(ldquopaises)

paisesput(lsquoJPNrsquolsquoJaponrsquo)

Coacutemo funciona Coherence

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

Portable public class Customer PortableProperty private int customerId PortableProperty private String name PortableProperty private String region PortableProperty private float creditLimit

NamedCache customers= hellip customersput(customerIdcustomerObj)

12

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 9: Oracle Coherence (by Leonardo Torres Altez)

La opcioacuten mas interesante

bull Coherence como repositorio de datos ( GBs )

ndash Clustering soportando HA

ndash Sincronizacioacuten con la base de datos ( asiacutencrono )

ndash Auto Load Balance

ndash Querys Iacutendices procesos ( paralelo)

Overview

Con Coherence Sin Coherence

Overview

Overview ndash Problema

Antes Ahora

Coste memoria

Cantidad request

Cantidadprocesamiento de datos

Escalamiento de bases de datos

Alta disponibilidad de bases de datos

Soluciones Bigdata

Coacutemo funciona

bull Nodos Coherence - JVMs

bull Cluster Coherence HA ( distribuido replicado near )

bull Estructura del cacheacute ndash NamedCache

bull Primary vs Backup data

Coacutemo funciona Coherence - Terminologiacutea

bull Los datos son esparcidos entre los nodos del cluster ( JVMs )

bull Transparente al desarrollador

bull Cada miembro tiene acceso a todos los datos

bull Todas las localizaciones de datos son conocidas ndash no hace falta lookup

bull Un nodo nuevo se une automaacuteticamente

bull Balanceo de carga automaacutetico

NamedCache paises = CacheFactorygetCache(ldquopaises)

paisesput(lsquoJPNrsquolsquoJaponrsquo)

Coacutemo funciona Coherence

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

Portable public class Customer PortableProperty private int customerId PortableProperty private String name PortableProperty private String region PortableProperty private float creditLimit

NamedCache customers= hellip customersput(customerIdcustomerObj)

12

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 10: Oracle Coherence (by Leonardo Torres Altez)

Con Coherence Sin Coherence

Overview

Overview ndash Problema

Antes Ahora

Coste memoria

Cantidad request

Cantidadprocesamiento de datos

Escalamiento de bases de datos

Alta disponibilidad de bases de datos

Soluciones Bigdata

Coacutemo funciona

bull Nodos Coherence - JVMs

bull Cluster Coherence HA ( distribuido replicado near )

bull Estructura del cacheacute ndash NamedCache

bull Primary vs Backup data

Coacutemo funciona Coherence - Terminologiacutea

bull Los datos son esparcidos entre los nodos del cluster ( JVMs )

bull Transparente al desarrollador

bull Cada miembro tiene acceso a todos los datos

bull Todas las localizaciones de datos son conocidas ndash no hace falta lookup

bull Un nodo nuevo se une automaacuteticamente

bull Balanceo de carga automaacutetico

NamedCache paises = CacheFactorygetCache(ldquopaises)

paisesput(lsquoJPNrsquolsquoJaponrsquo)

Coacutemo funciona Coherence

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

Portable public class Customer PortableProperty private int customerId PortableProperty private String name PortableProperty private String region PortableProperty private float creditLimit

NamedCache customers= hellip customersput(customerIdcustomerObj)

12

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 11: Oracle Coherence (by Leonardo Torres Altez)

Overview ndash Problema

Antes Ahora

Coste memoria

Cantidad request

Cantidadprocesamiento de datos

Escalamiento de bases de datos

Alta disponibilidad de bases de datos

Soluciones Bigdata

Coacutemo funciona

bull Nodos Coherence - JVMs

bull Cluster Coherence HA ( distribuido replicado near )

bull Estructura del cacheacute ndash NamedCache

bull Primary vs Backup data

Coacutemo funciona Coherence - Terminologiacutea

bull Los datos son esparcidos entre los nodos del cluster ( JVMs )

bull Transparente al desarrollador

bull Cada miembro tiene acceso a todos los datos

bull Todas las localizaciones de datos son conocidas ndash no hace falta lookup

bull Un nodo nuevo se une automaacuteticamente

bull Balanceo de carga automaacutetico

NamedCache paises = CacheFactorygetCache(ldquopaises)

paisesput(lsquoJPNrsquolsquoJaponrsquo)

Coacutemo funciona Coherence

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

Portable public class Customer PortableProperty private int customerId PortableProperty private String name PortableProperty private String region PortableProperty private float creditLimit

NamedCache customers= hellip customersput(customerIdcustomerObj)

12

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 12: Oracle Coherence (by Leonardo Torres Altez)

Coacutemo funciona

bull Nodos Coherence - JVMs

bull Cluster Coherence HA ( distribuido replicado near )

bull Estructura del cacheacute ndash NamedCache

bull Primary vs Backup data

Coacutemo funciona Coherence - Terminologiacutea

bull Los datos son esparcidos entre los nodos del cluster ( JVMs )

bull Transparente al desarrollador

bull Cada miembro tiene acceso a todos los datos

bull Todas las localizaciones de datos son conocidas ndash no hace falta lookup

bull Un nodo nuevo se une automaacuteticamente

bull Balanceo de carga automaacutetico

NamedCache paises = CacheFactorygetCache(ldquopaises)

paisesput(lsquoJPNrsquolsquoJaponrsquo)

Coacutemo funciona Coherence

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

Portable public class Customer PortableProperty private int customerId PortableProperty private String name PortableProperty private String region PortableProperty private float creditLimit

NamedCache customers= hellip customersput(customerIdcustomerObj)

12

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 13: Oracle Coherence (by Leonardo Torres Altez)

bull Nodos Coherence - JVMs

bull Cluster Coherence HA ( distribuido replicado near )

bull Estructura del cacheacute ndash NamedCache

bull Primary vs Backup data

Coacutemo funciona Coherence - Terminologiacutea

bull Los datos son esparcidos entre los nodos del cluster ( JVMs )

bull Transparente al desarrollador

bull Cada miembro tiene acceso a todos los datos

bull Todas las localizaciones de datos son conocidas ndash no hace falta lookup

bull Un nodo nuevo se une automaacuteticamente

bull Balanceo de carga automaacutetico

NamedCache paises = CacheFactorygetCache(ldquopaises)

paisesput(lsquoJPNrsquolsquoJaponrsquo)

Coacutemo funciona Coherence

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

Portable public class Customer PortableProperty private int customerId PortableProperty private String name PortableProperty private String region PortableProperty private float creditLimit

NamedCache customers= hellip customersput(customerIdcustomerObj)

12

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 14: Oracle Coherence (by Leonardo Torres Altez)

bull Los datos son esparcidos entre los nodos del cluster ( JVMs )

bull Transparente al desarrollador

bull Cada miembro tiene acceso a todos los datos

bull Todas las localizaciones de datos son conocidas ndash no hace falta lookup

bull Un nodo nuevo se une automaacuteticamente

bull Balanceo de carga automaacutetico

NamedCache paises = CacheFactorygetCache(ldquopaises)

paisesput(lsquoJPNrsquolsquoJaponrsquo)

Coacutemo funciona Coherence

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

Portable public class Customer PortableProperty private int customerId PortableProperty private String name PortableProperty private String region PortableProperty private float creditLimit

NamedCache customers= hellip customersput(customerIdcustomerObj)

12

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 15: Oracle Coherence (by Leonardo Torres Altez)

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

Portable public class Customer PortableProperty private int customerId PortableProperty private String name PortableProperty private String region PortableProperty private float creditLimit

NamedCache customers= hellip customersput(customerIdcustomerObj)

12

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 16: Oracle Coherence (by Leonardo Torres Altez)

Coacutemo funciona Coherence ndash Portable Object

bull Portable Object es el tipo de serializacioacuten mas raacutepida y efectiva para Coherence

bull Tamantildeo miacutenimo serializado

bull Optimo para la red

bull Extraccioacuten de propiedades cuando esta serializado

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 17: Oracle Coherence (by Leonardo Torres Altez)

bull Si un nodo deja de funcionar se usa el backup de los datos que se encuentra en otro nodo

bull Coherence redistribuye los datos en los nodos buenos

String japon = paisesget(lsquoJPNrsquo)

Coacutemo funciona Coherence

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 18: Oracle Coherence (by Leonardo Torres Altez)

bull Write-Behind acepta modificaciones a datos directamente en el Grid Coherence

bull Las modificaciones son luego escritas asiacutencronamente al repositorio de datos ( ej base de datos ) viacutea una cola opcionalmente despueacutes de un retardo

bull Todos los write-behind de datos son siacutencronos y manejados con redundancia haciendo la operacioacuten resistente a fallos

Coacutemo funciona Coherence ndash Write Behind

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 19: Oracle Coherence (by Leonardo Torres Altez)

bull Acceso a los repositorios de datos mediante el Data Grid

bull Operaciones Read Write son siempre manejadas por el nodo que maneja esos datos

bull Los accesos concurrentes son combinados reduciendo los accesos a base de datos

bull Write-Through mantiene los datos en memoria y base de datos sincronizada

Coacutemo funciona Coherence Read-Through amp Write-Through

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 20: Oracle Coherence (by Leonardo Torres Altez)

Coacutemo funciona Coherence - Filtros Queries

bull Se pueden encontrar los datos no solo por la clave

ndash Se puede usar el API de filtros

select homeAddressstate age count() from ContactInfoCache group by homeAddressstate age

Se puede hacer queries y agregaciones usando Coherence Query Languaje CQL

Filter filter = new EqualsFilter(getIdgetAccountId123)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 21: Oracle Coherence (by Leonardo Torres Altez)

Coacutemo funciona Coherence - Processors

bull Coherence tambieacuten es sistema de procesamiento en paralelo

class StockSplitProcessor extends AbstractProcessor Object process(Entry entry) Stock stock = (Stock)entrygetValue() stockquantity = 2 entrysetValue(stock) return null

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 22: Oracle Coherence (by Leonardo Torres Altez)

bull En topologiacutea distribuida cada nodo de Coherence guarda una parte de los datos primary y una parte del backup

bull Alta disponibilidad y tolerancia a fallos 100

bull Vista loacutegica del 100 de datos desde cualquier nodo

Coacutemo funciona Coherence - Distribuido

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 23: Oracle Coherence (by Leonardo Torres Altez)

Todos los nodos verifican la salud de otro nodo

Si un nodo no responde se retira del cluster

La data primaria y backup se redistribuye entre los nodos activos

Si un nodo nuevo se une al cluster igualmente se redistribuyen los datos

Coacutemo funciona Coherence ndash Health check

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 24: Oracle Coherence (by Leonardo Torres Altez)

bull Coherence permite registrar el intereacutes en un elemento de cache especifico inserts updates deletes

bull No es necesario hacer pool a Coherence para ver si un dato ha cambiado

Coacutemo funciona Coherence ndash Cache events

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 25: Oracle Coherence (by Leonardo Torres Altez)

bull Las operaciones en el grid son transaccionales

bull Se garantiza la consistencia de los datos en memoria

bull La combinacioacuten de escalabilidad y rendimiento hace Oracle Coherence oacuteptima para aplicaciones con grandes cargas transaccionales

Coacutemo funciona Coherence - Transacciones

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 26: Oracle Coherence (by Leonardo Torres Altez)

Coacutemo funciona Coherence - Transacciones Connection con = new DefaultConnectionFactory() createConnection(TransactionalCache) consetAutoCommit(false) try OptimisticNamedCache cache = congetNamedCache(MyTxCache) cacheinsert(key value) cacheinsert(key2 value2) concommit() catch (Exception e) conrollback() throw e finally conclose()

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 27: Oracle Coherence (by Leonardo Torres Altez)

Coacutemo funciona Coherence Topologiacutea de Cache Distribuido vs Replicado

Distribuido Replicado

Escalable Mejor menos memoria

Se necesita mas memoria

Updates poca latencia

Si No se tiene que recorrer todos los nodos Mientras mas nodos toma mas tiempo

Lecturas de un dato Maacuteximo dos conexiones

Una conexioacuten no latencia

Lecturas de colecciones de datos ( CQL )

N conexiones Una conexioacuten no latencia

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 28: Oracle Coherence (by Leonardo Torres Altez)

Montar Coherence

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 29: Oracle Coherence (by Leonardo Torres Altez)

1 definir el sizing del cluster

ndash Cuanto heap en total (GBs) bull Cuanta heap cada JVM

ndash Que maquinas lo conforman bull host1puerto1 host2puerto2

ndash Cuanto CPU por maquina

Montar Coherence

ltcoherence gt ltcluster-configgt ltmember-identitygt ltcluster-namegttheclusterltcluster-namegt ltmember-identitygt ltmulticast-listenergt ltaddressgt224360ltaddressgt ltportgt9100ltportgt lttime-to-livegt0lttime-to-livegt ltmulticast-listenergt ltcluster-configgt ltcoherencegt

tangosol-coherence-overridexml

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 30: Oracle Coherence (by Leonardo Torres Altez)

2 definir las caches del cluster

ndash Replicado distribuido near

ndash Tamantildeo MB de cada cache

ndash Definir los clientes ( Ejemplo JEE contenedor Web )

Montar Coherence

ltcache-configgt ltcaching-scheme-mappinggt ltcache-mappinggt ltcache-namegtpaisesltcache-namegt ltscheme-namegtmy-distributedltscheme-namegt ltcache-mappinggt ltcaching-scheme-mappinggt ltcaching-schemesgt ltdistributed-schemegt ltscheme-namegtmy-distributedltscheme-namegt ltdistributed-schemegt ltcaching-schemesgt ltcache-configgt

coherence-cache-configxml

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 31: Oracle Coherence (by Leonardo Torres Altez)

3 definir los objetos serializados

ndash Comuacuten POF

ndash Serializacion custom

Montar Coherence

ltpof-configgt ltuser-type-listgt ltuser-typegt lttype-idgt1002lttype-idgt ltclass-namegtcomdomainPais ltclass-namegt ltuser-typegt ltuser-type-listgt ltpof-configgt

pof-configxml

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 32: Oracle Coherence (by Leonardo Torres Altez)

4 definir carga sincronizacioacuten pruebas y tuning

bull La carga debe ser raacutepida

bull Definir meacutetodo de sincronizacioacuten con la base de datos

bull Pruebas tuning

ndash Xmx hilos caches

ndash overload de memoria

Montar Coherence

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 33: Oracle Coherence (by Leonardo Torres Altez)

Monitorizar Operar

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 34: Oracle Coherence (by Leonardo Torres Altez)

Monitorizar Operar Coherence

bull Monitorizar expone beans JMX

ndash Oracle Enterprise Manager

ndash Visual VM

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 35: Oracle Coherence (by Leonardo Torres Altez)

Monitorizar Operar Coherence

bull Consola Administracioacuten Node Manager

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 36: Oracle Coherence (by Leonardo Torres Altez)

Mas funcionalidad

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 37: Oracle Coherence (by Leonardo Torres Altez)

Mas funcionalidad ndash Coherence Extend

bull Para acceder desde C++ NET

bull Acceder a muacuteltiples clusters desde un solo proceso

bull Acceder a un cluster desde muacuteltiples clientes ( Apps )

bull Balanceo de carga

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 38: Oracle Coherence (by Leonardo Torres Altez)

Mas funcionalidad ndash Backup asiacutencrono

bull Mejora performance

bull Cuando no se necesita consistencia

ltasync-backupgttrueltasync-backupgt

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 39: Oracle Coherence (by Leonardo Torres Altez)

Mas funcionalidad ndash Rolling restart upgrade

bull Reiniciar cada servidor en secuencia uacutetil cuando se requiere hacer un reinicio de todo el cluster sin perder alta disponibilidad

bull Viacutea scripts Jython WLST

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 40: Oracle Coherence (by Leonardo Torres Altez)

Mas funcionalidad ndash Hot cache

bull Mantiene sincroniacutea de otros cambios en base de datos viacutea Oracle Golden Gate

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 41: Oracle Coherence (by Leonardo Torres Altez)

Mas funcionalidad ndash GAR

bull Despliegue de empaquetado GAR en todo el cluster Coherence ( Ejem usando consola administracioacuten )

bull Puede ser incluido dentro de un EAR ( Weblogic )

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 42: Oracle Coherence (by Leonardo Torres Altez)

Mas funcionalidad ndash REST

bull Retorna formato XML y JSON

bull JAXB JAX-RS (Jersey) Grizzly and Jackson (Apache)

bull Usando un Servlet Container o un servidor web embebido

bull GETPUTDELETE cache-namekey

bull Ejemplo

ndash GET httphostportCoherenceWebrestDepartment100

ndash GET httphostportCoherenceWebrestDepartmentlocation1700

ltrestgt ltresourcesgt ltresourcegt

ltcache-namegtDepartmentltcache-namegt ltkey-classgtjavalangIntegerltkey-classgt ltvalue-classgtnlamismodelhrDepartmentltvalue-classgt ltquerygt ltnamegtlocation1700ltnamegt ltexpressiongtlocationId is 1700ltexpressiongt ltquerygt ltresourcesgt

ltrestgt

coherence-rest-configxml

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 43: Oracle Coherence (by Leonardo Torres Altez)

DEMO

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 44: Oracle Coherence (by Leonardo Torres Altez)

Demo - Grafo de red social

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 45: Oracle Coherence (by Leonardo Torres Altez)

1 149 000 registros de nodos

2 Conexiones bidireccionales entre los nodos estilo twitter

3 Base de Datos MySQL vs Coherence

Preguntas

bull Cuantas conexiones tiene en promedio determinado grupo

bull Cual es la edad miacutenima en determinado grupo

bull Cuantas pasos de conexioacuten promedio hay entre dos nodos aleatorios

Demo - Grafo de red social

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 46: Oracle Coherence (by Leonardo Torres Altez)

Demo - Grafo de red social

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 47: Oracle Coherence (by Leonardo Torres Altez)

Demo - Grafo de red social

Diagrama de clases desnormalizado

Diagrama EER

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 48: Oracle Coherence (by Leonardo Torres Altez)

bull 500 hilos 10 segundos 40 veces

bull Cada hilo persona aleatoria sus datos y los de todos sus followers

bull Resultados Coherence

bull Resultados Mysql

Demo - Grafo de red social

Preguntas

Page 49: Oracle Coherence (by Leonardo Torres Altez)

Preguntas

Page 50: Oracle Coherence (by Leonardo Torres Altez)