nosql data stores: introduzione alle basi di dati non relazionali
DESCRIPTION
Seconda parte del seminario su NoSQL al DiTeDi di Udine del 15/12/2012. Presentata un'introduzione sulle basi di dati non relazionali e sulle implicazioni che le loro caratteristiche hanno nello sviluppo di applicazioni enterprise.TRANSCRIPT
![Page 1: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/1.jpg)
NoSQL Data Stores Introduzione alle basi di dati non relazionali
DiTeDi, Udine - Italia 15-12-2012
![Page 2: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/2.jpg)
Architettura Web ‘Classica’
![Page 3: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/3.jpg)
Architettura Web ‘Classica’
![Page 4: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/4.jpg)
4
![Page 5: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/5.jpg)
5
![Page 6: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/6.jpg)
6
![Page 7: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/7.jpg)
Termine Usurpato!
Carlo Strozzi http://www.strozzi.it/users/carlo/vitae.html
![Page 8: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/8.jpg)
Concetti totalmente nuovi?!?
![Page 9: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/9.jpg)
Concetti totalmente nuovi?!?
DBM
![Page 10: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/10.jpg)
Le origini di Tokyo Cabinet
DBM
![Page 11: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/11.jpg)
Chi conosce questo signore?
![Page 12: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/12.jpg)
E questo?
![Page 13: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/13.jpg)
E questo?
Ken Thompson http://en.wikipedia.org/wiki/Ken_Thompson
![Page 14: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/14.jpg)
Eppure...
![Page 15: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/15.jpg)
PERCHÈ QUESTA HYPE?
![Page 16: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/16.jpg)
MOLTI PIÙ DATI
![Page 17: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/17.jpg)
Big Data
http://blog.thomsonreuters.com/index.php/big-data-graphic-of-the-day/
![Page 18: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/18.jpg)
VARIABILITÀ DEI DATI
![Page 19: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/19.jpg)
Progresso tecnologico
http://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/12_MassStorage.html
Costo 1MB DRAM
![Page 20: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/20.jpg)
CONNESSIONI
![Page 21: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/21.jpg)
![Page 22: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/22.jpg)
MOLTI PIÙ ACCESSI
![Page 23: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/23.jpg)
![Page 24: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/24.jpg)
![Page 25: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/25.jpg)
Dynamo BigTable
![Page 26: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/26.jpg)
Implementazione di Dynamo
![Page 27: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/27.jpg)
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
![Page 28: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/28.jpg)
Clustering
28
Fonte: http://wiki.basho.com/
![Page 29: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/29.jpg)
Persistenza Configurabile
29
N R W
numero nodi del cluster in cui replicare il dato
![Page 30: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/30.jpg)
Replicazione
30
Fonte: http://wiki.basho.com/
![Page 31: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/31.jpg)
Persistenza Configurabile
31
N R W
numero nodi da cui il dato deve essere letto affinchè sia considerato valido
![Page 32: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/32.jpg)
Persistenza Configurabile
32
N R W
numero nodi in cui il dato deve essere scritto affinchè la scrittura sia considerata valida
![Page 33: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/33.jpg)
Coerenza eventuale
33
W + R <= N
![Page 34: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/34.jpg)
Quorum
34
W + R > N
![Page 35: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/35.jpg)
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
![Page 36: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/36.jpg)
Implementazione di BigTable
http://hadoop-hbase.blogspot.it/2011/12/introduction-to-hbase.html
![Page 37: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/37.jpg)
Salvataggio dei dati
![Page 38: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/38.jpg)
Salvataggio dei dati
Es. Data Location: Stefano Valle/Profilo:Paese
![Page 39: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/39.jpg)
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)
![Page 40: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/40.jpg)
SCALABILITÀ ORIZZONTALE
![Page 41: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/41.jpg)
![Page 42: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/42.jpg)
ACID Atomic Consistent Isolated Durable
BASE Basic Available Soft State Eventually Consistent
![Page 43: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/43.jpg)
Concentriamoci sull’Atomicità
43
Ordine
Oggetto 1
Oggetto 2
Cliente
Aggiornamento ordine
![Page 44: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/44.jpg)
DA ENTITÀ RELAZIONI
![Page 45: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/45.jpg)
AD AGGREGATI
![Page 46: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/46.jpg)
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€
![Page 47: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/47.jpg)
ACID con gli aggregati
47
Ordine
Oggetto 1
Oggetto 2
Cliente
Aggiornamento ordine
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€
![Page 48: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/48.jpg)
COME SONO I DATI SU RDBMS?
![Page 49: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/49.jpg)
COME LI VORREMMO UTILIZZARE?
![Page 50: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/50.jpg)
Impedence Mismatch Film Genere Drammatico:
Film Genere Western:
Film Genere Commedia:
Titolo Anno Visioni
Schindler’s List 1993 3454
Pulp Fiction 1994 2114
Il Padrino 1972 3873
Titolo Anno Visioni
Il buono, il brutto, il cattivo 1966 7834
Titolo Anno Visioni
Mamma ho perso l’aereo 1990 3555
![Page 51: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/51.jpg)
Impedence Mismatch
![Page 52: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/52.jpg)
Impedence Mismatch
JOIN per evitare molteplici query
![Page 53: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/53.jpg)
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
}
]
}
![Page 54: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/54.jpg)
SCHEMALESS IS A LIE!
![Page 55: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/55.jpg)
Da...
55
Dati
Room TV Pannello Controllo
Analisi Statistiche
![Page 56: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/56.jpg)
A...
56
Dati
API
Room TV Pannello Controllo
Analisi Statistiche
![Page 57: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/57.jpg)
O meglio...
57
Metadati
API
Dati hotel
API
Statistiche
API
Room TV Pannello Controllo
Analisi Statistiche
![Page 58: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/58.jpg)
Domain Driven Design
58
![Page 59: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/59.jpg)
59
Fonte: http://www.domainlanguage.com/ddd/patterns/
![Page 60: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/60.jpg)
60
Fonte: http://www.domainlanguage.com/ddd/patterns/
+ CQRS
![Page 61: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/61.jpg)
POLYGLOT PERSISTANCE
![Page 62: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/62.jpg)
Come scegliere?
![Page 63: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/63.jpg)
TRADEOFFS
![Page 64: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/64.jpg)
PERSISTENZA VS SPEED
![Page 65: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/65.jpg)
DISPONIBILITÀ VS COERENZA
![Page 66: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/66.jpg)
TCO, CONOSCENZE INTERNE
![Page 67: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/67.jpg)
TEMPO, RISORSE, FATICA
![Page 68: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/68.jpg)
SOLIDITÀ
![Page 69: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/69.jpg)
Hosting
69
![Page 70: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/70.jpg)
MODELLO DATI
![Page 71: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/71.jpg)
Modello dati Dimensione
Complessità
Key Value
Colonne
Documentale
A grafo
> 90% dei casi d’uso
Fonte: http://www.slideshare.net/emileifrem/an-overview-of-nosql-jfokus-2011
![Page 72: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/72.jpg)
KEY/VALUE
![Page 73: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/73.jpg)
Esempi
73
![Page 74: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/74.jpg)
Confronto
74
replication sharding support
multi-master support
Memcached No (use repcached instead)
Yes (through client library)
No (use repcached instaed)
Project Voldemort
Async Yes Yes
Redis Async No No
Riak Async Peer-based
Yes Yes
![Page 75: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/75.jpg)
Confronto (2)
75
data storage
concurrency control
data types durability
Memcached RAM Lock-free Blob n.a.
Project Voldemort
RAM, BDB, MySql, others
MVCC Typed Data storage dependant
Redis RAM + disk Locks Semi-typed Append-only log
Riak RAM, disk MVCC (Vector-clocks)
Semi-typed Durable write quorum
![Page 76: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/76.jpg)
Confronto (3)
76
requires compaction
transactions secondary indexex
Memcached No No No
Project Voldemort
Data storage dependant
No No
Redis Snapshot Yes (multi operations queues)
No
Riak No No Yes
![Page 77: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/77.jpg)
Confronto (4)
77
security interface protocol
query support
language
Memcached Via SASL TCP, UDP Commands C
Project Voldemort
None Protocol Buffers, Thrift, Avro and Java Serialization
Commands Java
Redis Passwords Simple text over TCP
Commands C/C++
Riak None HTTP, protobuf
Map reduce (weak support)
Erlang
![Page 78: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/78.jpg)
DOCUMENTALE
![Page 79: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/79.jpg)
Esempi
79
![Page 80: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/80.jpg)
Confronto
80
replication sharding support
multi-master support
CouchDB Master-master Yes (with filters in BigCouch)
Yes
MongoDB Master-slave (replica sets)
Yes No
OrientDB Master-master Dec. 2012 / Jan. 2013
Yes
RavenDB Master-master Yes Yes
![Page 81: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/81.jpg)
Confronto (2)
81
data storage
concurrency control
data types durability
CouchDB Disk Lock-free MVCC
JSON Crash-only
MongoDB Disk Write lock BSON Write-ahead log, safe mode
OrientDB Disk MVCC JSON Write-ahead log
RavenDB RAM, Disk Configurable optimistic concurrency
JSON Write-ahead log, snapshot (via ESE)
![Page 82: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/82.jpg)
Confronto (3)
82
requires compaction
transactions secondary indexex
CouchDB Yes, file rewrite No Yes
MongoDB No No Yes
OrientDB No Yes No
RavenDB No Yes Yes
![Page 83: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/83.jpg)
Confronto (4)
83
security interface protocol
query support
language
CouchDB Users HTTP (REST)
Map reduce (weak support)
Erlang
MongoDB Users Binary over TCP
Commands, map reduce
C++
OrientDB Users, ACL
HTTP (REST), Binary over TCP
SQL(+), Tinkerpop
Java
RavenDB Users .NET API, HTTP (REST)
LINQ C#
![Page 84: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/84.jpg)
COLONNE
![Page 85: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/85.jpg)
Esempi
85
![Page 86: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/86.jpg)
GRAFO
![Page 87: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/87.jpg)
Flock
87
Esempi
![Page 88: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/88.jpg)
COSA PORTARE A CASA
![Page 89: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/89.jpg)
ONE SIZE DOES NOT FIT ALL
![Page 90: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/90.jpg)
DATABASE RELAZIONALI
![Page 91: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/91.jpg)
DATASTORE NOSQL
![Page 92: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/92.jpg)
GRAZIE
![Page 93: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/93.jpg)
DOMANDE?
![Page 94: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/94.jpg)
http://www.mvassociati.it/
![Page 95: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/95.jpg)
http://www.hubme.in/
![Page 96: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/96.jpg)
Per Approfondire:
96
![Page 97: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/97.jpg)
Per Approfondire:
97
![Page 98: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/98.jpg)
Per Approfondire:
98
![Page 99: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/99.jpg)
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
![Page 100: NoSQL Data Stores: Introduzione alle Basi di Dati Non Relazionali](https://reader035.vdocuments.site/reader035/viewer/2022062511/54c79d3b4a79599e2b8b4584/html5/thumbnails/100.jpg)
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