Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Infinispan
1.
2. 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
3. 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!
4. 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
5. 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
6. ● 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
10. 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
11. 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
12. 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!
13. 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
19. 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