Sistemi di computing e
storage nel Cloud
Corso di Sistemi Distribuiti e Cloud Computing
A.A. 2013/14
Valeria Cardellini
MapReduce
Modello di programmazione per processare ed
elaborare grandi quantit di dati distribuiti su larga scala
http://labs.google.com/papers/mapreduce.html
Web indexing
Reverse Web-link graph
Distributed sort
Web access statistics
MapReduce fornisce
MapReduce: modello
Reduce
Combina valori in un set di dati per creare un nuovo valore
reduce (out_key, list(intermediate_value)) -> list(out_value)
Esempio: sum = (each elem in arr, total +=)
reduce [1,4,9,16,25]
returns 55 (la somma degli elementi)
2
MapReduce: esempio
Contare il numero di occorrenze di ciascuna parola in
una grande collezione di documenti (WordCount)
Map(String key, String value):
// key: document name
// value: document contents
for each word w in value:
EmitIntermediate(w, 1 );
Hadoop
Apache Hadoop provides open-source software for
reliable, scalable, distributed computing
Includes Hadoop MapReduce for easily writing applications
which process vast amounts of data (multi-terabyte datasets) in-parallel on large clusters (thousands of nodes) of
commodity hardware in a reliable, fault-tolerant manner
See
http://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html
for the WorkCount code
Dynamo
Sistema di storage usato da numerosi servizi
di base nella piattaforma di Amazon
Sistema di storage di tipo chiave-valore
altamente disponibile e scalabile
Idea di base: gestire i fallimenti la modalit
standard di funzionamento
Ad es., per il servizio di shopping cart: Customers should be
able to view and add items to their shopping cart even if disks
are failing, network routes are flapping, or data centers are
being destroyed by tornados
10
Piattaforma di Amazon
11
Caratteristiche di Dynamo
Semplice interfaccia chiave/valore
Semplici operazioni di lettura (get) e scrittura (put) su oggetti
identificati in modo univoco da una chiave
Oggetti di dimensione < 1MB
Le operazioni coinvolgono un solo oggetto alla volta
12
Ulteriori principi:
Scalabilit incrementale
Aggiunta di nodi senza compromettere il funzionamento del
sistema
Simmetria e decentralizzazione
Tecniche dei sistemi P2P
Eterogeneit
Valeria Cardellini - SDCC 2013/14
13
Technique
Advantage
Partitioning
Consistent hashing
Vector clocks with
reconciliation during reads
Incremental scalability
Version size is decoupled
from update rates
Provides high availability
and durability guarantee
when some of the replicas
are not available
Synchronizes divergent
replicas in the background
Preserves symmetry and
avoids having a
centralized registry for
storing membership and
node liveness information
Recovering from
permanent failures
Gossip-based
membership protocol and
failure detection
15
Partizionamento in Dynamo
Consistent hashing: l intervallo di output della
funzione di hash viene trattato come uno spazio
circolare fisso o anello (in modo simile a Chord)
Nodi e chiavi sono mappati sull anello
A differenza di Chord: zero-hop DHT
16
Replicazione in Dynamo
Ogni oggetto replicato su N nodi
N un parametro configurabile dall applicazione che usa
Dynamo
17
Technique
Advantage
Partitioning
Consistent hashing
Vector clocks with
reconciliation during reads
Incremental scalability
Version size is decoupled
from update rates
Provides high availability
and durability guarantee
when some of the replicas
are not available
Synchronizes divergent
replicas in the background
Preserves symmetry and
avoids having a
centralized registry for
storing membership and
node liveness information
Recovering from
permanent failures
Gossip-based
membership protocol and
failure detection
18
19
Technique
Advantage
Partitioning
Consistent hashing
Vector clocks with
reconciliation during reads
Incremental scalability
Version size is decoupled
from update rates
Provides high availability
and durability guarantee
when some of the replicas
are not available
Synchronizes divergent
replicas in the background
Preserves symmetry and
avoids having a
centralized registry for
storing membership and
node liveness information
Recovering from
permanent failures
Gossip-based
membership protocol and
failure detection.
20
Sloppy quorum
Tutte le operazioni di read/write sono eseguite dai primi N
nodi funzionanti presi dalla preference list (non sempre
coincidono con i primi N nodi sull anello relativi alla data
chiave)
21
Caratteristiche di GFS
File system distribuito implementato in user space
Gestione di file di dimensioni molto grandi (multi GB)
File suddiviso in chunk di dimensione fissa (64MB)
Chunk memorizzati come normali file sui chunk server
23
Nodi in GFS
Due tipi di nodi
Master
Chunk server
Chunk server
Memorizzano i chunk
Master
24
25
Architettura di GFS
26
27
Semplice!
28
Interfaccia di GFS
I file sono organizzati gerarchicamente in directory e
identificati da pathname, ma GFS:
Non ha una struttura dati per directory
Non supporta alias
In pi:
snapshot: crea una copia di un file o dell albero di una
directory
record append: appende dati ad un file (supporta append
atomiche, concorrenti)
29
Chunk size
Chunk size is 64 MB (much larger than typical block
sizes)
Large chunk size reduces:
number of interactions between client and master
network overhead by keeping a persistent TCP connection
to the chunk server over an extended period of time
size of metadata stored on the master
30
Metadati in GFS
Metadati memorizzati sul master
Spazio dei nomi di file e chunk
Mapping da file a chunk
Posizioni delle repliche di ciascun chunk
31
Mutazioni in GFS
Mutazione = write o append
Deve essere applicata ad ogni
replica
Obiettivo: minimizzare il
coinvolgimento del master
Meccanismo di lease:
Il master sceglie una replica come
primaria e le assegna un lease
per le mutazioni
Il primario definisce un ordine
seriale delle mutazioni
Tutte le repliche seguono
quest ordine
32
33
34
35
36
GFS problems
GFS was designed (in 2001) with MapReduce in mind
But found lots of other applications
Designed for batch applications with large files (web crawling
and indexing) but wrong for applications like Gmail or YouTube,
meant to serve data in near real-time
Problems
Single master node in charge of chunk servers
All metadata about files stored in the master s memory: limits
total number of files
Problems when storage grew to tens of Pbytes
Automatic failover added (but still takes 10 seconds)
Designed for high throughput but delivers high latency: not
appropriate for latency sensitive applications
Delays due to recovering from a failed replica chunkserver
delay the client
Valeria Cardellini - SDCC 2013/14
37
38
Chubby
Servizio di lock a grana grossa
Offre un implementazione affidabile e scalabile di un
protocollo per il consenso distribuito (Paxos) incapsulata in
un API
Altri sistemi distribuiti (loosely-coupled) possono usarlo per
sincronizzare l accesso a risorse condivise
39
40
Interfaccia di Chubby
Presenta un semplice file system distribuito
Insieme ridotto di operazioni su file rispetto ad un
tradizionale FS distribuito
41
Proxy
Opzionale
All client traffic
One Chubby Cell
Master
replica
replica
replica
replica
replica
42
Cella di Chubby
Cella: insieme di server replica
Generalmente 5 server: 1 master e 4 repliche
43
44
44
Chubby non:
Supporta spostamento di file (move), link hard o simbolici
Mantiene semantica dei permessi dipendente dal path della
directory
Rivela data di modifica delle directory e data di ultimo
accesso ai file
Handle
Analoghi ai descrittori di file in Unix
Valeria Cardellini - SDCC 2013/14
45
API di Chubby
Open()
Creazione dell handle
Specifica come verr usato l handle (controllo degli accessi,
eventi che devono essere notificati, )
Close() e Poison()
Close() per chiudere un handle aperto
Poison() per far fallire le operazioni in corso o successive su
un handle senza chiudelo
47