Sistemi di storage nel Cloud



Documenti analoghi
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria

Sistemi di storage nel Cloud

Sistemi di computing e storage nel Cloud

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

Linee di evoluzione dei Database

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

MongoDB. Un database NoSQL Open-Source

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

Replicazione. Requisisti di consistenza i clienti devono ricevere risposte consistenti e coerenti. Motivazioni

Introduzione all Architettura del DBMS

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

Capitolo Silberschatz

P2P IN DATACENTERS: AMAZON DYNAMO

File system II. Sistemi Operativi Lez. 20

Il Software. Il software del PC. Il BIOS

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A

Griglie e Sistemi di Elaborazione Ubiqui. Grid File Systems. Requisiti, Funzionalità e Architettura. Grid File System: Requisiti

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

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Introduzione ai Web Services Alberto Polzonetti

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

Grid Data Management Services

Il File System. Il file system

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Griglie e Sistemi di Elaborazione Ubiqui. Grid File Systems. Requisiti, Funzionalità e Architettura. Griglie e Sistemi Ubiqui - D.

Inizializzazione degli Host. BOOTP e DHCP

SISTEMI OPERATIVI DISTRIBUITI

Introduzione alle applicazioni di rete

Corso di recupero di sistemi Lezione 8

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

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Apache e Mysql cluster

Sicurezza dei dati in EGRID

Problema del naming. Modello di Naming

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Grid Data Management Services

Reti di Telecomunicazione Lezione 7

Coordinazione Distribuita

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

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Sistemi Web Tolleranti ai Guasti

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

L API socket ed i daemon

Grid Data Management Services. Griglie e Sistemi di Elaborazione Ubiqui

Software di gestione della stampante

Programmazione dei socket con TCP #2

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Cluster per architetture a componenti

Scenario di Progettazione

Replica di Active Directory. Orazio Battaglia

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

Elaborazione dati parallela con map/reduce. Roberto Congiu

I file di dati. Unità didattica D1 1

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Capitolo 4 Pianificazione e Sviluppo di Web Part

Sistemi distribuiti su larga scala

Lezione 1 Introduzione

InteGrazIone con MICrosoFt DYnaMICs. mailup.com

Introduzione Kerberos. Orazio Battaglia

Lezione 1. Introduzione e Modellazione Concettuale

STRUTTURE DEI SISTEMI DI CALCOLO

Modello OAIS. Modello di riferimento. Il Modello. Prof.ssa E. Gentile a.a Un modello di riferimento dovrebbe descrivere:

Infrastruttura di produzione INFN-GRID

Indice. settembre 2008 Il File System 2

Corso di Informatica

L architettura di un DBMS

Reti di Telecomunicazione Lezione 6

Naming nei Sistemi Distribuiti

Naming nei Sistemi Distribuiti

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Servizio Amazon Storage Gateway

Contesto: Peer to Peer

MANUALE UTENTE UTILIZZO MODULO FILE-STORAGE DI ACS - CANALE AMBIENTE PROVINCIA DI TORINO

Sistemi Operativi. Lez. 16 File System: aspetti implementativi

PkBox Client Smart API

Tecnologia di un Database Server (centralizzato) Gestione del buffer

La sicurezza nel Web

Algoritmi per protocolli peer-to-peer

Il Sistema Operativo: il File System

Active Directory. Installatore LAN. Progetto per le classi V del corso di Informatica

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Memoria secondaria. Struttura del disco. Scheduling del disco. Gestione dell unità a disco. Affidabilità dei dischi: RAID

File System Distribuiti

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione

Librerie digitali. Introduzione. Cos è una libreria digitale?

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

ARP (Address Resolution Protocol)

PROGRAMMA DI CLASSE 5AI

Reti di Telecomunicazione Lezione 8

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

Lezione n.15 DHT: LOAD BALANCING. Peer-to-Peer Systems and Applications Capitolo 9. Laura Ricci

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

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Sistemi Operativi. 11 LEZIONE INTERFACCIA DEL FILE SYSTEM CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Transcript:

Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Sistemi di storage nel Cloud Corso di Sistemi Distribuiti e Cloud Computing A.A. 2014/15 Valeria Cardellini Data storage in the Cloud Various forms of data storage in the Cloud: NoSQL databases (or more generally, data stores) Examples: BigTable, Cassandra, MongoDB, HBase (BigTable s open source clone), DynamoDB Key-value storage systems Examples: Dynamo, Couchbase Distributed file systems Examples: Google File System (GFS), Hadoop Distributed File System (HDFS) Goals: massive scaling on demand (elasticity) and simplified application development and deployment Some storage systems offered only as Cloud services Either directly (e.g., Amazon DynamoDB) or as part of a programming environment Other systems used only within a particular company (e.g., Dynamo, GFS) Valeria Cardellini - SDCC 2014/15 1

NoSQL data stores NoSQL = Not Only SQL SQL-style querying is not the crucial objective A large number of immensely diverse data stores not based on the relational data model (key-value data stores, document stores, column-family stores, graph databases) Main features of NoSQL data stores Support flexible schema Scale horizontally Provide scalability and high availability by storing and replicating data in distributed systems, often across datacenters Do not typically support ACID properties, but are rather referred as BASE systems Valeria Cardellini - SDCC 2014/15 2 NoSQL data stores (2) Useful when working with Big data when the data s nature does not require a relational model Traditional join operations cannot be used Barriers to NoSQL adoption No full ACID transaction support Lack of standardized interfaces Huge investments already made in SQL by enterprises Valeria Cardellini - SDCC 2014/15 3

Key-value data stores Simple data model in which data is represented as a collection of key-value pairs Associative array (map or dictionary) as fundamental data model Each key is unique, and the clients put on or request values for each key Richer data models can be implemented on top Adopt consistency models ranging from eventual to sequential consistency Amazon s Dynamo is the most notable example Also by Amazon but not related to DynamoDB Other key-value stores include Memcached and Redis Valeria Cardellini - SDCC 2014/15 4 Column-family stores Store and process data by column instead of by row Both rows and columns are split over multiple nodes to achieve scalability (sharding, i.e. the ability to distribute the content of a collection among different nodes ) The main inspiration is Google's Bigtable Bigtable organizes the data storage in tables, whose rows are distributed over the distributed file (Google File System) A table is organized into rows and columns; columns can be grouped in column family, which allow for specific optimization for better access control, storage and data indexing Bigtable also relies on Chubby Valeria Cardellini - SDCC 2014/15 5

Document stores Support more complex data structures than key-value stores No strict schema to which documents must conform, which eliminates the need of schema migration efforts The data model resembles the JSON object MongoDB and CouchDB are two major representatives Valeria Cardellini - SDCC 2014/15 6 Case study: Amazon s Dynamo Sistema di storage interno usato da numerosi servizi 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 Garantire il rispetto di Service Level Agreements Ad es., service guaranteeing that it will provide a response within 300ms for 99.9% of its requests for a peak client load of 500 requests per second. G. DeCandia et al., "Dynamo: Amazon's highly available key-value store", Proc. of ACM SOSP 2007. Valeria Cardellini - SDCC 2014/15 7

Piattaforma di Amazon Valeria Cardellini - SDCC 2014/15 8 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 Elevata disponibilità con una finestra di consistenza definita (eventual consistency) BASE anziché ACID Uso efficiente delle risorse Schema semplice di scale-out per gestire l aumento di dimensione del set di dati o dei tassi di richieste Uso interno di Dynamo: ambiente operativo non ostile e quindi no requisiti relativi a sicurezza (ad es. autorizzazione ed autenticazione) Valeria Cardellini - SDCC 2014/15 9

Principi progettuali di Dynamo Sacrificare la consistenza forte in favore della disponibilità (vedi teorema CAP) Uso di tecniche di replicazione ottimistiche Possono verificarsi aggiornamenti conflittuali che devono essere individuati e risolti: quando e chi risolve i conflitti? Quando: risoluzione dei conflitti eseguita durante operazioni di read anziché di write, ossia always writeable Chi: data store o applicazione; se data store si usa una politica semplice (ad es. last write wins ) Ulteriori principi: Scalabilità incrementale Aggiunta di nodi senza compromettere il funzionamento del sistema Simmetria e decentralizzazione Tecniche dei sistemi P2P Eterogeneità Valeria Cardellini - SDCC 2014/15 10 Interfaccia di sistema di Dynamo Ad ogni oggetto memorizzato è associata una chiave Semplice interfaccia che espone operazioni di get() e put() usata per accedere agli oggetti get(key): individua tutte le repliche dell oggetto associato alla chiave e restituisce un singolo oggetto o un elenco di oggetti con versioni contrastanti insieme a un contesto put(key, context, object): determina dove devono essere memorizzate le repliche dell oggetto in base alla chiave associata e scrive le repliche su disco Il contesto codifica i metadati di sistema, ad esempio la versione dell oggetto Sia la chiave che l oggetto sono trattati come un array di byte opaco Hash MD5 applicato alla chiave per generare un identificatore a 128 bit, usato per determinare i nodi del sistema di storage che sono responsabili per servire quella chiave Valeria Cardellini - SDCC 2014/15 11

Tecniche usate in Dynamo Problem Technique Advantage Partitioning Consistent hashing Incremental scalability Vector clocks with Version size is decoupled High Availability for writes reconciliation during reads from update rates Handling temporary Sloppy Quorum and Provides high availability failures hinted handoff and durability guarantee when some of the replicas are not available Recovering from permanent failures Membership and failure detection Anti-entropy using Merkle trees Gossip-based membership protocol and failure detection Synchronizes divergent replicas in the background Preserves symmetry and avoids having a centralized registry for storing membership and node liveness information Valeria Cardellini - SDCC 2014/15 12 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 Nodi virtuali : ogni nodo fisico può essere responsabile di più di un nodo virtuale Valeria Cardellini - SDCC 2014/15 13

Replicazione in Dynamo Ogni oggetto è replicato su N nodi N è un parametro configurabile dall applicazione che usa Dynamo Preference list: la lista di nodi che è responsabile per gestire una determinata chiave Contiene più di N nodi per gestire fallimenti In figura: oggetto identificato dalla chiave K replicato sui nodi B, C e D Valeria Cardellini - SDCC 2014/15 14 Tecniche usate in Dynamo Problem Technique Advantage Partitioning Consistent hashing Incremental scalability Vector clocks with Version size is decoupled High availability for writes reconciliation during reads from update rates Handling temporary Sloppy Quorum and Provides high availability failures hinted handoff and durability guarantee when some of the replicas are not available Recovering from permanent failures Membership and failure detection Anti-entropy using Merkle trees Gossip-based membership protocol and failure detection Synchronizes divergent replicas in the background Preserves symmetry and avoids having a centralized registry for storing membership and node liveness information Valeria Cardellini - SDCC 2014/15 15

Data versioning in Dynamo Una chiamata a put() può ritornare al chiamante prima che l aggiornamento sia stato applicato a tutte le repliche Una chiamata a get() può restituire molteplici versioni dello stesso oggetto Problema: un oggetto può avere diverse versioni, che il sistema dovrà riconciliare Soluzione: uso dei clock vettoriali per catturare la casualità tra diverse versioni dello stesso oggetto Valeria Cardellini - SDCC 2014/15 16 Tecniche usate in Dynamo Problem Technique Advantage Partitioning Consistent hashing Incremental scalability Vector clocks with Version size is decoupled High Availability for writes reconciliation during reads from update rates Handling temporary Sloppy Quorum and Provides high availability failures hinted handoff and durability guarantee when some of the replicas are not available Recovering from permanent failures Membership and failure detection Anti-entropy using Merkle trees Gossip-based membership protocol and failure detection. Synchronizes divergent replicas in the background Preserves symmetry and avoids having a centralized registry for storing membership and node liveness information Valeria Cardellini - SDCC 2014/15 17

Sloppy quorum in Dynamo R/W è il minimo numero di nodi che devono partecipare ad un operazione di read/write L impostazione di R + W > N determina un sistema quorum-like In questo modello, la latenza di un operazione di get (o put) è determinata dalla replica più lenta tra le R (o W) repliche Per migliorare la latenza, R e W possono essere configurati in modo da essere minori di N Configurazione tipica in Dynamo: (N, R, W) = (3, 2, 2) 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) Valeria Cardellini - SDCC 2014/15 18 Hinted handoff in Dynamo Sia N = 3; se A è temporaneamente giù o non raggiungibile durante una scrittura, si invia la replica a D D sa che la replica appartiene ad A: gliela inoltrerà appena A torna ad essere funzionante terminato con successo l invio ad A, D cancella la replica Viene applicato anche in questo caso il principio progettuale always writeable Valeria Cardellini - SDCC 2014/15 19

Distributed file systems Represent the primary support for data management Provide an interface whereby to store information in the form of files and later access them for read and write operations Few implementations address the management of huge quantities of data on a large number of nodes GFS is a major representative and Apache HDFS its open source clone Valeria Cardellini - SDCC 2014/15 20 Case study: Google File System 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 Scrittura in modalità append: aggiungendo dati alla fine del file (possibili append concorrenti) Elevata affidabilità, ottenuta mediante replicazione dei chunk No caching dei dati S. Ghemawat, H. Gobioff, S.-T. Leung, "The Google File System", Proc. of ACM SOSP 2003. Valeria Cardellini - SDCC 2014/15 21

Due tipi di nodi Master Chunk server Chunk server Memorizzano i chunk Master Nodi in GFS Singolo master: per semplificare l architettura Coordina l accesso ai chunk Non memorizza chunk, ma soltanto metadati relativi ai chunk Gestisce il mantenimento dell opportuno grado di replicazione dei chunk Valeria Cardellini - SDCC 2014/15 22 Replicazione e tolleranza ai guasti in GFS Ogni chunk è replicato su più chunk server 3+ chunk server per ciascun chunk Grado di replicazione >3 per chunk soggetti ad elevato tasso di richieste Replicazione dei chunk gestita con schema primary-backup Integrità dei dati Checksum di 32B per ogni blocco di 64KB in ciascun chunk Valeria Cardellini - SDCC 2014/15 23

Architettura di GFS In figura: operazione di lettura - Chunk handle ~ file name del chunk - Il client interagisce con il master per aprire e trovare il file - Il client interagisce con il chunk server per i dati Valeria Cardellini - SDCC 2014/15 24 Architettura di GFS (2) Quale è il punto debole potenziale di questa architettura? Il master singolo! Single point of failure Scalability bottleneck Valeria Cardellini - SDCC 2014/15 25

Master singolo in GFS Soluzioni adottate in GFS per evitare problemi legati al master singolo: Per evitare single point of failure: presenza di più master ombra che forniscono accesso read-only al file system in caso di non disponibilità del master Per evitare scalability bottleneck: minimizzare il coinvolgimento del master Mai dati sul master, ma solo metadati In più caching dei metadati lato client Dimensione grande dei chunk Il master delega la propria autorità alle repliche primarie per gestire le mutazioni dei dati (lease dei chunk) Semplice! Valeria Cardellini - SDCC 2014/15 26 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 Operazioni tradizionali su un file system: create, delete, open, close, read, write 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) Valeria Cardellini - SDCC 2014/15 27

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 Potential disadvantage: chunks for small files may become hot spots (requires higher replication factor) Each chunk replica is stored as a plain Linux file and is extended as needed Valeria Cardellini - SDCC 2014/15 28 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 Metadati memorizzati in memoria (64 B per chunk) Vantaggi: Veloce e facilmente accessibile Limitazione: numero di chunk limitato dalle dimensioni della memoria del master ( The cost of adding extra memory to the master is a small price to pay for the simplicity, reliability, performance, and flexibility gained ) Il master mantiene un log delle operazioni per registrare in modo persistente aggiornamenti critici sui metadati Persistenza su disco locale Replicato Checkpoint per recovery più veloce Valeria Cardellini - SDCC 2014/15 29

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 Flusso dei dati disaccoppiato del flusso di controllo Valeria Cardellini - SDCC 2014/15 30 Append atomico in GFS Il client specifica i dati GFS appende i dati al file in modo atomico almeno una volta GFS sceglie l offset Funziona per scrittori concorrenti Molto usato dalle applicazioni di Google Ad es., per file che servono come code molteplici produttori/ singolo consumatore Valeria Cardellini - SDCC 2014/15 31

Modello di consistenza in GFS Modello di consistenza relaxed (eventual consistency) Consistente = tutte le repliche hanno lo stesso valore Definito = la replica riflette la mutazione, consistente Proprietà: Scritture concorrenti lasciano la regione in uno stato consistente, ma eventualmente non definito Il fallimento di scritture lascia la regione in uno stato inconsistente E un modello di consistenza semplice ed efficiente Aggiornamento dello spazio dei nomi atomico e serializzabile Valeria Cardellini - SDCC 2014/15 32 Compiti del master in GFS Memorizzazione dei metadati Gestione/locking dello spazio dei nomi Comunicazione periodica con i chunk server Invia istruzioni, raccoglie informazioni di stato, controlla lo stato di salute (messaggi di heartbeat) Creazione, re-replicazione, bilanciamento dei chunk Bilancia l utilizzazione dello spazio e la velocità di accesso Distribuisce le repliche tra i rack del cluster per ridurre la probabilità di fallimenti correlati Ri-replica i dati se il grado di replicazione scende sotto la soglia Ri-bilancia i dati per bilanciare il carico sullo storage e delle richieste Valeria Cardellini - SDCC 2014/15 33

Compiti del master in GFS (2) Garbage collection Più semplice ed affidabile del tradizionale delete di file Registra la cancellazione e rinomina il file usando un nome nascosto Cancellazione di repliche vecchie Individua le repliche vecchie usando i numeri di versione dei chunk Valeria Cardellini - SDCC 2014/15 34 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 2014/15 35

After GFS: Colossus Colossus (GFS2) Next-generation cluster-level file system at Google Specifically designed for real-time services Automatically sharded metadata layer Data typically written using Reed-Solomon (1.5x) Client-driven replication, encoding and replication Distributed masters Support smaller files: chunks go from 64 MB to 1 MB Valeria Cardellini - SDCC 2014/15 36 Case study: 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 (e.g., GFS, Bigtable) Chubby fornisce Sincronizzazione (elezione del leader, informazioni condivise) Affidabilità e disponibilità Semantica semplice Alte prestazioni, throughput e capacità di storage solo aspetti secondari M. Burrows, "The Chubby Lock Service for Loosely-Coupled Distributed Systems", Proc. of OSDI 2006. Valeria Cardellini - SDCC 2014/15 37

Esempi di utilizzo di Chubby GFS: elezione del master Bigtable: elezione del master, discovery dei client, locking delle tabelle Posizione well-known per il bootstrap di sistemi distribuiti di grandi dimensioni Meccanismo di lock progettato per lock coarsegrained: mantenuti per ore o giorni Minor carico sul lock server I lock sopravvivono a fallimenti del lock server Definizione di lock fine-grained al di sopra di Chubby Valeria Cardellini - SDCC 2014/15 38 Interfaccia di Chubby Presenta un semplice file system distribuito Insieme ridotto di operazioni su file rispetto ad un tradizionale FS distribuito I client possono eseguire operazioni di open/ close/read/write su file Letture e scritture solo di tipo whole-file Supporto per lock reader/writer di tipo advisory I client possono iscriversi per ricevere notifiche di aggiornamento dei file Valeria Cardellini - SDCC 2014/15 39

Architettura di sistema di Chubby 2 componenti principali: Server (Chubby cell) Client library Comunicazione via RPC Proxy Opzionale All client traffic One Chubby Cell replica Master replica replica replica replica Valeria Cardellini - SDCC 2014/15 40 Cella di Chubby Cella: insieme di server replica Generalmente 5 server: 1 master e 4 repliche Usa Paxos per eleggere il master Promessa di non eleggere un nuovo master per un certo tempo (lease del master) Il lease del master viene rinnovato periodicamente Mantiene copie di un database semplice Operazioni di write soddisfatte da un quorum di maggioranza Operazioni di read soddisfatte dal solo master Sistema di replacement per repliche fallite Valeria Cardellini - SDCC 2014/15 41

Elezione del master in Chubby L elezione del master è semplice Tutte le repliche cercano di acquisire un lock in scrittura sul file indicato La replica che ottiene il lock è il master Il master può poi scrivere il suo indirizzo nel file Le altre repliche possono leggere questo file per scoprire chi è il master Chubby si comporta come un servizio di naming Valeria Cardellini - SDCC 2014/15 42 42 File, directory, handle in Chubby Interfaccia simile a file system Es. di nome: /ls/foo/wombat/pouch API specializzata 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 Nodi (file o directory) Di tipo permanent oppure ephemeral Diversi metadati associati ad ogni nodo Handle Analoghi ai descrittori di file in Unix Valeria Cardellini - SDCC 2014/15 43

Lock e sequencer in Chubby Chubby utilizza un file o una directory come lock lettore-scrittore Un client può tenere il lock in modo esclusivo (writer) Un qualunque numero di client può tenere il lock in modo condiviso (reader) I lock sono di tipo advisory (consultivo) E compito del client comportarsi bene e controllare che il lock non sia tenuto da altri client (in modo analogo ai mutex) Soluzione opposta: lock di tipo mandatory (vincolante) E costoso numerare tutte le interazioni in un SD In Chubby sono numerate solo le interazioni che usano i lock Sequencer: stringa di byte che descrive lo stato del lock dopo l'acquisizione Il possessore di un lock può richiedere il sequencer Un client passa il sequencer al server Valeria Cardellini - SDCC 2014/15 44 Open() Creazione dell handle API di Chubby 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 Altre chiamate dell API: GetContentsAndStat(), GetStat, SetContents() per leggere contenuto e metadati di un file e scriverne il contenuto Delete() per cancellare un nodo Acquire(), TryAcquire(), Release() per acquisire e rilasciare lock GetSequencer(), SetSequencer(), CheckSequencer() per operazioni su sequencer Valeria Cardellini - SDCC 2014/15 45