Infinispan
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Infinispan

on

  • 1,390 views

quick introduction to Infinispan, JBug Roma and Jug Sardegna

quick introduction to Infinispan, JBug Roma and Jug Sardegna

Statistics

Views

Total Views
1,390
Views on SlideShare
1,390
Embed Views
0

Actions

Likes
0
Downloads
21
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Infinispan Presentation Transcript

  • 1. 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
  • 2. 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!
  • 3. 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
  • 4. 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
  • 5. ● 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
  • 6. Complicato?
  • 7. 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" );
  • 8. 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 );
  • 9. 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
  • 10. 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
  • 11. 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!
  • 12. 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
  • 13. Memoria condivisa
  • 14. Storage esterno
  • 15. Storage esterno
  • 16. 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 />
  • 17. Configurazioni Avanzate Esempio: Scarlet
  • 18. 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