NoSQL: concetti generali



Documenti analoghi
NoSQL nosql-database.org/ Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Linguaggi e Tecnologie Web A. A.

Linee di evoluzione dei Database

Lezione 1. Introduzione e Modellazione Concettuale

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Facoltà di Farmacia - Corso di Informatica

Basi di Dati Distribuite

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

L architettura di un DBMS

Introduzione al data base

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Introduzione all Architettura del DBMS

Base di dati e sistemi informativi

1. BASI DI DATI: GENERALITÀ

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

La Metodologia adottata nel Corso

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario

Corso di Basi di Dati e Conoscenza

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Testi di riferimento. Atzeni, Ceri, Paraboschi, Torlone Basi di Dati Modelli e linguaggi di interrogazione Mc Graw Hill 2008 (III Edizione)

Sistemi informativi secondo prospettive combinate

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Corso di Informatica

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Caratteristiche principali. Contesti di utilizzo

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Architetture Applicative

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Capitolo 13. Interrogare una base di dati

Calcolatori Elettronici A a.a. 2008/2009

Progettazione di Basi di Dati

DOCUMENT MANAGEMENT SYSTEM E VISTE UTILIZZO DEL DMS E DELLE VISTE IN AZIENDA

Informatica I per la. Fisica

Software per Helpdesk

Basi di Dati e Microsoft Access

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Big data ed eventi: quasi un tutorial. Prof. Riccardo Melen

Gestione della memoria centrale

Organizzazione degli archivi

DBMS (Data Base Management System)

File e indici. Tecnologia delle BD: perché studiarla? Le basi di dati sono grandi e persistenti. DataBase Management System DBMS

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer

Data Warehousing (DW)

Coordinazione Distribuita

Indice Prefazione SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 Vincoli e Trigger... 9

Basi di Dati Relazionali

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Sommario. Oracle Database 10g (laboratorio) Grid computing. Oracle Database 10g. Concetti. Installazione Oracle Database 10g

SISTEMI DI NUMERAZIONE E CODICI

Monitoraggio e performance: il ruolo del DBA manager e gli strumenti a supporto

Il sistema operativo TinyOS

Mac Application Manager 1.3 (SOLO PER TIGER)

Comprendere il Cloud Computing. Maggio, 2013

Considerazioni sui server

Navigare verso il cambiamento. La St r a d a. p i ù semplice verso il ca m b i a m e n t o

DATABASE.

Sistemi avanzati di gestione dei Sistemi Informativi

Approccio stratificato

Le funzionalità di un DBMS

DB POWER STUDIO Relatori: Franca Alessandra Guidetti Francesco Reggiani Viani

Sistemi centralizzati e distribuiti

MongoDB. Un database NoSQL Open-Source

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

DATABASE. nozioni di base

DW-SmartCluster (ver. 2.1) Architettura e funzionamento

PTDR Disaster Recovery for oracle database

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

Introduzione all Information Retrieval

Archivi e database. Lezione n. 7

SQL, NoSQL, o entrambi?

8 Tecniche di recovery

Introduzione alle basi di dati (prima parte)

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Concetti di base di ingegneria del software

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Customer Relationship Management. Open Source::

BASI DI DATI - : I modelli di database

Creare una Rete Locale Lezione n. 1

12. Implementazione di un File System Struttura a livelli Allocazione contigua

Sistemi avanzati di gestione dei Sistemi Informativi

Progettaz. e sviluppo Data Base

Basi di Dati prof. A. Longheu. 5 Progettazione fisica

Vivere meglio ed aiutare il proprio territorio

Le Basi di Dati. Le Basi di Dati

WNoD: Virtualizzazione, Grid e Cloud nel Calcolo Scientifico per l INFN

Replica con TeraStation 3000/4000/5000/7000. Buffalo Technology

e-dva - eni-depth Velocity Analysis

IL SISTEMA INFORMATIVO

lo standard della comunicazione tra farmacia e distributore farmaceutico

VMware. Gestione dello shutdown con UPS MetaSystem

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Transcript:

NoSQL: concetti generali Paolo Atzeni 30/05/2011

Il solito primo lucido DataBase Management System (DBMS) Sistema che gestisce collezioni di dati: grandi persistenti condivise garantendo privatezza affidabilità efficienza efficacia 30/05/2011 Paolo Atzeni: NoSQL 2

DBMS relazionali Nati negli anni '70 (più di trent'anni fa) Supporto efficace ed efficiente per applicazioni di tipo "gestionale" (contabilità, prenotazioni, gestione personale, ) con requisiti persistenza, condivisione, affidabilità dati a struttura semplice, con dati di tipo numerico/simbolico transazioni concorrenti di breve durata (OLTP) interrogazioni complesse, espresse mediante linguaggi dichiarativi e con accesso di tipo "associativo" 30/05/2011 Paolo Atzeni: NoSQL 3

In termini più tecnologici (Stonebraker & Cattel, CACM June 2011) "General-purpose traditional row stores" Disk-oriented storage Tables stored row-by-row on disk (hence, a row store) B-trees as the indexing mechanism Dynamic locking as the concurrency control mechanism A write-ahead log (WAL) for crash recovery SQL as the access language A "row-oriented" query optimizer and executor 30/05/2011 Paolo Atzeni: NoSQL 4

Un'altra cosa che si dice da vent'anni La rapida evoluzione tecnologica (miglioramento di prestazioni, capacità, e costi dell hardware) ha fatto emergere nuove esigenze applicative, per le quali la tecnologia relazionale è inadeguata (F. Bancilhon: Object-Oriented Database Systems. PODS 1988: 152-162) 30/05/2011 Paolo Atzeni: NoSQL 5

Aree applicative emergenti (già nel 1988) Progettazione assistita da calcolatore CASE (Computer-Aided Software Engineering) CAD (Computer-Aided Design) CAM (Computer-Aided Manufacturing) Gestione di documenti testi e automazione d ufficio dati multimediali Altro scienza e medicina sistemi AI 30/05/2011 Paolo Atzeni: NoSQL 6

Un'altra frase che si ripete spesso (Michael Stonebraker, Ugur Çetintemel: "One Size Fits All": An Idea Whose Time Has Come and Gone. ICDE 2005: 2-11) 30/05/2011 Paolo Atzeni: NoSQL 7

"One-size-fits-all" I sistemi relazionali, secondo Stonebraker, vengono proposti come soluzione universale In effetti, anche nel mondo relazionale, ciò non è più vero da tempo due grandi famiglie di applicazioni, con requisiti molto diversi OLTP OLAP 30/05/2011 Paolo Atzeni: NoSQL 8

Più in generale (nel 2005 ) 30/05/2011 Paolo Atzeni: NoSQL 9

e dopo il 2005 Motivi di insoddisfazione, nel mondo Web: la rigidità del modello relazionale (questione già emersa più volte, dagli anni '90, soddisfatta solo parzialmente dalle estensioni XML) esigenza di grande scalabilità per operazioni molto semplici in quantità enorme Anche in altri contesti: "pesantezza" dei sistemi relazionali, sia in termini di prestazioni sia di costo di gestione/amministrazione 30/05/2011 Paolo Atzeni: NoSQL 10

Web company, tipico problema Una start-up di successo, con crescita esplosiva Utilizzo di un DBMS open source (perché gratis o perché noto) Versione 1 su una macchina, presto insufficiente Versioni successive: partizionamento orizzontale (sharding), con la logica applicativa responsabile di dirigere le richieste ai nodi di competenza (di solito uno, vista la semplicità delle operazioni). Difficoltà: Interrogazioni internodo da reimplementare Transazioni internodo da gestire Fallimenti di nodo sempre più probabili, con conseguenze su affidabilità e disponibilità Ristrutturazioni dei dati e redistribuzioni "a caldo" molto impegnative 30/05/2011 Paolo Atzeni: NoSQL 11

Una risposta al problema Nuovi sistemi con Capacità di scalare facilmente operazioni semplici su moltissimi nodi Capacità di replicare e distribuire i dati su molti nodi Flessibilità nella struttura dei dati Nuove tecniche di indicizzazione e gestione della RAM Rinunciando a qualcosa Interfaccia molto più semplice di SQL Gestione delle transazioni meno rigorosa Commentiamo alcuni aspetti 30/05/2011 Paolo Atzeni: NoSQL 12

Nuovi sistemi con Capacità di scalare facilmente operazioni semplici su moltissimi nodi Capacità di replicare e distribuire i dati su molti nodi Flessibilità nella struttura dei dati Nuove tecniche di indicizzazione e gestione della RAM Rinunciando a qualcosa Interfaccia molto più semplice di SQL Gestione delle transazioni meno rigorosa 30/05/2011 Paolo Atzeni: NoSQL 13

Flessibilità nella struttura dei dati Dati semistrutturati, concetto di interesse dagli anni '90, con l'avvento del Web P. Buneman, tutorial, PODS 1997 http://db.cis.upenn.edu/dl/97/tutorial-peter/slides.ps.gz 30/05/2011 Paolo Atzeni: NoSQL 14

Dati semistrutturati, esempio 30/05/2011 Paolo Atzeni: NoSQL 15

Nuovi sistemi con Capacità di scalare facilmente operazioni semplici su moltissimi nodi Capacità di replicare e distribuire i dati su molti nodi Flessibilità nella struttura dei dati Nuove tecniche di indicizzazione e gestione della RAM Rinunciando a qualcosa Interfaccia molto più semplice di SQL Gestione delle transazioni meno rigorosa 30/05/2011 Paolo Atzeni: NoSQL 16

Scalabilità: un requisito fondamentale Tre tipi di architetture hardware parallele per DB Shared-memory: più processori condividono RAM e dischi Scalano in modo limitato, perché l'accesso alla memoria è un collo di bottiglia Shared-disk più processori (con RAM proprie) condividono dischi I buffer e i lock vanno coordinati, con limiti alla scalabilità Shared-nothing più processori ciascuno con RAM e dischi propri Scalano meglio (se i dati sono partizionabili e distribuibili automaticamente in modo da avere accessi bilanciati e le operazioni sono "localizzabili") 30/05/2011 Paolo Atzeni: NoSQL 17

Esempi e sistemi (Stonebraker & Cattel, CACM June 2011) Shared-memory: MySQL, PostgreSQL, SQL server Shared-disk Oracle RAC Shared-nothing Sistemi specializzati per DW, DB2, molti sistemi "NoSQL" Scalabilità necessaria: migliaia di nodi (Facebook, al momento, utilizza 4000 nodi MySQL, coordinati da una logica applicativa apposita) 30/05/2011 Paolo Atzeni: NoSQL 18

La scalabilità richiede operazioni locali Scalabilità delle letture è ottenuta (anche) attraverso la replicazione Scalabilità delle scritture è ottenuta attraverso il partizionamento ("sharding"); se una scrittura coinvolge più nodi, è necessario sincronizzare (vediamo poi le conseguenze delle repliche) La localizzazione delle transazioni che scrivono può essere favorita dalla replicazione dei dati di sola lettura (ad esempio anagrafiche) 30/05/2011 Paolo Atzeni: NoSQL 19

Nuovi sistemi con Capacità di scalare facilmente operazioni semplici su moltissimi nodi Capacità di replicare e distribuire i dati su molti nodi Flessibilità nella struttura dei dati Nuove tecniche di indicizzazione e gestione della RAM Rinunciando a qualcosa Interfaccia molto più semplice di SQL Gestione delle transazioni meno rigorosa 30/05/2011 Paolo Atzeni: NoSQL 20

E le transazioni? Abbiamo sistemi distribuiti, con replicazione. In teoria, l'obiettivo è una trasparenza completa: gli utenti vedono la base di dati come se fosse un unico corpus e tutti gli utenti vedono gli stessi valori Però: la replicazione serve per aumentare le prestazioni se le repliche debbono essere aggiornate, gli aggiornamenti distribuiti vanno gestiti con 2PC e questo può rallentare 30/05/2011 Paolo Atzeni: NoSQL 21

Un inciso, il "CAP theorem" Un sistema distribuito non può soddisfare contemporaneamente le tre proprietà: Consistency (consistenza o, meglio, coerenza) Availability (disponibilità) Partition-tolerance 30/05/2011 Paolo Atzeni: NoSQL 22

CAP Theorem Consistency In un sistema che abbia repliche, queste debbono essere aggiornate tutte prima di permettere accessi (gli accessi sono soggetti a controllo di concorrenza, con lock o mv) Availability Un sistema disponibile deve avere repliche (visto che i guasti sono possibili) Partition-tolerance Se le repliche sono su nodi diversi, questi possono essere isolati l'uno dall'altro "Dimostrazione": se abbiamo partition-tolerance e in ciascuna partizione si può leggere senza interruzione (availability), allora non possiamo avere consistency, perché gli aggiornamenti non possono propagarsi, 30/05/2011 Paolo Atzeni: NoSQL 23

Un'osservazione sul CAP Theorem (Stonebraker & Cattel, CACM June 2011) Distinguiamo reti locali (LAN) e geogragiche (WAN) In ambiente LAN, il rischio di partizionamenti è basso e quindi si può rinunciare alla partition tolerance Le repliche WAN sono usate soprattutto per disaster recovery, ma i disastri sono rari, nel qual caso diventa (quasi) accettabile la rinuncia alla availability 30/05/2011 Paolo Atzeni: NoSQL 24

Forme di "consistency" Strong consistency Gli esiti di una scrittura sono correttamente visibili da tutte le letture successive Weak consistency Non è garantito che gli esiti di una scrittura siano visibili dalle letture (immediatamente successive) Eventual consistency (una forma di weak consistency) "Prima o poi" gli esiti di una scrittura sono visibili a tutte le letture 30/05/2011 Paolo Atzeni: NoSQL 25

"Implementazione" In un sistema con repliche, letture e scritture si possono gestire "a maggioranza" Supponiamo N repliche W numero di repliche che debbono essere scritte (e confermate) per garantire il completamento di una scrittura R numero di copie (uguali) che debbono essere consultate prima di rispondere ad una lettura La "strong consistency" richiede W+R>N (così è sicuro che le letture concludano almeno un dato aggiornato e quindi che siano tutti aggiornati) 30/05/2011 Paolo Atzeni: NoSQL 26

"Implementazione", strong consistency W+R>N: L'insieme degli elementi letti e quello delle repliche aggiornate hanno elementi in comune; se le letture sono coerenti fra loro, si ha la certezza di avere letto il valore corrente 30/05/2011 Paolo Atzeni: NoSQL 27

Sistemi replicati "tradizionali" Sistemi ad alta affidabilità (repliche sincrone) N = 2, W=2, R=1, ok Sistemi con repliche asincrone che permettono di leggere dal backup: N = 2, W=1, R=1, strong consistency non garantita Sistemi ad alta affidabilità e un po' di attenzione alle prestazioni N= 3, W=2, R=2 Se non si riesce a scrivere su W nodi, l'operazione fallisce (in un certo senso si perde la availability, almeno in scrittura) 30/05/2011 Paolo Atzeni: NoSQL 28

Sistemi replicati per grande carico di lettura R molto piccolo (di solito 1) N molto grande Se si vuole consistenza W=N, con rischio di fallimenti delle scritture All'estremo opposto W=1 con replicazione asincrona Altro punto di vista, con consistency "read-optimized" R=1, W=N "write-optimized" W=1, R=N (ma non garantisce persistenza e c'è il rischio di scritture inconsistenti, cosa che vale sempre se W<(N+1)/2) 30/05/2011 Paolo Atzeni: NoSQL 29

Weak consistency W+R N l'insieme degli elementi letti e quello delle repliche aggiornate possono non avere elementi in comune In pratica, si usa quasi solo per R=1, per avere alta scalabilità e disponibilità anche in presenza di partizionamento 30/05/2011 Paolo Atzeni: NoSQL 30

Eventual consistency, un inciso In molte applicazioni reali, gli aggiornamenti sono spesso propagati con un certo ritardo: Le operazioni bancarie (ad esempio i prelevamenti bancomat) vengono spesso registrate dopo qualche giorno. Il saldo, di solito non è aggiornato rispetto alle transazioni eseguite e confermate! (Dan Pritchett BASE: An Acid Alternative ACM Queue July 28, 2008) 30/05/2011 Paolo Atzeni: NoSQL 31

Transazioni nei sistemi nosql Vari approcci Nuove versioni per ogni scrittura con versioni incomparabili in caso di scritture multiple Scrittura preceduta da lettura, con successo se al momento della scrittura il dato non è cambiato ACID, ma solo con transazioni piccole e locali Quorum 30/05/2011 Paolo Atzeni: NoSQL 32

To SQL or not to SQL, that is the question Cattel (2010), Shakespeare (1601) SQL A parità di operazioni (piccole, locali, ) le prestazioni e la scalabilità potrebbero essere paragonabili Soluzioni relazionali valide sono state trovate per carichi applicativi specifici (OLTP, OLAP, in-memory, distibuiti, ) "One-size-fits-all" non regge, ma un'interfaccia comune può Il linguaggio ad alto livello facilita lo sviluppo (e non penalizza le prestazioni) La tecnologia relazionale è solida, ha rimpiazzato le precedenti e ha resistito alle successive (OO, XML) nosql Non è stato dimostrato che le prestazioni sono paragonabili Sistemi con modelli semplici hanno una curva d'apprendimento più sostenibile La struttura relazionale è rigida Le operazioni multi-nodo/-tabella sono scoraggiate o impossibili Alcuni sistemi si stanno diffondendo in modo significativo 30/05/2011 Paolo Atzeni: NoSQL 33

Sistemi "nosql" Orientati alle applicazioni con operazioni semplici e locali Categorie Key-value stores Document stores Extensible record stores Esistono anche sistemi SQL per operazioni semplici e locali, con implementazioni diverse da quelle tradizionali 30/05/2011 Paolo Atzeni: NoSQL 34