20
Diapositiva: 1 análisis de redes sociales, twitter, xing, facebook, dinamic area, listening platform, plataforma de escucha, twitter, social media, tuenti, facebook, radian6, polaridad, detección de insultos, listening platform, redes sociales, neurona, listening platform, facebook, análisis, text mining, twitter, linkedin, youtube, social media, redes sociales, social media, comunity manager, listening, listening Charla-taller sobre caché en Hibernate- Spring

DinamicArea - Charla-taller sobre caché en Hibernate-Spring

Embed Size (px)

Citation preview

Diapositiva: 1

análisis de redes sociales, twitter, xing, facebook, dinamic area, listening platform, plataforma de escucha, twitter, social media, tuenti, facebook, radian6, polaridad, detección de insultos, listening platform, redes sociales, neurona, listening platform, facebook, análisis, text mining, twitter, linkedin, youtube, social media, redes sociales, social media, comunity manager, listening, listening

Charla-taller sobre caché en Hibernate-

Spring

Diapositiva: 2

Índice

0 - Ín

dic

e

1

•Introducción y objetivos

2

•Concepto de caché

3

•Caché en aplicaciones

4

•Caché en Hibernate

5

•Anotaciones para Spring

Diapositiva: 3

Introducción y ObjetivosLocalizar consultas de datos

cacheables

Saber configurar EhCache

Saber utilizar anotaciones para EhCache en Spring

1 –

Intr

od

uc

ció

n y

Ob

jetiv

os

Diapositiva: 4

Jerarquía de memoria

2 –

Co

nc

ep

to d

e c

ac

Diapositiva: 5

¿Qué es una caché?

Buffer especial de los ordenadores

Memoria más rápida que la RAM

Menor capacidad que la RAM

2 –

Co

nc

ep

to d

e c

ac

Diapositiva: 6

Políticas de caché• Por demanda

• Con prebúsquedaPolítica de extracción

• Aleatoria• FIFO• LRU• LFU

Política de reemplazo

2 –

Co

nc

ep

to d

e c

ac

Diapositiva: 7

Caché en aplicaciones

3 –

Ca

ch

é e

n a

plic

ac

ion

es

Diapositiva: 8

Almacenamiento clave-valor3

– C

ac

en

ap

lica

cio

ne

s

Diapositiva: 9

Condiciones de caché

Datos elaborados tras una costosa ejecuciónConsulta pesada de

BD Cálculo elaborado

Datos poco cambiantes en el tiempo

Metadatos de aplicación

Muchas peticiones de los mismos datos

Usuarios Otros procesos

3 –

Ca

ch

é e

n a

plic

ac

ion

es

Diapositiva: 10

Primer y segundo nivelCaché de primer

nivel

• Corta duración

• Válida durante la transacción

• Manejada por defecto

Caché de segundo nivel

• Válido entre transacciones

• Persistencia en memoria

• Seleccionar proveedor: EhCache

4 –

Ca

ch

é e

n H

ibe

rn

ate

Diapositiva: 11

Niveles de aislamientoTransactional• Aislamiento hasta repeatable read• Nivel más estricto. • Clusters

Read-write• Mantiene un aislamiento hasta el nivel de commited.

Nonstrict read-write• No garantía de consistencia• Datos muy cambiantes• Datos no críticos

Read-only• Datos que nunca cambian

4 –

Ca

ch

é e

n H

ibe

rn

ate

Diapositiva: 12

Configuración y uso Modificar hibernate.cfg.xml o data-access-config.xml:

<prop key="hibernate.cache.use_second_level_cache">true</prop> --><prop key="hibernate.cache.use_query_cache">true</prop><prop key="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</prop>

Agregar anotaciones a las clases cacheables:

@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)

Utilizar setCacheable al hacer un criteria (para Query caché)

4 –

Ca

ch

é e

n H

ibe

rn

ate

Diapositiva: 13

ehcache.xml diskstore path

cache name eternal maxElementsInMemory overfloToDisk timeToLiveSeconds timeToIdleSeconds diskPersistent memoryStoreEvictionPolicy

4 –

Ca

ch

é e

n H

ibe

rn

ate

Diapositiva: 14

web-application-config.xml

Esquemas: xmlns:ehcache="http://ehcache-spring-annotations.googlecode.com/svn/schema/

ehcache-springxsi:schemaLocation=http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.1.xsd

Annnotation-driven:<ehcache:annotation-driven cache-manager="ehCacheManager" />

CacheManager:<bean id="ehCacheManager"

class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"/>

Generador de claves de caché (para anotaciones):<bean id="cacheKeyGenerator"

class="com.googlecode.ehcache.annotations.key.HashCodeCacheKeyGenerator" autowire="byType" />

4 –

Ca

ch

é e

n H

ibe

rn

ate

Diapositiva: 15

pom.xml

4 –

Ca

ch

é e

n H

ibe

rn

ate

Diapositiva: 16

@Cacheable

5 –

An

ota

cio

ne

s p

ar

a S

pr

ing

Diapositiva: 17

@PartialCacheKey

5 –

An

ota

cio

ne

s p

ar

a S

pr

ing

Diapositiva: 18

@KeyGenerator

HashCodeCacheKeyGenerator

ListCacheKeyGenerator

StringCacheKeyGenerator

MessageDigestCacheKeyGenerator

5 –

An

ota

cio

ne

s p

ar

a S

pr

ing

Diapositiva: 19

@TriggersRemove

5 –

An

ota

cio

ne

s p

ar

a S

pr

ing

Diapositiva: 20

Gracias por su atención