SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
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
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!
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
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
●   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
Complicato?
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" );
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 );
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
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
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!
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
Memoria condivisa
Storage esterno
Storage esterno
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 />
Configurazioni Avanzate




    Esempio: Scarlet
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
Infinispan

Weitere ähnliche Inhalte

Was ist angesagt?

Azure for Game Developers
Azure for Game DevelopersAzure for Game Developers
Azure for Game DevelopersMarco Parenzan
 
SQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaSQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaGianluca Hotz
 
Best Practices on SQL Server
Best Practices on SQL ServerBest Practices on SQL Server
Best Practices on SQL ServerGianluca Hotz
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database LedgerGianluca Hotz
 
SQL Server Workload Profiling
SQL Server Workload ProfilingSQL Server Workload Profiling
SQL Server Workload ProfilingGianluca Hotz
 
Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?VMUG IT
 
Come utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon AuroraCome utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon AuroraGianluca Hotz
 
SQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed DisksSQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed DisksGianluca Hotz
 
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017MongoDB
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query ProcessingGianluca Hotz
 
SQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSSQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSGianluca Hotz
 
Scala in pratica - Stefano Rocco (MoneyFarm)
Scala in pratica - Stefano Rocco (MoneyFarm)Scala in pratica - Stefano Rocco (MoneyFarm)
Scala in pratica - Stefano Rocco (MoneyFarm)Scala Italy
 
Codemotion fuse presentation
Codemotion fuse presentationCodemotion fuse presentation
Codemotion fuse presentationUgo Landini
 
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Meet Magento Italy
 
VMUGIT Roma 2016 - vROps Design - Pietro Piutti
VMUGIT Roma 2016 - vROps Design - Pietro PiuttiVMUGIT Roma 2016 - vROps Design - Pietro Piutti
VMUGIT Roma 2016 - vROps Design - Pietro PiuttiVMUG IT
 
SDS,la pietra d’angolo dell SDDC
SDS,la pietra d’angolo dell SDDC SDS,la pietra d’angolo dell SDDC
SDS,la pietra d’angolo dell SDDC VMUG IT
 

Was ist angesagt? (20)

Azure for Game Developers
Azure for Game DevelopersAzure for Game Developers
Azure for Game Developers
 
SQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaSQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: Sicurezza
 
Best Practices on SQL Server
Best Practices on SQL ServerBest Practices on SQL Server
Best Practices on SQL Server
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database Ledger
 
SQL Server Workload Profiling
SQL Server Workload ProfilingSQL Server Workload Profiling
SQL Server Workload Profiling
 
Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?
 
SQL Server in AWS
SQL Server in AWSSQL Server in AWS
SQL Server in AWS
 
Mysql diventa grande
Mysql diventa grandeMysql diventa grande
Mysql diventa grande
 
Come utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon AuroraCome utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
 
SQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed DisksSQL Server Failover Cluster Instances con Azure Managed Disks
SQL Server Failover Cluster Instances con Azure Managed Disks
 
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017
 
SQL Server Modern Query Processing
SQL Server Modern Query ProcessingSQL Server Modern Query Processing
SQL Server Modern Query Processing
 
SQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSSQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWS
 
Scala in pratica - Stefano Rocco (MoneyFarm)
Scala in pratica - Stefano Rocco (MoneyFarm)Scala in pratica - Stefano Rocco (MoneyFarm)
Scala in pratica - Stefano Rocco (MoneyFarm)
 
Codemotion fuse presentation
Codemotion fuse presentationCodemotion fuse presentation
Codemotion fuse presentation
 
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
Mikhail Zakharenko - Super-scaling Magento with Docker, micro-services and mi...
 
Da 0 all'open per PA e PMI
Da 0 all'open per PA e PMIDa 0 all'open per PA e PMI
Da 0 all'open per PA e PMI
 
Presentazione bd2
Presentazione bd2Presentazione bd2
Presentazione bd2
 
VMUGIT Roma 2016 - vROps Design - Pietro Piutti
VMUGIT Roma 2016 - vROps Design - Pietro PiuttiVMUGIT Roma 2016 - vROps Design - Pietro Piutti
VMUGIT Roma 2016 - vROps Design - Pietro Piutti
 
SDS,la pietra d’angolo dell SDDC
SDS,la pietra d’angolo dell SDDC SDS,la pietra d’angolo dell SDDC
SDS,la pietra d’angolo dell SDDC
 

Ähnlich wie Infinispan

Cloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciutoCloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciutoBioDec
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBSteve Maraspin
 
JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009Sanne Grinovero
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileIvan Rossi
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileBioDec
 
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLMySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLPar-Tec S.p.A.
 
Archeo foss 2012 slides 1
Archeo foss 2012 slides 1Archeo foss 2012 slides 1
Archeo foss 2012 slides 1CSP Scarl
 
Big data stack tecnologico
Big data stack tecnologicoBig data stack tecnologico
Big data stack tecnologicoMassimo Romano
 
Big data - stack tecnologico
Big data -  stack tecnologicoBig data -  stack tecnologico
Big data - stack tecnologicoConsulthinkspa
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databasesGianluca Hotz
 
ASP.NET, ottimizziamo con la cache
ASP.NET, ottimizziamo con la cacheASP.NET, ottimizziamo con la cache
ASP.NET, ottimizziamo con la cacheAndrea Dottor
 
Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...MariaDB plc
 
Redis Cluster by S. Sanfilippo
Redis Cluster by S. SanfilippoRedis Cluster by S. Sanfilippo
Redis Cluster by S. SanfilippoCorley S.r.l.
 
[Neen luigi m]autoscalingmagentointhecloud-v7
[Neen luigi m]autoscalingmagentointhecloud-v7[Neen luigi m]autoscalingmagentointhecloud-v7
[Neen luigi m]autoscalingmagentointhecloud-v7Luigi Molinaro
 
Autoscaling Magento in the cloud
Autoscaling Magento in the cloudAutoscaling Magento in the cloud
Autoscaling Magento in the cloudLuigi Molinaro
 
Microsoft SQL Server PaaS (Platform as a Service)
Microsoft SQL Server PaaS (Platform as a Service)Microsoft SQL Server PaaS (Platform as a Service)
Microsoft SQL Server PaaS (Platform as a Service)Gianluca Hotz
 
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2MongoDB
 
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Codemotion
 

Ähnlich wie Infinispan (20)

Cloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciutoCloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciuto
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
 
JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatile
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatile
 
Ha solutions su power i
Ha solutions su power iHa solutions su power i
Ha solutions su power i
 
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLMySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
 
Archeo foss 2012 slides 1
Archeo foss 2012 slides 1Archeo foss 2012 slides 1
Archeo foss 2012 slides 1
 
Big data stack tecnologico
Big data stack tecnologicoBig data stack tecnologico
Big data stack tecnologico
 
Big data - stack tecnologico
Big data -  stack tecnologicoBig data -  stack tecnologico
Big data - stack tecnologico
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databases
 
Clustering Magento
Clustering MagentoClustering Magento
Clustering Magento
 
ASP.NET, ottimizziamo con la cache
ASP.NET, ottimizziamo con la cacheASP.NET, ottimizziamo con la cache
ASP.NET, ottimizziamo con la cache
 
Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...
 
Redis Cluster by S. Sanfilippo
Redis Cluster by S. SanfilippoRedis Cluster by S. Sanfilippo
Redis Cluster by S. Sanfilippo
 
[Neen luigi m]autoscalingmagentointhecloud-v7
[Neen luigi m]autoscalingmagentointhecloud-v7[Neen luigi m]autoscalingmagentointhecloud-v7
[Neen luigi m]autoscalingmagentointhecloud-v7
 
Autoscaling Magento in the cloud
Autoscaling Magento in the cloudAutoscaling Magento in the cloud
Autoscaling Magento in the cloud
 
Microsoft SQL Server PaaS (Platform as a Service)
Microsoft SQL Server PaaS (Platform as a Service)Microsoft SQL Server PaaS (Platform as a Service)
Microsoft SQL Server PaaS (Platform as a Service)
 
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2
 
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
 

Kürzlich hochgeladen

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 

Kürzlich hochgeladen (9)

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 

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
  • 8. 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" );
  • 9. 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 );
  • 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
  • 17. 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 />
  • 18. Configurazioni Avanzate Esempio: Scarlet
  • 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