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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Preguntas
Top Related