Cache Distribuida Ayudante - German Rende. Front End 4 Servidores Base de Datos 1 Servidor Back End...

Post on 03-Jan-2015

6 views 3 download

transcript

Cache DistribuidaAyudante - German Rende

Front End4 Servidores4 Servidores

Base de Datos1 Servidor1 Servidor

Back End4 Servidores4 Servidores

SistemaSistemaGranja de ServidoresGranja de Servidores

Clientes Concurrentes

Cuello de BotellaCaída abrupta de la performance del sistema en horas pico

Cuello de BotellaCaída abrupta de la performance del sistema en horas pico

Base de Datos

Cliente

CacheCache

Clúster de almacenamiento de la CacheClúster de almacenamiento de la Cache

SistemaSistemaSistemaSistema

Nodo LocalNodo Local

Nodos RemotosNodos Remotos

Configuraciones Posibles• Local Cache• Replicated Cache• Optimized Cache• Partitioned Cache

Java 1.6

Eclipse / NetBeans

Maven

PostgreSQL 8.3

Hibernate 3.2.6

Junit

Google-Guice

Java Remote Method Invocation (RMI)

Minimizar el acoplamiento entre los distintos componentes

Permitir la reutilización de componentes

Facilidad para modificar la configuración y extender / cambiar funcionalidad

Facilidad de probar los componentes en forma aislada

Destacados•Brokering entre nodo y cliente mediante RMI•Modelo independiente del protocolo de comunicación

Destacados•Interoperativilidad entre procesos heterogéneos•Abstracción de la localización física del cliente, nodos, loggers y storages

Destacados•Diseño distribuido para Nodos, Clientes y Loggers•Bajo acoplamiento (uso intensivo de interfaces)

distribuida

local

item

Destacados•La clase Item es la unidad de almacenamiento•Serialización binaria de los objetos

Destacados•Patrón Factory•Patrón Proxy•Dependencias a través de interfaces

Destacados•Segregación de interfaces•Patrón Factory•Patrón Strategy

node-rmi

sync

Destacados•Patrón Composite•Segregación de interfaces•Template Methods

storage

storage listener

Cada Listener decide cuando lanzar el Garbage Collector de acuerdo a distintas condiciones

garbage collector

Cache 1

Clúster

Cache 2

Clúster

Item1

Item1 Item2

Cache 1

Cache 2Item2

Item2

Clúster

Item1Item2

Item2

Cache 1

Cache 2

Item2

C1

Clúster

N2

N1 N3

C2

N4