SlideShare ist ein Scribd-Unternehmen logo
1 von 101
Downloaden Sie, um offline zu lesen
NoSQL Data Stores
         Introduzione alle basi di dati non relazionali




DiTeDi, Udine - Italia 15-12-2012
Architettura Web ‘Classica’
Architettura Web ‘Classica’
4
5
6
Termine Usurpato!




                       Carlo Strozzi
         http://www.strozzi.it/users/carlo/vitae.html
Concetti totalmente nuovi?!?
Concetti totalmente nuovi?!?




                         DBM
Le origini di Tokyo Cabinet




                              DBM
Chi conosce questo signore?
E questo?
E questo?




                           Ken Thompson
            http://en.wikipedia.org/wiki/Ken_Thompson
Eppure...
PERCHÈ QUESTA HYPE?
MOLTI PIÙ DATI
Big Data




http://blog.thomsonreuters.com/index.php/big-data-graphic-of-the-day/
VARIABILITÀ DEI DATI
Progresso tecnologico


                                           Costo 1MB DRAM




   http://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/12_MassStorage.html
CONNESSIONI
MOLTI PIÙ ACCESSI
Dynamo   BigTable
Implementazione di Dynamo
Cenni su Riak
•   Database key-value
•   Interfaccia HTTP
•   Usando i link si possono collegare chiavi
    fra di loro
•   CAP «configurabile» (si può decidere fra
    coerenza e disponibilità per ciascuna
    richiesta)
•   Supporta ricerca full-text
Clustering




                  Fonte: http://wiki.basho.com/

28
Persistenza Configurabile


     N            numero nodi del
     R            cluster in cui
                  replicare il dato

     W

29
Replicazione




                    Fonte: http://wiki.basho.com/

30
Persistenza Configurabile


     N            numero nodi da cui
     R            il dato deve essere
                  letto affinchè sia

     W            considerato valido




31
Persistenza Configurabile


     N            numero nodi in cui il
                  dato deve essere
     R            scritto affinchè la
                  scrittura sia

     W            considerata valida




32
Coerenza eventuale




          W + R <= N


33
Quorum




          W+R>N


34
Recap su Riak:
     •   Interfaccia HTTP
     •   Adatto alle situazioni in cui c’è bisogno di
         HA
     •   Senza rinunciare ad alcune comode
         operazioni sui dati (usando links, pre/post
         commit hooks)
     •   Non adatto se c’è necessità di eseguire
         query complesse


35
Implementazione di BigTable




   http://hadoop-hbase.blogspot.it/2011/12/introduction-to-hbase.html
Salvataggio dei dati
Salvataggio dei dati




        Es. Data Location: Stefano Valle/Profilo:Paese
Cenni su HBase

•   Controllo di versione incorporato
•   Compressione
•   Garbage collection
•   Tabelle in memoria
•   Coerenza (no availability)
•   Write Ahead Logging
•   Basato su Hadoop
•   Pensato per cluster grandi (5-20 nodi)
SCALABILITÀ ORIZZONTALE
ACID         BASE
Atomic       Basic
Consistent   Available
Isolated     Soft State
Durable      Eventually Consistent
Concentriamoci sull’Atomicità
                              Aggiornamento ordine


         Ordine


                  Oggetto 1

                      Oggetto 2


                                  Cliente




43
DA ENTITÀ RELAZIONI
AD AGGREGATI
Aggregate data model
        order_id = 1001
        date = 2012-11-10
        total_amount = 10.00€

        name = Johnny
        surname = Appleseed

        product_name: Pear
        quantity: 2
        item_price: 2.50€
        total_price: 5.00€

        product_name: Mango
        quantity: 1
        item_price: 5.00€
        total_price: 5.00€
ACID con gli aggregati
                          Aggiornamento ordine


     Ordine

                                             order_id = 1001
                                             date = 2012-11-10
              Oggetto 1                      total_amount = 10.00€
                                                 name = Johnny
                  Oggetto 2                      surname = Appleseed

                                                 product_name: Pear
                                                 quantity: 2
                              Cliente            item_price: 2.50€
                                                 total_price: 5.00€


                                                 product_name: Mango
                                                 quantity: 1
                                                 item_price: 5.00€
                                                 total_price: 5.00€



47
COME SONO I DATI SU RDBMS?
COME LI VORREMMO UTILIZZARE?
Impedence Mismatch
Film Genere Drammatico:
Titolo                            Anno   Visioni
Schindler’s List                  1993    3454
Pulp Fiction                      1994    2114
Il Padrino                        1972    3873

Film Genere Western:
Titolo                            Anno   Visioni
Il buono, il brutto, il cattivo   1966    7834


Film Genere Commedia:
Titolo                            Anno   Visioni
Mamma ho perso l’aereo            1990     3555
Impedence Mismatch
Impedence Mismatch




      JOIN per evitare molteplici query
Dati in forma aggregata:
    {
        "genere":"Drammatico",
        "film":[
           {
              "titolo":"Schindler's List",
              "visioni":3454,
              "anno":1993
           },
           {
              "titolo":"Pulp Fiction",
              "visioni":2114,
              "anno":1994
           },
           {
              "titolo":"Il Padrino",
              "visioni":3873,
              "anno":1972
           }
        ]
    }
SCHEMALESS IS A LIE!
Da...
                  Pannello      Analisi
        Room TV
                  Controllo   Statistiche




                    Dati



55
A...
                      Pannello      Analisi
            Room TV
                      Controllo   Statistiche




                        API




                        Dati


56
O meglio...
                    Pannello       Analisi
        Room TV
                    Controllo    Statistiche




           API         API           API




         Metadati   Dati hotel   Statistiche


57
Domain
     Driven
     Design
58
Fonte: http://www.domainlanguage.com/ddd/patterns/

59
+ CQRS
     Fonte: http://www.domainlanguage.com/ddd/patterns/

60
POLYGLOT PERSISTANCE
Come scegliere?
TRADEOFFS
PERSISTENZA VS SPEED
DISPONIBILITÀ VS COERENZA
TCO, CONOSCENZE INTERNE
TEMPO, RISORSE, FATICA
SOLIDITÀ
Hosting




69
MODELLO DATI
Modello dati
Dimensione


        Key Value


                            Colonne

                                          Documentale

                                                                            A grafo




                                > 90% dei casi d’uso


                                                                                      Complessità
    Fonte: http://www.slideshare.net/emileifrem/an-overview-of-nosql-jfokus-2011
KEY/VALUE
Esempi




73
Confronto
                 replication   sharding          multi-master
                               support           support
     Memcached   No (use       Yes (through      No (use
                 repcached     client library)   repcached
                 instead)                        instaed)
     Project     Async         Yes               Yes
     Voldemort
     Redis       Async         No                No


     Riak        Async         Yes               Yes
                 Peer-based




74
Confronto (2)
                 data        concurrency data types   durability
                 storage     control

     Memcached   RAM         Lock-free   Blob         n.a.


     Project     RAM, BDB, MVCC          Typed        Data
     Voldemort   MySql,                               storage
                 others                               dependant
     Redis       RAM + disk Locks        Semi-typed   Append-
                                                      only log
     Riak        RAM, disk   MVCC        Semi-typed   Durable
                             (Vector-                 write
                             clocks)                  quorum



75
Confronto (3)
                 requires       transactions   secondary
                 compaction                    indexex
     Memcached   No             No             No


     Project     Data storage   No             No
     Voldemort   dependant
     Redis       Snapshot       Yes (multi     No
                                operations
                                queues)
     Riak        No             No             Yes




76
Confronto (4)
                 security   interface       query      language
                            protocol        support
     Memcached   Via SASL   TCP, UDP        Commands   C


     Project     None       Protocol        Commands   Java
     Voldemort              Buffers,
                            Thrift, Avro
                            and Java
                            Serialization
     Redis       Passwords Simple text      Commands   C/C++
                           over TCP
     Riak        None       HTTP,           Map reduce Erlang
                            protobuf        (weak
                                            support)

77
DOCUMENTALE
Esempi




79
Confronto
                replication      sharding         multi-master
                                 support          support
     CouchDB    Master-master    Yes (with filters Yes
                                 in BigCouch)
     MongoDB    Master-slave     Yes              No
                (replica sets)
     OrientDB   Master-master    Dec. 2012 /      Yes
                                 Jan. 2013
     RavenDB    Master-master    Yes              Yes




80
Confronto (2)
                data        concurrency    data types   durability
                storage     control

     CouchDB    Disk        Lock-free      JSON         Crash-only
                            MVCC

     MongoDB    Disk        Write lock     BSON         Write-ahead
                                                        log, safe
                                                        mode
     OrientDB   Disk        MVCC           JSON         Write-ahead
                                                        log

     RavenDB    RAM, Disk   Configurable   JSON         Write-ahead
                            optimistic                  log, snapshot
                            concurrency                 (via ESE)




81
Confronto (3)
                requires         transactions   secondary
                compaction                      indexex
     CouchDB    Yes, file rewrite No            Yes


     MongoDB    No               No             Yes


     OrientDB   No               Yes            No


     RavenDB    No               Yes            Yes




82
Confronto (4)
                security   interface     query       language
                           protocol      support
     CouchDB    Users      HTTP          Map reduce Erlang
                           (REST)        (weak
                                         support)
     MongoDB    Users      Binary over   Commands, C++
                           TCP           map reduce
     OrientDB   Users,     HTTP          SQL(+),     Java
                ACL        (REST),       Tinkerpop
                           Binary over
                           TCP
     RavenDB    Users      .NET API,     LINQ        C#
                           HTTP
                           (REST)

83
COLONNE
Esempi




85
GRAFO
Esempi




              Flock

87
COSA PORTARE A CASA
ONE SIZE DOES NOT FIT ALL
DATABASE RELAZIONALI
DATASTORE NOSQL
GRAZIE
DOMANDE?
http://www.mvassociati.it/
http://www.hubme.in/
Per Approfondire:




96
Per Approfondire:




97
Per Approfondire:




98
Per Approfondire:
     •   Links:
         –   http://nosql.findthebest.com/
         –   http://www.dzone.com/mz/nosql
         –   newsletter Nosql Weekly
         –   http://www.nosql-database.org/
         –   http://couchdb.apache.org/
         –   http://www.mongodb.org/
         –   http://redis.io/
         –   http://www.orientdb.org/
         –   http://www.draftq.com/ebooks/DraftQ/the-little-mongodb-book




99
Photo Credits
      •   http://www.flickr.com/photos/kunel/246544081/
      •   http://www.flickr.com/photos/lordcolus/5977615749/
      •   http://www.flickr.com/photos/gewitterhexer/5540504147/
      •   http://blog.thomsonreuters.com/index.php/big -data-graphic-of-the-day/
      •   http://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/12_MassStorage.html
      •   http://www.nathaninfocus.com/2011/01/social-networking-phenomenon/facebook-growth-chart/
      •   http://www.flickr.com/photos/phuonglovejesus2782010/5055970759/
      •   http://www.flickr.com/photos/kalexanderson/5944050340/
      •   http://www.flickr.com/photos/arichards-gallery/3578048793/
      •   http://www.flickr.com/photos/jabb/6956142046/
      •   http://www.flickr.com/photos/druclimb/47310529/
      •   http://www.flickr.com/photos/miggslives/5351504116/
      •   http://www.flickr.com/photos/polkadotcreations/2480587587/
      •   http://www.flickr.com/photos/wien/418840561/
      •   http://www.flickr.com/photos/heartlover1717/2605609803/
      •   http://www.flickr.com/photos/sepehrehsani/5766453552/
      •   http://www.flickr.com/photos/47108884@N07/6949078701/
      •   http://www.flickr.com/photos/ricephotos/354939144/
      •   http://www.flickr.com/photos/toptechwriter/3069396941/
      •   http://www.flickr.com/photos/djnordic/167433120/
      •   http://www.flickr.com/photos/jpstanley/69523927/
      •   http://www.flickr.com/photos/lodigs/2833648828/
      •   http://www.flickr.com/photos/ppym1/387781444/
      •   http://www.flickr.com/photos/freefoto/3844247553/
      •   http://www.flickr.com/photos/31492524@N00/3801200094/
      •   http://www.flickr.com/photos/sararah/2119107500/
      •   http://www.flickr.com/photos/wlef70/7507679760/
      •   http://www.flickr.com/photos/wold/369244351/
      •   http://www.flickr.com/photos/ilri/7839428936/
      •   http://www.flickr.com/photos/dhwright/8012651441/
      •   http://www.flickr.com/photos/birminghammag/7979485144/
      •   http://www.flickr.com/photos/capcase/4970062870/
      •   http://www.flickr.com/photos/aidanwojtas/5879866927/


100
Stefano Maraspin            Stefano Valle
@maraspin                   @stefanovalle
s.maraspin@mvassociati.it   s.valle@mvassociati.it

Weitere ähnliche Inhalte

Was ist angesagt?

Codemotion 2015 Infinispan Tech lab
Codemotion 2015 Infinispan Tech labCodemotion 2015 Infinispan Tech lab
Codemotion 2015 Infinispan Tech labUgo Landini
 
Software Development with Apache Cassandra
Software Development with Apache CassandraSoftware Development with Apache Cassandra
Software Development with Apache Cassandrazznate
 
Moxi - Memcached Proxy
Moxi - Memcached ProxyMoxi - Memcached Proxy
Moxi - Memcached ProxyNorthScale
 
Meetup cassandra for_java_cql
Meetup cassandra for_java_cqlMeetup cassandra for_java_cql
Meetup cassandra for_java_cqlzznate
 
Jug Lugano - Scale over the limits
Jug Lugano - Scale over the limitsJug Lugano - Scale over the limits
Jug Lugano - Scale over the limitsDavide Carnevali
 
Hardening cassandra q2_2016
Hardening cassandra q2_2016Hardening cassandra q2_2016
Hardening cassandra q2_2016zznate
 
In-depth caching in Varnish - GOG Varnish Meetup, march 2019
In-depth caching in Varnish - GOG Varnish Meetup, march 2019In-depth caching in Varnish - GOG Varnish Meetup, march 2019
In-depth caching in Varnish - GOG Varnish Meetup, march 2019GOG.com dev team
 
Seattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoiaSeattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoiazznate
 
Evaluating NoSQL Performance: Time for Benchmarking
Evaluating NoSQL Performance: Time for BenchmarkingEvaluating NoSQL Performance: Time for Benchmarking
Evaluating NoSQL Performance: Time for BenchmarkingSergey Bushik
 
Highly Available MySQL/PHP Applications with mysqlnd
Highly Available MySQL/PHP Applications with mysqlndHighly Available MySQL/PHP Applications with mysqlnd
Highly Available MySQL/PHP Applications with mysqlndJervin Real
 
How Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagHow Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagJean-François Gagné
 
What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...Sveta Smirnova
 
High Availability with Galera Cluster - SkySQL Road Show 2013 in Berlin
High Availability with Galera Cluster - SkySQL Road Show 2013 in BerlinHigh Availability with Galera Cluster - SkySQL Road Show 2013 in Berlin
High Availability with Galera Cluster - SkySQL Road Show 2013 in BerlinMariaDB Corporation
 
common_schema 2.0: DBA's Framework for MySQL
common_schema 2.0: DBA's Framework for MySQLcommon_schema 2.0: DBA's Framework for MySQL
common_schema 2.0: DBA's Framework for MySQLShlomi Noach
 
Where Django Caching Bust at the Seams
Where Django Caching Bust at the SeamsWhere Django Caching Bust at the Seams
Where Django Caching Bust at the SeamsConcentric Sky
 
Query Optimization with MySQL 8.0 and MariaDB 10.3: The Basics
Query Optimization with MySQL 8.0 and MariaDB 10.3: The BasicsQuery Optimization with MySQL 8.0 and MariaDB 10.3: The Basics
Query Optimization with MySQL 8.0 and MariaDB 10.3: The BasicsJaime Crespo
 
Scaling php applications with redis
Scaling php applications with redisScaling php applications with redis
Scaling php applications with redisjimbojsb
 
Crypto Strikes Back! (Google 2009)
Crypto Strikes Back! (Google 2009)Crypto Strikes Back! (Google 2009)
Crypto Strikes Back! (Google 2009)Nate Lawson
 

Was ist angesagt? (20)

Codemotion 2015 Infinispan Tech lab
Codemotion 2015 Infinispan Tech labCodemotion 2015 Infinispan Tech lab
Codemotion 2015 Infinispan Tech lab
 
Software Development with Apache Cassandra
Software Development with Apache CassandraSoftware Development with Apache Cassandra
Software Development with Apache Cassandra
 
Memcached Study
Memcached StudyMemcached Study
Memcached Study
 
Moxi - Memcached Proxy
Moxi - Memcached ProxyMoxi - Memcached Proxy
Moxi - Memcached Proxy
 
Meetup cassandra for_java_cql
Meetup cassandra for_java_cqlMeetup cassandra for_java_cql
Meetup cassandra for_java_cql
 
Jug Lugano - Scale over the limits
Jug Lugano - Scale over the limitsJug Lugano - Scale over the limits
Jug Lugano - Scale over the limits
 
Hardening cassandra q2_2016
Hardening cassandra q2_2016Hardening cassandra q2_2016
Hardening cassandra q2_2016
 
In-depth caching in Varnish - GOG Varnish Meetup, march 2019
In-depth caching in Varnish - GOG Varnish Meetup, march 2019In-depth caching in Varnish - GOG Varnish Meetup, march 2019
In-depth caching in Varnish - GOG Varnish Meetup, march 2019
 
Memcached
MemcachedMemcached
Memcached
 
Seattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoiaSeattle C* Meetup: Hardening cassandra for compliance or paranoia
Seattle C* Meetup: Hardening cassandra for compliance or paranoia
 
Evaluating NoSQL Performance: Time for Benchmarking
Evaluating NoSQL Performance: Time for BenchmarkingEvaluating NoSQL Performance: Time for Benchmarking
Evaluating NoSQL Performance: Time for Benchmarking
 
Highly Available MySQL/PHP Applications with mysqlnd
Highly Available MySQL/PHP Applications with mysqlndHighly Available MySQL/PHP Applications with mysqlnd
Highly Available MySQL/PHP Applications with mysqlnd
 
How Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagHow Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lag
 
What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...
 
High Availability with Galera Cluster - SkySQL Road Show 2013 in Berlin
High Availability with Galera Cluster - SkySQL Road Show 2013 in BerlinHigh Availability with Galera Cluster - SkySQL Road Show 2013 in Berlin
High Availability with Galera Cluster - SkySQL Road Show 2013 in Berlin
 
common_schema 2.0: DBA's Framework for MySQL
common_schema 2.0: DBA's Framework for MySQLcommon_schema 2.0: DBA's Framework for MySQL
common_schema 2.0: DBA's Framework for MySQL
 
Where Django Caching Bust at the Seams
Where Django Caching Bust at the SeamsWhere Django Caching Bust at the Seams
Where Django Caching Bust at the Seams
 
Query Optimization with MySQL 8.0 and MariaDB 10.3: The Basics
Query Optimization with MySQL 8.0 and MariaDB 10.3: The BasicsQuery Optimization with MySQL 8.0 and MariaDB 10.3: The Basics
Query Optimization with MySQL 8.0 and MariaDB 10.3: The Basics
 
Scaling php applications with redis
Scaling php applications with redisScaling php applications with redis
Scaling php applications with redis
 
Crypto Strikes Back! (Google 2009)
Crypto Strikes Back! (Google 2009)Crypto Strikes Back! (Google 2009)
Crypto Strikes Back! (Google 2009)
 

Andere mochten auch

No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013Myti S.r.l.
 
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
 
Cassandra - Wellington No Sql
Cassandra - Wellington No SqlCassandra - Wellington No Sql
Cassandra - Wellington No Sqlaaronmorton
 
NOSQL and Cassandra
NOSQL and CassandraNOSQL and Cassandra
NOSQL and Cassandrarantav
 
Cassandra + Hadoop: Analisi Batch con Apache Cassandra
Cassandra + Hadoop: Analisi Batch con Apache CassandraCassandra + Hadoop: Analisi Batch con Apache Cassandra
Cassandra + Hadoop: Analisi Batch con Apache CassandraJeremy Hanna
 
AWS (Amazon Web Services) - Trevisan Davide
AWS (Amazon Web Services) - Trevisan DavideAWS (Amazon Web Services) - Trevisan Davide
AWS (Amazon Web Services) - Trevisan DavideDavide Trevisan
 
Eletti big data_trento_25ott14
Eletti big data_trento_25ott14Eletti big data_trento_25ott14
Eletti big data_trento_25ott14Valerio Eletti
 
Cassandra, web scale no sql data platform
Cassandra, web scale no sql data platformCassandra, web scale no sql data platform
Cassandra, web scale no sql data platformMarko Švaljek
 
C* Keys: Partitioning, Clustering, & CrossFit (Adam Hutson, DataScale) | Cass...
C* Keys: Partitioning, Clustering, & CrossFit (Adam Hutson, DataScale) | Cass...C* Keys: Partitioning, Clustering, & CrossFit (Adam Hutson, DataScale) | Cass...
C* Keys: Partitioning, Clustering, & CrossFit (Adam Hutson, DataScale) | Cass...DataStax
 
Cassandra Community Webinar: Apache Spark Analytics at The Weather Channel - ...
Cassandra Community Webinar: Apache Spark Analytics at The Weather Channel - ...Cassandra Community Webinar: Apache Spark Analytics at The Weather Channel - ...
Cassandra Community Webinar: Apache Spark Analytics at The Weather Channel - ...DataStax Academy
 
Cassandra Data Model
Cassandra Data ModelCassandra Data Model
Cassandra Data Modelebenhewitt
 
NoSQL, No Worries: Vecchi Problemi, Nuove Soluzioni
NoSQL, No Worries: Vecchi Problemi, Nuove SoluzioniNoSQL, No Worries: Vecchi Problemi, Nuove Soluzioni
NoSQL, No Worries: Vecchi Problemi, Nuove SoluzioniSteve Maraspin
 
Dynamo and BigTable - Review and Comparison
Dynamo and BigTable - Review and ComparisonDynamo and BigTable - Review and Comparison
Dynamo and BigTable - Review and ComparisonGrisha Weintraub
 
Dynamodb Presentation
Dynamodb PresentationDynamodb Presentation
Dynamodb Presentationadvaitdeo
 

Andere mochten auch (20)

No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
 
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
 
Seminar presentation final
Seminar presentation finalSeminar presentation final
Seminar presentation final
 
Cassandra - Wellington No Sql
Cassandra - Wellington No SqlCassandra - Wellington No Sql
Cassandra - Wellington No Sql
 
Cassandra at no_sql
Cassandra at no_sqlCassandra at no_sql
Cassandra at no_sql
 
NOSQL and Cassandra
NOSQL and CassandraNOSQL and Cassandra
NOSQL and Cassandra
 
No SQL Cassandra
No SQL CassandraNo SQL Cassandra
No SQL Cassandra
 
Cassandra + Hadoop: Analisi Batch con Apache Cassandra
Cassandra + Hadoop: Analisi Batch con Apache CassandraCassandra + Hadoop: Analisi Batch con Apache Cassandra
Cassandra + Hadoop: Analisi Batch con Apache Cassandra
 
NoSql - Key Value
NoSql - Key ValueNoSql - Key Value
NoSql - Key Value
 
AWS (Amazon Web Services) - Trevisan Davide
AWS (Amazon Web Services) - Trevisan DavideAWS (Amazon Web Services) - Trevisan Davide
AWS (Amazon Web Services) - Trevisan Davide
 
Eletti big data_trento_25ott14
Eletti big data_trento_25ott14Eletti big data_trento_25ott14
Eletti big data_trento_25ott14
 
Cassandra, web scale no sql data platform
Cassandra, web scale no sql data platformCassandra, web scale no sql data platform
Cassandra, web scale no sql data platform
 
Cassandra ppt 1
Cassandra ppt 1Cassandra ppt 1
Cassandra ppt 1
 
C* Keys: Partitioning, Clustering, & CrossFit (Adam Hutson, DataScale) | Cass...
C* Keys: Partitioning, Clustering, & CrossFit (Adam Hutson, DataScale) | Cass...C* Keys: Partitioning, Clustering, & CrossFit (Adam Hutson, DataScale) | Cass...
C* Keys: Partitioning, Clustering, & CrossFit (Adam Hutson, DataScale) | Cass...
 
Introduzione a Riak
Introduzione a RiakIntroduzione a Riak
Introduzione a Riak
 
Cassandra Community Webinar: Apache Spark Analytics at The Weather Channel - ...
Cassandra Community Webinar: Apache Spark Analytics at The Weather Channel - ...Cassandra Community Webinar: Apache Spark Analytics at The Weather Channel - ...
Cassandra Community Webinar: Apache Spark Analytics at The Weather Channel - ...
 
Cassandra Data Model
Cassandra Data ModelCassandra Data Model
Cassandra Data Model
 
NoSQL, No Worries: Vecchi Problemi, Nuove Soluzioni
NoSQL, No Worries: Vecchi Problemi, Nuove SoluzioniNoSQL, No Worries: Vecchi Problemi, Nuove Soluzioni
NoSQL, No Worries: Vecchi Problemi, Nuove Soluzioni
 
Dynamo and BigTable - Review and Comparison
Dynamo and BigTable - Review and ComparisonDynamo and BigTable - Review and Comparison
Dynamo and BigTable - Review and Comparison
 
Dynamodb Presentation
Dynamodb PresentationDynamodb Presentation
Dynamodb Presentation
 

Ähnlich wie NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali

Basho and Riak at GOTO Stockholm: "Don't Use My Database."
Basho and Riak at GOTO Stockholm:  "Don't Use My Database."Basho and Riak at GOTO Stockholm:  "Don't Use My Database."
Basho and Riak at GOTO Stockholm: "Don't Use My Database."Basho Technologies
 
ScimoreDB @ CommunityDays 2011
ScimoreDB @ CommunityDays 2011ScimoreDB @ CommunityDays 2011
ScimoreDB @ CommunityDays 2011scimore
 
Scimore CommunityDays 2011
Scimore CommunityDays 2011Scimore CommunityDays 2011
Scimore CommunityDays 2011scimore
 
Scaling Rails with memcached
Scaling Rails with memcachedScaling Rails with memcached
Scaling Rails with memcachedelliando dias
 
OpenStack and OpenFlow Demos
OpenStack and OpenFlow DemosOpenStack and OpenFlow Demos
OpenStack and OpenFlow DemosBrent Salisbury
 
IMCSummit 2015 - Day 2 IT Business Track - 4 Myths about In-Memory Databases ...
IMCSummit 2015 - Day 2 IT Business Track - 4 Myths about In-Memory Databases ...IMCSummit 2015 - Day 2 IT Business Track - 4 Myths about In-Memory Databases ...
IMCSummit 2015 - Day 2 IT Business Track - 4 Myths about In-Memory Databases ...In-Memory Computing Summit
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking systemJesse Vincent
 
Dynamo Systems - QCon SF 2012 Presentation
Dynamo Systems - QCon SF 2012 PresentationDynamo Systems - QCon SF 2012 Presentation
Dynamo Systems - QCon SF 2012 PresentationShanley Kane
 
HDFS introduction
HDFS introductionHDFS introduction
HDFS introductioninjae yeo
 
Balancing Replication and Partitioning in a Distributed Java Database
Balancing Replication and Partitioning in a Distributed Java DatabaseBalancing Replication and Partitioning in a Distributed Java Database
Balancing Replication and Partitioning in a Distributed Java DatabaseBen Stopford
 
CMF: a pain in the F @ PHPDay 05-14-2011
CMF: a pain in the F @ PHPDay 05-14-2011CMF: a pain in the F @ PHPDay 05-14-2011
CMF: a pain in the F @ PHPDay 05-14-2011Alessandro Nadalin
 
Data Grids with Oracle Coherence
Data Grids with Oracle CoherenceData Grids with Oracle Coherence
Data Grids with Oracle CoherenceBen Stopford
 
drbd9_and_drbdmanage_may_2015
drbd9_and_drbdmanage_may_2015drbd9_and_drbdmanage_may_2015
drbd9_and_drbdmanage_may_2015Alexandre Huynh
 
Key-value databases in practice Redis @ DotNetToscana
Key-value databases in practice Redis @ DotNetToscanaKey-value databases in practice Redis @ DotNetToscana
Key-value databases in practice Redis @ DotNetToscanaMatteo Baglini
 
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear ScalabilityBeyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear ScalabilityBen Stopford
 
Millions quotes per second in pure java
Millions quotes per second in pure javaMillions quotes per second in pure java
Millions quotes per second in pure javaRoman Elizarov
 
Building your own NSQL store
Building your own NSQL storeBuilding your own NSQL store
Building your own NSQL storeEdward Capriolo
 
Nibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL storeNibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL storeEdward Capriolo
 
Nibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL storeNibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL storeEdward Capriolo
 

Ähnlich wie NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali (20)

NoSQL
NoSQLNoSQL
NoSQL
 
Basho and Riak at GOTO Stockholm: "Don't Use My Database."
Basho and Riak at GOTO Stockholm:  "Don't Use My Database."Basho and Riak at GOTO Stockholm:  "Don't Use My Database."
Basho and Riak at GOTO Stockholm: "Don't Use My Database."
 
ScimoreDB @ CommunityDays 2011
ScimoreDB @ CommunityDays 2011ScimoreDB @ CommunityDays 2011
ScimoreDB @ CommunityDays 2011
 
Scimore CommunityDays 2011
Scimore CommunityDays 2011Scimore CommunityDays 2011
Scimore CommunityDays 2011
 
Scaling Rails with memcached
Scaling Rails with memcachedScaling Rails with memcached
Scaling Rails with memcached
 
OpenStack and OpenFlow Demos
OpenStack and OpenFlow DemosOpenStack and OpenFlow Demos
OpenStack and OpenFlow Demos
 
IMCSummit 2015 - Day 2 IT Business Track - 4 Myths about In-Memory Databases ...
IMCSummit 2015 - Day 2 IT Business Track - 4 Myths about In-Memory Databases ...IMCSummit 2015 - Day 2 IT Business Track - 4 Myths about In-Memory Databases ...
IMCSummit 2015 - Day 2 IT Business Track - 4 Myths about In-Memory Databases ...
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking system
 
Dynamo Systems - QCon SF 2012 Presentation
Dynamo Systems - QCon SF 2012 PresentationDynamo Systems - QCon SF 2012 Presentation
Dynamo Systems - QCon SF 2012 Presentation
 
HDFS introduction
HDFS introductionHDFS introduction
HDFS introduction
 
Balancing Replication and Partitioning in a Distributed Java Database
Balancing Replication and Partitioning in a Distributed Java DatabaseBalancing Replication and Partitioning in a Distributed Java Database
Balancing Replication and Partitioning in a Distributed Java Database
 
CMF: a pain in the F @ PHPDay 05-14-2011
CMF: a pain in the F @ PHPDay 05-14-2011CMF: a pain in the F @ PHPDay 05-14-2011
CMF: a pain in the F @ PHPDay 05-14-2011
 
Data Grids with Oracle Coherence
Data Grids with Oracle CoherenceData Grids with Oracle Coherence
Data Grids with Oracle Coherence
 
drbd9_and_drbdmanage_may_2015
drbd9_and_drbdmanage_may_2015drbd9_and_drbdmanage_may_2015
drbd9_and_drbdmanage_may_2015
 
Key-value databases in practice Redis @ DotNetToscana
Key-value databases in practice Redis @ DotNetToscanaKey-value databases in practice Redis @ DotNetToscana
Key-value databases in practice Redis @ DotNetToscana
 
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear ScalabilityBeyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
 
Millions quotes per second in pure java
Millions quotes per second in pure javaMillions quotes per second in pure java
Millions quotes per second in pure java
 
Building your own NSQL store
Building your own NSQL storeBuilding your own NSQL store
Building your own NSQL store
 
Nibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL storeNibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL store
 
Nibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL storeNibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL store
 

Mehr von Steve Maraspin

Architetture a Microservizi (con Kubernetes)
Architetture a Microservizi (con Kubernetes)Architetture a Microservizi (con Kubernetes)
Architetture a Microservizi (con Kubernetes)Steve Maraspin
 
How Agile changed Software Development
How Agile changed Software DevelopmentHow Agile changed Software Development
How Agile changed Software DevelopmentSteve Maraspin
 
Principi di Interaction Design
Principi di Interaction DesignPrincipi di Interaction Design
Principi di Interaction DesignSteve Maraspin
 
Customer Journey Mapping Workshop
Customer Journey Mapping WorkshopCustomer Journey Mapping Workshop
Customer Journey Mapping WorkshopSteve Maraspin
 
A (really) Quick Introduction to Event Storming
A (really) Quick Introduction to Event StormingA (really) Quick Introduction to Event Storming
A (really) Quick Introduction to Event StormingSteve Maraspin
 
Meet a parallel, asynchronous PHP world
Meet a parallel, asynchronous PHP worldMeet a parallel, asynchronous PHP world
Meet a parallel, asynchronous PHP worldSteve Maraspin
 
Don't Make Me Think - There's no need (2014)
Don't Make Me Think - There's no need (2014)Don't Make Me Think - There's no need (2014)
Don't Make Me Think - There's no need (2014)Steve Maraspin
 
The Metaphor Fallacy (in Digital Product Development)
The Metaphor Fallacy (in Digital Product Development)The Metaphor Fallacy (in Digital Product Development)
The Metaphor Fallacy (in Digital Product Development)Steve Maraspin
 
Lean UX: Sviluppo Software Agile e Incentrato sull'Utente
Lean UX: Sviluppo Software Agile e Incentrato sull'UtenteLean UX: Sviluppo Software Agile e Incentrato sull'Utente
Lean UX: Sviluppo Software Agile e Incentrato sull'UtenteSteve Maraspin
 
La filosofia Lean nello sviluppo di prodotti digitali
La filosofia Lean nello sviluppo di prodotti digitaliLa filosofia Lean nello sviluppo di prodotti digitali
La filosofia Lean nello sviluppo di prodotti digitaliSteve Maraspin
 
Error Reporting in ZF2: form messages, custom error pages, logging
Error Reporting in ZF2: form messages, custom error pages, loggingError Reporting in ZF2: form messages, custom error pages, logging
Error Reporting in ZF2: form messages, custom error pages, loggingSteve Maraspin
 
Outcome not Output: A Story of Lean UX Adoption
Outcome not Output: A Story of Lean UX AdoptionOutcome not Output: A Story of Lean UX Adoption
Outcome not Output: A Story of Lean UX AdoptionSteve Maraspin
 
Don't Make me Think - There's no Need
Don't Make me Think - There's no NeedDon't Make me Think - There's no Need
Don't Make me Think - There's no NeedSteve Maraspin
 
ZF2 Modular Architecture - Taking advantage of it
ZF2 Modular Architecture - Taking advantage of itZF2 Modular Architecture - Taking advantage of it
ZF2 Modular Architecture - Taking advantage of itSteve Maraspin
 
Fare con Zend Framework 2 ciò che facevo con ZF1
Fare con Zend Framework 2 ciò che facevo con ZF1Fare con Zend Framework 2 ciò che facevo con ZF1
Fare con Zend Framework 2 ciò che facevo con ZF1Steve Maraspin
 
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
 
Permettere al cliente di apprezzare l'approccio agile
Permettere al cliente di apprezzare l'approccio agilePermettere al cliente di apprezzare l'approccio agile
Permettere al cliente di apprezzare l'approccio agileSteve Maraspin
 
Let customers appreciate the agile workflow
Let customers appreciate the agile workflowLet customers appreciate the agile workflow
Let customers appreciate the agile workflowSteve Maraspin
 
Esempio di architettura distribuita basata su PHP, CouchDB e Mobile
Esempio di architettura distribuita basata su PHP, CouchDB e MobileEsempio di architettura distribuita basata su PHP, CouchDB e Mobile
Esempio di architettura distribuita basata su PHP, CouchDB e MobileSteve Maraspin
 
Striving towards better PHP code
Striving towards better PHP codeStriving towards better PHP code
Striving towards better PHP codeSteve Maraspin
 

Mehr von Steve Maraspin (20)

Architetture a Microservizi (con Kubernetes)
Architetture a Microservizi (con Kubernetes)Architetture a Microservizi (con Kubernetes)
Architetture a Microservizi (con Kubernetes)
 
How Agile changed Software Development
How Agile changed Software DevelopmentHow Agile changed Software Development
How Agile changed Software Development
 
Principi di Interaction Design
Principi di Interaction DesignPrincipi di Interaction Design
Principi di Interaction Design
 
Customer Journey Mapping Workshop
Customer Journey Mapping WorkshopCustomer Journey Mapping Workshop
Customer Journey Mapping Workshop
 
A (really) Quick Introduction to Event Storming
A (really) Quick Introduction to Event StormingA (really) Quick Introduction to Event Storming
A (really) Quick Introduction to Event Storming
 
Meet a parallel, asynchronous PHP world
Meet a parallel, asynchronous PHP worldMeet a parallel, asynchronous PHP world
Meet a parallel, asynchronous PHP world
 
Don't Make Me Think - There's no need (2014)
Don't Make Me Think - There's no need (2014)Don't Make Me Think - There's no need (2014)
Don't Make Me Think - There's no need (2014)
 
The Metaphor Fallacy (in Digital Product Development)
The Metaphor Fallacy (in Digital Product Development)The Metaphor Fallacy (in Digital Product Development)
The Metaphor Fallacy (in Digital Product Development)
 
Lean UX: Sviluppo Software Agile e Incentrato sull'Utente
Lean UX: Sviluppo Software Agile e Incentrato sull'UtenteLean UX: Sviluppo Software Agile e Incentrato sull'Utente
Lean UX: Sviluppo Software Agile e Incentrato sull'Utente
 
La filosofia Lean nello sviluppo di prodotti digitali
La filosofia Lean nello sviluppo di prodotti digitaliLa filosofia Lean nello sviluppo di prodotti digitali
La filosofia Lean nello sviluppo di prodotti digitali
 
Error Reporting in ZF2: form messages, custom error pages, logging
Error Reporting in ZF2: form messages, custom error pages, loggingError Reporting in ZF2: form messages, custom error pages, logging
Error Reporting in ZF2: form messages, custom error pages, logging
 
Outcome not Output: A Story of Lean UX Adoption
Outcome not Output: A Story of Lean UX AdoptionOutcome not Output: A Story of Lean UX Adoption
Outcome not Output: A Story of Lean UX Adoption
 
Don't Make me Think - There's no Need
Don't Make me Think - There's no NeedDon't Make me Think - There's no Need
Don't Make me Think - There's no Need
 
ZF2 Modular Architecture - Taking advantage of it
ZF2 Modular Architecture - Taking advantage of itZF2 Modular Architecture - Taking advantage of it
ZF2 Modular Architecture - Taking advantage of it
 
Fare con Zend Framework 2 ciò che facevo con ZF1
Fare con Zend Framework 2 ciò che facevo con ZF1Fare con Zend Framework 2 ciò che facevo con ZF1
Fare con Zend Framework 2 ciò che facevo con ZF1
 
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
 
Permettere al cliente di apprezzare l'approccio agile
Permettere al cliente di apprezzare l'approccio agilePermettere al cliente di apprezzare l'approccio agile
Permettere al cliente di apprezzare l'approccio agile
 
Let customers appreciate the agile workflow
Let customers appreciate the agile workflowLet customers appreciate the agile workflow
Let customers appreciate the agile workflow
 
Esempio di architettura distribuita basata su PHP, CouchDB e Mobile
Esempio di architettura distribuita basata su PHP, CouchDB e MobileEsempio di architettura distribuita basata su PHP, CouchDB e Mobile
Esempio di architettura distribuita basata su PHP, CouchDB e Mobile
 
Striving towards better PHP code
Striving towards better PHP codeStriving towards better PHP code
Striving towards better PHP code
 

Kürzlich hochgeladen

VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 

Kürzlich hochgeladen (20)

VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 

NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali

  • 1. NoSQL Data Stores Introduzione alle basi di dati non relazionali DiTeDi, Udine - Italia 15-12-2012
  • 4. 4
  • 5. 5
  • 6. 6
  • 7. Termine Usurpato! Carlo Strozzi http://www.strozzi.it/users/carlo/vitae.html
  • 10. Le origini di Tokyo Cabinet DBM
  • 11. Chi conosce questo signore?
  • 13. E questo? Ken Thompson http://en.wikipedia.org/wiki/Ken_Thompson
  • 19. Progresso tecnologico Costo 1MB DRAM http://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/12_MassStorage.html
  • 21.
  • 23.
  • 24.
  • 25. Dynamo BigTable
  • 27. Cenni su Riak • Database key-value • Interfaccia HTTP • Usando i link si possono collegare chiavi fra di loro • CAP «configurabile» (si può decidere fra coerenza e disponibilità per ciascuna richiesta) • Supporta ricerca full-text
  • 28. Clustering Fonte: http://wiki.basho.com/ 28
  • 29. Persistenza Configurabile N numero nodi del R cluster in cui replicare il dato W 29
  • 30. Replicazione Fonte: http://wiki.basho.com/ 30
  • 31. Persistenza Configurabile N numero nodi da cui R il dato deve essere letto affinchè sia W considerato valido 31
  • 32. Persistenza Configurabile N numero nodi in cui il dato deve essere R scritto affinchè la scrittura sia W considerata valida 32
  • 33. Coerenza eventuale W + R <= N 33
  • 34. Quorum W+R>N 34
  • 35. Recap su Riak: • Interfaccia HTTP • Adatto alle situazioni in cui c’è bisogno di HA • Senza rinunciare ad alcune comode operazioni sui dati (usando links, pre/post commit hooks) • Non adatto se c’è necessità di eseguire query complesse 35
  • 36. Implementazione di BigTable http://hadoop-hbase.blogspot.it/2011/12/introduction-to-hbase.html
  • 38. Salvataggio dei dati Es. Data Location: Stefano Valle/Profilo:Paese
  • 39. Cenni su HBase • Controllo di versione incorporato • Compressione • Garbage collection • Tabelle in memoria • Coerenza (no availability) • Write Ahead Logging • Basato su Hadoop • Pensato per cluster grandi (5-20 nodi)
  • 41.
  • 42. ACID BASE Atomic Basic Consistent Available Isolated Soft State Durable Eventually Consistent
  • 43. Concentriamoci sull’Atomicità Aggiornamento ordine Ordine Oggetto 1 Oggetto 2 Cliente 43
  • 46. Aggregate data model order_id = 1001 date = 2012-11-10 total_amount = 10.00€ name = Johnny surname = Appleseed product_name: Pear quantity: 2 item_price: 2.50€ total_price: 5.00€ product_name: Mango quantity: 1 item_price: 5.00€ total_price: 5.00€
  • 47. ACID con gli aggregati Aggiornamento ordine Ordine order_id = 1001 date = 2012-11-10 Oggetto 1 total_amount = 10.00€ name = Johnny Oggetto 2 surname = Appleseed product_name: Pear quantity: 2 Cliente item_price: 2.50€ total_price: 5.00€ product_name: Mango quantity: 1 item_price: 5.00€ total_price: 5.00€ 47
  • 48. COME SONO I DATI SU RDBMS?
  • 49. COME LI VORREMMO UTILIZZARE?
  • 50. Impedence Mismatch Film Genere Drammatico: Titolo Anno Visioni Schindler’s List 1993 3454 Pulp Fiction 1994 2114 Il Padrino 1972 3873 Film Genere Western: Titolo Anno Visioni Il buono, il brutto, il cattivo 1966 7834 Film Genere Commedia: Titolo Anno Visioni Mamma ho perso l’aereo 1990 3555
  • 52. Impedence Mismatch JOIN per evitare molteplici query
  • 53. Dati in forma aggregata: { "genere":"Drammatico", "film":[ { "titolo":"Schindler's List", "visioni":3454, "anno":1993 }, { "titolo":"Pulp Fiction", "visioni":2114, "anno":1994 }, { "titolo":"Il Padrino", "visioni":3873, "anno":1972 } ] }
  • 55. Da... Pannello Analisi Room TV Controllo Statistiche Dati 55
  • 56. A... Pannello Analisi Room TV Controllo Statistiche API Dati 56
  • 57. O meglio... Pannello Analisi Room TV Controllo Statistiche API API API Metadati Dati hotel Statistiche 57
  • 58. Domain Driven Design 58
  • 60. + CQRS Fonte: http://www.domainlanguage.com/ddd/patterns/ 60
  • 71. Modello dati Dimensione Key Value Colonne Documentale A grafo > 90% dei casi d’uso Complessità Fonte: http://www.slideshare.net/emileifrem/an-overview-of-nosql-jfokus-2011
  • 74. Confronto replication sharding multi-master support support Memcached No (use Yes (through No (use repcached client library) repcached instead) instaed) Project Async Yes Yes Voldemort Redis Async No No Riak Async Yes Yes Peer-based 74
  • 75. Confronto (2) data concurrency data types durability storage control Memcached RAM Lock-free Blob n.a. Project RAM, BDB, MVCC Typed Data Voldemort MySql, storage others dependant Redis RAM + disk Locks Semi-typed Append- only log Riak RAM, disk MVCC Semi-typed Durable (Vector- write clocks) quorum 75
  • 76. Confronto (3) requires transactions secondary compaction indexex Memcached No No No Project Data storage No No Voldemort dependant Redis Snapshot Yes (multi No operations queues) Riak No No Yes 76
  • 77. Confronto (4) security interface query language protocol support Memcached Via SASL TCP, UDP Commands C Project None Protocol Commands Java Voldemort Buffers, Thrift, Avro and Java Serialization Redis Passwords Simple text Commands C/C++ over TCP Riak None HTTP, Map reduce Erlang protobuf (weak support) 77
  • 80. Confronto replication sharding multi-master support support CouchDB Master-master Yes (with filters Yes in BigCouch) MongoDB Master-slave Yes No (replica sets) OrientDB Master-master Dec. 2012 / Yes Jan. 2013 RavenDB Master-master Yes Yes 80
  • 81. Confronto (2) data concurrency data types durability storage control CouchDB Disk Lock-free JSON Crash-only MVCC MongoDB Disk Write lock BSON Write-ahead log, safe mode OrientDB Disk MVCC JSON Write-ahead log RavenDB RAM, Disk Configurable JSON Write-ahead optimistic log, snapshot concurrency (via ESE) 81
  • 82. Confronto (3) requires transactions secondary compaction indexex CouchDB Yes, file rewrite No Yes MongoDB No No Yes OrientDB No Yes No RavenDB No Yes Yes 82
  • 83. Confronto (4) security interface query language protocol support CouchDB Users HTTP Map reduce Erlang (REST) (weak support) MongoDB Users Binary over Commands, C++ TCP map reduce OrientDB Users, HTTP SQL(+), Java ACL (REST), Tinkerpop Binary over TCP RavenDB Users .NET API, LINQ C# HTTP (REST) 83
  • 86. GRAFO
  • 87. Esempi Flock 87
  • 89. ONE SIZE DOES NOT FIT ALL
  • 99. Per Approfondire: • Links: – http://nosql.findthebest.com/ – http://www.dzone.com/mz/nosql – newsletter Nosql Weekly – http://www.nosql-database.org/ – http://couchdb.apache.org/ – http://www.mongodb.org/ – http://redis.io/ – http://www.orientdb.org/ – http://www.draftq.com/ebooks/DraftQ/the-little-mongodb-book 99
  • 100. Photo Credits • http://www.flickr.com/photos/kunel/246544081/ • http://www.flickr.com/photos/lordcolus/5977615749/ • http://www.flickr.com/photos/gewitterhexer/5540504147/ • http://blog.thomsonreuters.com/index.php/big -data-graphic-of-the-day/ • http://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/12_MassStorage.html • http://www.nathaninfocus.com/2011/01/social-networking-phenomenon/facebook-growth-chart/ • http://www.flickr.com/photos/phuonglovejesus2782010/5055970759/ • http://www.flickr.com/photos/kalexanderson/5944050340/ • http://www.flickr.com/photos/arichards-gallery/3578048793/ • http://www.flickr.com/photos/jabb/6956142046/ • http://www.flickr.com/photos/druclimb/47310529/ • http://www.flickr.com/photos/miggslives/5351504116/ • http://www.flickr.com/photos/polkadotcreations/2480587587/ • http://www.flickr.com/photos/wien/418840561/ • http://www.flickr.com/photos/heartlover1717/2605609803/ • http://www.flickr.com/photos/sepehrehsani/5766453552/ • http://www.flickr.com/photos/47108884@N07/6949078701/ • http://www.flickr.com/photos/ricephotos/354939144/ • http://www.flickr.com/photos/toptechwriter/3069396941/ • http://www.flickr.com/photos/djnordic/167433120/ • http://www.flickr.com/photos/jpstanley/69523927/ • http://www.flickr.com/photos/lodigs/2833648828/ • http://www.flickr.com/photos/ppym1/387781444/ • http://www.flickr.com/photos/freefoto/3844247553/ • http://www.flickr.com/photos/31492524@N00/3801200094/ • http://www.flickr.com/photos/sararah/2119107500/ • http://www.flickr.com/photos/wlef70/7507679760/ • http://www.flickr.com/photos/wold/369244351/ • http://www.flickr.com/photos/ilri/7839428936/ • http://www.flickr.com/photos/dhwright/8012651441/ • http://www.flickr.com/photos/birminghammag/7979485144/ • http://www.flickr.com/photos/capcase/4970062870/ • http://www.flickr.com/photos/aidanwojtas/5879866927/ 100
  • 101. Stefano Maraspin Stefano Valle @maraspin @stefanovalle s.maraspin@mvassociati.it s.valle@mvassociati.it