may 2010 - infinispan

20

Upload: jbug-italy

Post on 05-Dec-2014

1.960 views

Category:

Technology


2 download

DESCRIPTION

Infinispan - Sanne Grinovero29/05/2010 - Jug Sardegna - JBoss User Group Roma

TRANSCRIPT

Page 1: May 2010 - Infinispan
Page 2: May 2010 - Infinispan

Non puoi evitare le Cloud

● Le cloud in ogni forma● Come SaaS, PaaS, IaaS

● Ovunque● Pubbliche: Amazon, Google, GoGrid, RackSpace● Private: Eucalyptus, VMWare, IBM

● Datacenter tradizionali● Mercato di nicchia● Le cloud come mainstream

Page 3: May 2010 - Infinispan

Dati sulla cloud

● Nuovi pattern architetturali● Le macchine sono stateless, effimere● IP dinamici● Servizi dinamici

● Database sono problematici● Storage tradizionali non si adattano alla cloud

● Scalabilità● I database sono ancora il bottleneck● ...e single point of failure!

Page 4: May 2010 - Infinispan

Soluzione: Data Grids!

● Data Grids sono perfetti per le cloud:● Fortemente scalabili● Nessun single point of failure● Si adatta ai nodi effimeri● Latenza molto bassa

● Data Grids:● Amazon SimpleDB usa Dynamo● Infinispan, etc..● Altre offerte commerciali e open source

Page 5: May 2010 - Infinispan

Soluzione: Data Grids!

● Veloci!● Latenza minima, uso minimale dei dischi

● La memoria è due ordini di grandezza più veloce

● Accesso concorrente ottimizzato● IO su disco è sempre un impedimento alla

concorrenza● La memoria è più adatta all'uso concorrente

Page 6: May 2010 - Infinispan

● Highly scalable data grid platform● 100% open source licensed (LGPL)● Based on some JBoss Cache code

● But mostly all-new!

● JBoss Cache is a clustered caching library● Infinispan is a data grid platform

● JBoss Cache uses a tree-structured API● Infinispan is a Map. Like JSR-107’s JCACHE

Page 7: May 2010 - Infinispan

Complicato?

Page 8: May 2010 - Infinispan

Tutti conoscono Map<?,?>

CacheManager cm = new DefaultCacheManager("infin-cfg.xml");Cache cache1 = cm.getCache("cache1");

Map distMap = cache1;distMap.put( "chiave", "valore" );distMap.get( "altraChiave" );

ConcurrentMap concurrentDistMap = cm.getCache("cache2");concurrentDistMap.replace( "k", "atteso", "nuovo" );

Page 9: May 2010 - Infinispan

Map, arricchito

CacheManager cm = new DefaultCacheManager("infi-cfg.xml");Cache cache1 = cm.getCache("cache1");

cache1.addListener( arg0 );

cache1.putAsync( arg0, arg1 );cache1.removeAsync( arg0 );

cache1.startBatch();

AdvancedCache advancedCache = cache1.getAdvancedCache();advancedCache.withFlags( Flag.SKIP_REMOTE_LOOKUP ) .put( arg0, arg1 );

Page 10: May 2010 - Infinispan

Caratteristiche

● Strutture interne efficienti● CAS totale● Synchronized assente● Contenitori di dati naturalmete ordinate

– Molto efficiente per gestire policy di eviction

● Serializzazione ottimizzata● JBoss Marshalling

– payloads minimali + poolable streams

Page 11: May 2010 - Infinispan

Ereditati da JBoss Cache

● JTA transactions

● Replicated data structure

● Eviction, cache persistence

● Notifications and eventing API

● JMX reporting

● Fine-grained replication

● MVCC locking

● Non-blocking state transfer techniques

● Query API

● Custom (non-JDK) marshalling

Page 12: May 2010 - Infinispan

Nuove funzioni

● Consistent hash based data distribution● Map API semplicissima (JSR-107 compliant)● modulo compatibile memcached Client/server ● REST API● Non limitata a piattaforme JVM● Console di management basata su JOPR● Distributed executors

● Map/reduce programming model made easy!

Page 13: May 2010 - Infinispan

Cache distribuita

● Consistent hash based data distribution● Permette di scalare su cluster grandi● Test in corso su cluster di migliaia di nodi

● Cache locale “L1” per letture migliorate● Invalidazione distribuita

● Ribilanciamento dinamico● Non presenta single-point-of-failure

Page 14: May 2010 - Infinispan

Memoria condivisa

Page 15: May 2010 - Infinispan

Storage esterno

Page 16: May 2010 - Infinispan

Storage esterno

Page 17: May 2010 - Infinispan

Configurazioni Avanzate

<?xml version="1.0" encoding="UTF-8"?><infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:config:4.0 http://www.infinispan.org/schemas/infinispan-config-4.0.xsd" xmlns="urn:infinispan:config:4.0" />

<infinispan />

Page 18: May 2010 - Infinispan

Esempio: Scarlet

Configurazioni Avanzate

Page 19: May 2010 - Infinispan

Come partecipare?

● Provalo!● Segnala problemi: non solo nel codice● Suggerisci nuove feature● Testa i tuoi casi d'uso particolari

● E raccontaceli

● Collabora con lo sviluppo● Sviluppo open e democratico● Priorità discusse pubblicamente● Già alcuni committer “core” esterni a Red Hat

Page 20: May 2010 - Infinispan