Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P...

68
1 Laura Ricci P2P in DataCenters: Dynamo Dipartimento di Informatica Università degli Studi di Pisa Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa Dipartimento di Informatica

Transcript of Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P...

Page 1: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

1Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

Lezione n.14P2P IN DATACENTERS:

AMAZON DYNAMO

Laura Ricci17/4/2013

Università degli Studi di PisaDipartimento di Informatica

Page 2: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

2Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DHT: APPLICAZIONI● DHT utilizzate in diverse applicazioni/sistemi commerciali

● rete KAD/ Trackerless Bittorrent

● recentemente le tecnologie P2P sono state utilizzate per la realizzazione di storage systems su larga scale

● questi sistemi sistemi si differenziano dai sistemi P2P “puri” per:● maggior affidabilità delle macchine● maggior raggiungibilità (no NAT)● minor livello di dinamicità

● Esempi:Dynamo: Amazon

Cassandra: Facebook Voldemort: LinkedIN Big Table: Google

Page 3: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

3Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

ACID: DA WIKIPEDIA● Transazione = singola operazione logica, termine utilizzato nel contesto dei

database tradizionali

● Esempio:● il trasferimento di fondi da un conto ad un altro che coinvolge un insieme

di modifiche, come un addebito ed un accredito

● ACID (Atomicity, Consistency, Isolation, Durability): insieme di proprietà che garantiscono che le transazioni vengono elaborate in modo affidabile

● Proprietà definite da Jim Gray nel 1970, che propose un insieme di tecnologie per verificarle.

● ACID: termine coniato nel 1983, ripreso recentemente....● garantire tali proprietà in large scale storage system nel caso di “big

data” (Facebook, Google, Amazon) risulta molto complesso....

Page 4: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

4Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

ACID: ATOMICITY● Atomicity: transazione “tutto o nulla”, se una parte della transazione

fallisce, l'intera transazione fallisce e lo stato dei dati rimane invariato. La proprietà deve essere garantita anche in presenza di guasti, errori,...

● Esempio: ● un database con due campi, A e B● vincolo di integrità: somma di A e B uguale a 100

CREATE TABLE acidtest (A Integer, B Integer Check (A + B = 100));

● transazione valida: sottrai 10 ad A ed aggiungi 10 a B.

● violazione di atomicity: dopo aver sottratto 10 da A, la transazione non è

in grado di modificare B.

Page 5: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

5Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

ACID: CONSISTENCY

● Consistency: tutti i vincoli definiti sui dati devono essere rispettati dalle

transazioni definite

● Esempio:

● un database con due campi, A e B

● vincolo di integrità: somma di A e B uguale a 100

CREATE TABLE acidtest (A Integer, B Integer Check (A + B = 100));● Una transazione che sottrae 10 da A, ma non lo sottrae a B può essere

atomica, ma non rispetta il vincolo di integrità. L'intera transazione deve

essere cancellata ed il sistema riportato ad uno stato consistente

Page 6: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

6Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

ACID: ISOLATION● Isolation: l'esecuzione concorrente di un insieme di transazioni restituisce

lo stesso stato dei dati che si sarebbe ottenuto eseguendo le transazioni sequenzialmente

● riguarda il controllo dell'esecuzione concorrente delle transazioni

● Esempi:

Page 7: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

7Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

ACID: DURABILITYIsolation: Il risultato di una transazione deve essere memorizzato su una memoria non volatile prima del commit della transazione

● Esempio: ● un database con due campi, A e B● vincolo di integrità: somma di A e B uguale a 100

CREATE TABLE acidtest (A Integer, B Integer Check (A + B = 100));

● una transazione atomica trasferisce 10 da A a B. ● a questo punto viene inviato un messaggio di “successo” all'utente. ● le modifiche, tuttavia, sono ancora memorizzate in un buffer in attesa di

essere memorizzate su disco. ● se c'è un fault e la memorizzazione non avviene, viene ad essere invalidata

la durability

Page 8: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

8Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

ACID E LARGE SCALE STORAGES

● Molto difficile garantire proprietà ACID per applicazioni web-based● “Big Data”, “Big Users”● alti tassi di letture/scritture● dati non strutturati (no schema)

● SQL-based database non scalano

● necessarie soluzioni più flessibili

Page 9: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

9Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

ACID E LARGE SCALE STORAGES

● Molto difficile garantire queste proprietà per applicazioni web-based● “Big Data”, “Big Users”● alti tassi di letture/scritture● dati non strutturati (no schema)● RDBMS non scalabili....

● soluzioni possibili● replication● sharding

Page 10: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

10Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

AUMENTARE LA SCALABILITA'

● Soluzione: replicazione dell'intero database, vertical scaling

● Architettura scalabile

● Aumenta la scalabilità delle operazioni

di lettura

● Sincronizzazione di letture

Page 11: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

11Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

AUMENTARE LA SCALABILITA'

● Soluzione: sharding, horizontal scaling

● partizionare il database tra diversi host

● Aumenta la scalabilità sia delle operazioni di lettura che di quelle di scrittura

● Non possibili transazioni tra shard diverse

● Soluzione iniziale adottata da ● Facebook, ● YouTube, ● Yahoo

Page 12: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

12Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

EFFICIENZA CONTRO COSTO

Page 13: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

13Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

RIPENSARE L'ARCHITETTURA

Page 14: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

14Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

NOSQL: NUOVE ARCHITETTURE

● Una applicazione sociale non è una banca....richiesti livelli inferiori di ACID

● Distributed Data Storage:rilasciano una o più delle proprietà ACID

Page 15: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

15Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

CONSISTENCY MODELS

● Strong Consistency: dopo il completamento di un aggiornamento, tutti gli accessi successivi fanno riferimento al dato aggiornato

● Eventual Consistency: il sistema non garantisce la restituzione del valore aggiornato

● finestra di incostistenza● in seguito, tutti gli accessi restituiscono il solito valore

Page 16: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

16Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO: LE SFIDE

● High available key-value store

● Sfida: reliability/availability at maasive scale

● decine di milioni di clienti

● decine di migliaia di nodi

Page 17: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

17Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

● NOSQL storage systems utilizzato da Amazon (insieme ad altri, S3 Simple Stotage System,....)

● influenza su architettura di diversi altri storage systems

● Caratteristiche:● “highly decentralized, loosely coupled, service oriented architecture”● infrastruttura: decine di migliaia di server geograficamente dislocati

sul globo● commodity hardware● “standard mode of operation”: nodi soggetti a fallimento

DYNAMO: CARATTERISTICHE GENERALI

Page 18: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

18Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO: CARATTERISTICHE GENERALI

● Obiettivi:● rinunciare alla strong consistency in favore di

● availability● scalability

● service-level agreement● scalabilità● semplicità

● architettura peer to peer like: ogni nodo con le stesse responsabilità● eterogeneità dei nodi

Page 19: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

19Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

● Key-value storage

● get(key): restituisce una lista di oggetti ed un contesto● può restituire un insieme di diversi oggetti associati alla chiave se

esistono più versioni dello stesso dato in conflitto. ● contesto: insieme di metadati, utilizzato per l'implementazione del

versioning

● put(key, object, context): non restituisce alcun valore● contesto: come sopra

● key, object:● non interpretati da Dynamo● considerati come vettori di bytes● key ottenuta mediante l'applicazione dell'algoritmo MD5

DYNAMO API

Page 20: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

20Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO: SCELTE DI PROGETTO

● Data Partitioning

● Replication

● Data Versioning

● Esecuzione put e get

● Membership

● Gestione dei Fallimenti

Page 21: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

21Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DATA PARTITIONING

● Partitioning dei dati basato su consistent hashing● mapping dei dati “alla Chord”● 1-hop routing

Page 22: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

22Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DATA PARTITIONING: 1-HOP DHT● Ogni peer memorizza nella propria routing table tutti gli altri peer

dell'overlay

● Fully meshed overlay● routing semplificato ed efficiente● aumenta dimensione routing table● overhead per la gestione delle routing table: ogni nodo deve essere

informato di ogni cambiamento nell'overlay● alta richiesta di banda per la diffusione degli aggiornamenti

● 1-hop DHT● enterprise DHT: maggiore capacità computazionale e richiesta di

banda● maggiore stabilità dell'overlay● alto numero di query /secondo molto alto● scalabilità fino ad alcune centinaia di migliaia di nodi.

● ragionevole per una enterprise DHT

Page 23: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

23Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

CONSISTENT HASHING: DISTRIBUZIONI

● Analisi della distribuzione dei dati

● Parametri4,096 nodiSpazio degli indirizzi di m=22 bitsNumero massimo di documenti e/onodi = 222=4.194.304

Più simulazioni, le chiavi per nodi e documenti generate in modo random, in media 500,000 documenti Ottimo = ~122 documenti per nodoGrafico: mostra quanti nodi (asse y) memorizzano un certo numero di documenti (asse x)

Distribuzione Ottima dei Documenti sui Nodi del

Sistema

Page 24: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

24Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO: CAUSE DI SBILANCIAMENTO

Distribuzione deinodi non perfettamenteuniforme

Distribuzione deidati non perfettamente uniforme

Hot Spots Eterogeneità dei nodi

Page 25: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

25Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO: VIRTUAL SERVERS

● per ogni nodo più identificatori logici● ogni identificatore rappresenta un virtual server (VS)

● ogni nodo esegue più VS● responsabile per più regioni non contigue● numero di VS proporzionali alle risorse di calcolo del nodo

Virtual Server (regioni) stesso colore sono gestiti dallo stesso nodo

Page 26: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

26Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO: ARCHITETTURA

Page 27: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

27Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO: REPLICAZIONE● “the standard mode of operation” di Dynamo prevede i crash delle macchine

● per assicurare l'availability dei dati, i dati vengono replicati

● ogni dato replicato sugli n-1 successori del nodo su cui è mappato sull'anello (n parametro configurabile, tipicamente 3)

● Preference List= Lista di nodi che contengono le repliche del dato

● replicazione aumenta anche la performance● richieste read-only possono essere

distribuite a qualsiasi replica● “copie multiple”: necessari meccanismi per la consistenza delle copie replicate

Page 28: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

28Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

REPLICAZIONE E VIRTUAL SERVERS

● Mapping Virtual Node-nodi fisici: ● evitare che repliche dello stesso VN appartengano allo stesso nodo fisico● se più repliche mappate sullo stesso nodo fisico, considerare nodi fisici

successivi

Page 29: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

29Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO: JOIN● nodi aggiunti e rimossi esplicitamente dall'amministratore

● sistema deve fornire servizi anche durante le operazioni di join/leave

● inserzione/eliminazione di nodi: redistribuzione dei dati e delle repliche

● Membership management

● Tutti i nodi devono essere informati di una modifica all'overlay (1-hop

DHT)● Algoritmi di gossip per propagare le modifiche all'overlay

Page 30: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

30Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO: JOIN● Il nuovo nodo annuncia sua presenza● gli immediati vicini (a destra e sinistra) modificano la ownership delle chiavi e

delle repliche: operazione sincrona● il nuovo nodo a copia i dati dai vicini: operazione asincrona● aggiornamenti inviati via gossip agli altri nodi: operazione asincrona

Il nodo X si unisce al sistema

Page 31: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

31Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO: JOINAggiornamento asincrono delle viste: un nodo che non possiede una vista aggiornata può inoltrare le richiesta ● ad un vicino n del nuovo nodo x che non possiede più l'informazione

● n inoltra l'informazione ad x● ad x che non possiede ancora il nuovo dato

● utilizzati i vector clock per determinare la validità dei dati

Il nodo X si unisce al sistema

Page 32: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

32Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO: LEAVE

● Verifica periodica della presenza dei nodi effettuata durante i cicli gossip del protocollo epidemico

● I vicini del nodo caduto aggiornano i range e si scambiano dati, in modo da avere un numero consistente di repliche

Page 33: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

33Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO E DHT CLASSICHE: DIFFERENZE

● Le tecniche viste nei lucidi precedenti sono simili a quelle utilizzate nelle DHT

“classiche”

● ma....Dynamo utilizza la DHT per memorizzare dati applicativi

● Problema principale

● versioning: gestione di diverse versioni dello stesso dato

● sincronizzazione sulle write alle diverse versioni

● tecniche utilizzate:

● vector clocks

● quorum

Page 34: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

34Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DATA VERSIONING

● una operazione di put può terminare prima che il nuovo valore sia stato propagato a tutte le copie

● una successiva get() può restituire dati non contenenti ultimi aggionamenti

● high availability, ma eventual consistency

● Alcune applicazioni di Amazon possono tollerare questo modello di consistenza:

● shopping carts● operazione “add to cart”, deve essere sempre eseguita

● make money!● se la copia locale non è la più recente

● eseguire comunque l'operazione● riconciliare successivamente versioni “divergenti”

Page 35: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

35Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

SHOPPING CART EXAMPLE

Shopping cart: contiene i libri acquistati, replicata su più nodi(A,B)

Client: effettua operazioni sulla propria shopping cart

Aggiornamenti eseguiti su nodi diversi della DHT

Quorum: insieme di nodi aggiornati dalla prima put

“write sempre eseguita”, ma inconsistenza finale

Page 36: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

36Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DATA VERSIONING● Approccio: scrivere sempre, riconciliare versioni contrastanti al momento

della lettura

● “riconciliazione sintattica”● la nuova versione “ingloba le vecchie versioni “● conflitto rilevato in modo automatico

● “riconciliazione semantica”● quando non è possibile una riconciliazione “automatica”● fallimenti/ aggiornamenti concorrenti● riconciliazione effettuata dal client:

● collassa in una unica versione più “rami” corrispondenti a “storie diverse di aggiornamento”.

● Per entrambe: utilizzo di vector clocks

Page 37: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

37Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

VECTOR CLOCKS: DEFINIZIONI● Ogni nodo mantiene un clock logico: contatore incrementato ogni volta che si

esegue un aggiornamento

● Vector Clock: lista di coppie <nodo, contatore>● un contatore per ogni nodo che ha aggiornato il documento

● definiscono relazioni di causalità tra le versioni

● ordinamento parziale tra vector clocks:● v

1 ≤ v

2, sei contatori in v

1 sono tutti minori di quelli corrispondenti in v

2

● se v1 ≤ v

2, la versione corrispondente a v

2 è più aggiornata ed ingloba quella

associata a v1, la versione associata a v

1 può essere scartata

● altrimenti le due versioni non sono correlate● aggiornamenti paralleli o presenza di faults● necessaria riconcialiazione semantica da parte della applicazione (ad

esempio, merge)

Page 38: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

38Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

MODIFICHE SU DATI REPLICATI

Page 39: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

39Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

VECTOR CLOCKS

Page 40: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

40Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

MODIFICHE SU DATI REPLICATI

Page 41: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

41Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

MODIFICHE SU DATI REPLICATI

Page 42: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

42Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

MODIFICHE SU DATI REPLICATI

Page 43: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

43Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

MODIFICHE SU DATI REPLICATI

Page 44: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

44Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

RISOLUZIONE DEI CONFLITTI● Dato replicato su 3 nodi A, B, C

● Un client C1 crea un nuovo

oggetto e lo memorizza● memorizzazione eseguita

dal nodo A● A crea un vector clock che

individua la versione D1

dell'oggetto

● Successivamente D1 verrà

propagata a B ed a C

Page 45: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

45Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

RISOLUZIONE DEI CONFLITTI

● Dato replicato su A, B, C

● Il client C1 effettua un aggiornamento del dato, l'aggiornamento è gestito dal nodo A

● Nel sistema ora esistono le versioni D

1 e D

2 dell'oggetto, ma

● D2 “incorpora” D

1

● D1 può essere eliminata

● Politica “always write”: gli altri nodi non vengono a conoscenza immediantamente di D

2

Page 46: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

46Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

RISOLUZIONE DEI CONFLITTI

● il client C1 effettua un nuovo

aggiornamento sullo stesso dato● utilizza la versione D

2, che già

possedeva perchè la aveva aggiornata in precedenza

● l'aggiornamento viene gestito dal nodo B

● il client C2

● legge la versione D2 dal nodo A

● la aggiorna● l'aggiornamento è gestito dal

nodo C

Page 47: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

47Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

RISOLUZIONE DEI CONFLITTI

● un client C3 legge le versioni D3, e

D4 e rileva un conflitto

● necessaria riconciliazione

● La riconciliazione è effettuata dal nodo A

Page 48: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

48Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

RISOLUZIONE DEI CONFLITTI

● A gestisce il nuovo aggiornamento

● Il read context è un “riassunto”

dei vector clock di D3 e D4.

● “riconcilia” le versioni

● Versione D5: riconciliata e scritta

da A

Page 49: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

49Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

RISOLUZIONE DEI CONFLITTI● Dato replicato su 3 nodi A, B, C

● Un client C1 crea un nuovo

oggetto e lo memorizza

● memorizzazione eseguita

dal nodo A

● A crea un vector clock che

individua la versione D1

dell'oggetto

● Successivamente D1 verrà

propagata a B ed a C

Page 50: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

50Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

RISOLUZIONE DEI CONFLITTI● Dato replicato su A, B, C

● Il client C1 effettua un aggiornamento del dato, l'aggiornamento è gestito dal nodo A

● Nel sistema ora esistono le versioni D

1 e D

2 dell'oggetto, ma

● D2 “incorpora” D

1

● D1 può essere eliminata

● Politica “always write”: gli altri nodi non vengono a conoscenza immediantamente di D

2

Page 51: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

51Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

RISOLUZIONE DEI CONFLITTI

● Il dato viene modificato e la

modifica viene gestita dal nodo B

● B non ha ancora ricevuto

l'aggiornamento da A

● Nel sistema esistono due versioni,

quella di A e quella di B

Page 52: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

52Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

RISOLUZIONE DEI CONFLITTI

● Un client legge le due versioni da A

e da B

● D4 inglobata da D

3

● La versione D4

può essere scartata

automaticamente

● Il sistema mantiene la versione D5

Page 53: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

53Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

QUORUM MODELN, W, R: quorum model● N repliche● W numero repliche aggiornate in modo sincrono (non tutte le N repliche)● R numero di repliche lette da una operazione di get()

● Per ottenere strong consistency W + R > N

Page 54: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

54Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

QUORUM MODELN, W, R: quorum model:

● N repliche● W numero repliche aggiornate in modo sincrono (non tutte le N repliche)● R numero di repliche lette da una operazione di get()

● tipica configurazione per Dynamo

● (N,R,W) == (3,2,2)

● Se si accettano inconsistenze

● high performance read: R==1, W==N

● valori bassi di R e W portano ad un numero maggiore di inconsistenze

Page 55: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

55Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

ESECUZIONE PUT( ) E GET( )● PUT( )

● il coordinatore genera un nuovo vector clock (a partire dalla versione letta) e lo memorizza localmente

● invia il dato modificato, insieme al vector clock, alle N repliche● attende la risposta da W-1 nodi● la put termina quando almeno W-1 nodi hanno riportato successo

● GET( )● invio la richiesta ad N nodi, aspetto R risposte● scarta versioni inglobate da altre: “riconcialiazione sintattica”● restituisce versioni che pensa non essere correlate● il client effettua la “riconciliazione semantica”● il dato modificato viene riscritto

Page 56: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

56Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

ESECUZIONE PUT( ) E GET( )● I client possono inviare le loro richieste

● al nodo responsabile del dato (coordinatore)● minore latenza, put(), get() inserite direttamente nel codice del client

● ad un load balancer● aumenta la latenza

● PUT( )● il coordinatore genera un nuovo vector clock e lo memorizza localmente● invia il vettore alle N repliche● attende la risposta da W-1 nodi

● GET( )● invio la richiesta ad N nodi, aspetto R risposte● scarta versioni inglobate da altre, restituisce versioni non correlate● “riconciliazione” e riscrittura versioni non correlate● se R+W<N

Page 57: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

57Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

READ REPAIR

Page 58: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

58Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

READ REPAIR

Page 59: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

59Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

READ REPAIR

Page 60: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

60Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

READ REPAIR

Page 61: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

61Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

SHOPPING CART EXAMPLE

Page 62: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

62Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

SHOPPING CART EXAMPLE

Page 63: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

63Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO: TRANSIENT FAILURES

● A causa di irraggiungibilità temporanea di nodi il quorum di scritture può non essere raggiunto

● Sloppy quorum = quorum approssimativo

● Creazione di copie transienti: hinted handoff

● Riconciliazione successiva

● A irraggiungibile● PUT inviata a D● Successivamente quando D riesce raggiungere A

● invia replica ad A ● rimuove la replica

Page 64: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

64Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO: PERMANENT FAILURES

● Versioning non garantisce la consistenza● se non è richiesto un quorum di maggioranza, ● se si verificano fallimenti

● occorre comunque verificare periodicamente che le copie non siano in conflitto

● utilizzo di Merkel trees● anti-entropia

Page 65: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

65Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO: ANTI ENTROPIAMerkel Tree:● Foglie: hash dei valori● Nodi interni: composizioni di hash delle foglie

● Ogni nodo mantiene un Merkel tree per ogni range di chiavi da lui gestito

● Anti entropia: scambiare parti di Merkle tree

● Protocollo “divide and conquer”:● contatta un altro nodo sull'anello scelto in modo uniforme● se i due nodi gestiscono una replica dello stesso range, scambio delle root

dei Merkel tree● se le root coincidono, stop● se non coincidono, ripetere ricorsivamente i controlli sui figli

● Merkel tree ricalcolato per ogni join/leave

Page 66: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

66Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

DYNAMO: CONCLUSIONI● CAP

● Strong Consistency:NO● Tutti i nodi vedono lo stesso dato nello stesso tempo

● Availability:SI● Partition Tolerance:SI

● Il sistema continua ad operare nonostante perdite di messaggi o fallimento di alcune sue parti

● KEY/Value Storage: put e get● Data Partitioning: consistent hashing● Load balancing: virtual servers● Replication: preference list, successor nodes● Data Versioning: vector clocks, conflitti risolti al momento della lettura

dalla applicazione● Membership: join/leave gestiti dall'amministratore, gossip-based update

delle viste● Gestione fallimenti transienti: hinted hand-off● Gestione fallimenti permanenti: Merkle trees

Page 67: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

67Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

CAP THEOREM

● Consistency: grado di consistenza di un sistema dopo l'esecuzione di un aggiornamento

● Availability: possibilità di scrivere/leggere un dato in ogni istante

● Tolleranza ai partizionamenti: capacità del sistema di lavorare in presenza di partizione delle rete

● CAP Theorem: un sistema può soddisfare al massimo 2 delle proprietà CAP

● in generale, scegliere tra C e A● database tradizionali: preferenza a C● Web applications: preferenza A

Page 68: Lezione n - Dipartimento di Informaticaricci/17-04-13-Distributed-Storage.pdf · Lezione n.14 P2P IN DATACENTERS: AMAZON DYNAMO Laura Ricci 17/4/2013 Università degli Studi di Pisa

68Laura Ricci

P2P in DataCenters: DynamoDipartimento di InformaticaUniversità degli Studi di Pisa

CAP: CLASSIFICAZIONE DEI SISTEMI