Memorizzazione dei dati: Dischi e File



Похожие документы
Introduzione all Architettura del DBMS

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

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

Redundant Array of Inexpensive (Independent) Disks. Disco magnetico

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

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

SISTEMI OPERATIVI. Gestione dei dischi. Gestione dei dischi e sistemi RAID

Guida all installazione degli Hard Disk SATA ed alla configurazione del RAID

Memoria secondaria. Architettura dell elaboratore. Memoria secondaria. Memoria secondaria. Memoria secondaria

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Architettura dei calcolatori II parte Memorie

Memoria Esterna (secondaria) n Materiale usato per il disco: era in alluminio n Ora è di vetro, perché Migliora l uniformità della superficie

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

Architettura dei computer

Organizzazione della memoria

Gestione della memoria centrale

Calcolatori Elettronici

Dischi RAID (Redundant Array of Inexpensive Disks)

Architettura hardware

Capitolo Silberschatz

Sistemi RAID. Sistemi RAID. Sistemi RAID

Sistemi RAID. Sistemi RAID

Memoria secondaria. Sistemi Operativi mod. B 14.1

Guida all installazione degli Hard Disk SATA ed alla configurazione del RAID

Sistemi RAID. Corso di Calcolatori Elettronici. Feragotto Elena

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

Appunti di informatica. Lezione 6 anno accademico Mario Verdicchio

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Laboratorio di Informatica

L architettura di un DBMS

Archivio: è un insieme organizzato di informazioni (movimenti contabili, archivi: clienti/fornitori, personale, magazzino) Proprietà:

Sistemi Operativi. 5 Gestione della memoria

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

Il File System. Il file system

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

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

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

Organizzazione degli archivi

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

La memoria centrale (RAM)

Informatica 3. LEZIONE 23: Indicizzazione. Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

I file di dati. Unità didattica D1 1

Il Software. Il software del PC. Il BIOS

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

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

GESTIONE DELLA MEMORIA CENTRALE

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi:

Tecnologia di un Database Server (centralizzato) Gestione del buffer

Memoria virtuale. Riassumendo Meccanismo di traduzione indirizzi con tabella TLB Ogni processo ha la sua PMT Politiche della memoria virtuale E

File system II. Sistemi Operativi Lez. 20

Lez. 5 Memorie Secondarie

Introduzione al data base

Architettura del calcolatore

STRUTTURE DEI SISTEMI DI CALCOLO

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

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

DMA Accesso Diretto alla Memoria

Il memory manager. Gestione della memoria centrale

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

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Esame di INFORMATICA

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

Capitolo 11 La memoria cache

Il Sistema Operativo

Progettazione Fisica FILE

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Organizzazione della memoria principale Il bus

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Gerarchie di memoria Divide et impera. Gerarchie di memoria La congettura 90/10. Gerarchie di memoria Schema concettuale

Nastro magnetico. Gestione della memoria di massa. Disco magnetico. Disco magnetico. Usato in passato come dispositivo di memorizzazione secondaria

Informatica - A.A. 2010/11

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

ASPETTI PRINCIPALI DELLA GESTIONE AUTOMATIZZATA DI UN ARCHIVIO

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

C. P. U. MEMORIA CENTRALE

Транскрипт:

Memorizzazione dei dati: Dischi e File Query\update Query plan Execution Engine richieste di indici, record e file Index/file/record Manager comandi su pagine Query Compiler Buffer Manager Lettura/scrittura pagine Storage Manager Architettura di un DBMS Utente/Applicazione metadati, statistiche metadati, indici, statistiche transazioni Transaction Manager Logging/Recovery pagine di log buffers Amministratore Comandi DDL Concurrency control Lock Table DDL Compiler metadati dischi 2

Dischi e File Un DBMS memorizza informazioni sui dischi READ: trasferisce i dati dal disco alla RAM WRITE: trasferisce i dati dalla RAM al disco Entrambe sono operazioni costose (rispetto alle operazioni in RAM) e quindi vanno pianificate attentamente 3 Perché non salvare tutto nella RAM? Costo: con circa 80 si acquistano 256 MB di RAM o 20 GB di hard disk Volatilità : la RAM è volatile; vorremmo salvare i dati tra una sessione e l altra in modo permanente Tipica gerarchia di storage: - RAM: per i dati correntemente usati (storage primario) - Dischi: per il database principale (storage secondario) - Nastri: per archiviare le vecchie versioni dei dati (storage terziario) 4

Disco È il dispositivo usato per la memoria secondaria Principale vantaggio rispetto ai nastri: accesso random contro accesso sequenziale I dati sono salvati e recuperati in unità chiamate pagine (o blocchi di disco) A differenza della RAM, il tempo per recuperare una pagina varia in funzione della sua posizione nel disco Quindi la disposizione delle pagine sul disco ha un grande impatto sulle prestazioni del DBMS 5 Componenti di un disco I piatti ruotano (90 rps, circa) Il braccio è mosso verso l interno o verso l esterno per posizionare la testina sulla traccia desiderata La testina legge o scrive i dati dal/sul piatto La dimensione del blocco è un multiplo della dimensione del settore 6

Accedere ad una pagina Tempo per accedere (read/write) un blocco di disco: - tempo di seek: muovere il braccio per posizionare la testina sul disco - ritardo di rotazione: aspettare che il disco ruoti sotto la testina - tempo di trasferimento: READ/WRITE i dati dalla superficie del disco Il tempo di seek e il ritardo di rotazione sono dominanti Il tempo di seek varia da 1 a 20 msec Il ritardo di rotazione varia tra 0 e 10 msec Il transfer rate è circa 1 msec per pagine di 4KB (circa 4MB per secondo) Abbassare i costi di I/O: ridurre il tempo di seek e i ritardi di rotazione. Le soluzioni sono sia hardware sia software 7 Disporre pagine sul disco Pagina = Blocco Blocchi vicini : - Blocchi sulla stessa traccia - Blocchi sullo stesso cilindro - Blocchi su cilindri adiacenti I blocchi di un file dovrebbero essere disposti sequenzialmente sul disco (su blocchi vicini ) per minimizzare il tempo di seek e il ritardo rotazionale Per uno scan sequenziale il pre-fetch di alcuni blocchi è vantaggioso 8

Redundant Arrays of Inexpensive/Indipendent Disks (RAID) Il disco è un collo di bottiglia per le prestazioni e l affidabilità del DBMS: lento rispetto alla RAM ed alla CPU, contiene parti meccaniche che si possono rompere Usare array di dischi per aumentare performance ed affidabilità Per incrementare la performance: Fare data striping: i dati vengono partizionati (es. memorizzare i bit che compongono un byte su più dischi). Le partizioni vengono distribuite su dischi differenti Per incrementare l affidabilità: Aggiungere ridondanza: L informazione ridondante opportunamente organizzata su più dischi permette la ricostruzione dei dati in caso di danneggiamento di un disco Un array con queste carateristiche si chiama RAID (Redundant Arrays of Inexpensive/Independent Disks ) 9 Data Striping I dati vengono partizionati in segmenti di uguale lunghezza e scritti su dischi differenti. La grandezza della partizione si chiama unità di striping. Le partizioni vengono solitamente distribuite fra i dischi usando un algoritmo round robin Quando la dimensione dei dati richiesti è superiore ad una unità di striping, tali dati sono distribuiti su più dischi e possono essere letti in parallelo aumentando le prestazioni del sistema Esempio 1: unità di striping 1 bit. Array con D dischi. Sequenze di dati lunghe D bit o più necessitano di tutti i dischi Esempio 2: unità di striping 1 blocco. Richieste di I/O lunghe al più un blocco gestite da un disco 10

Ridondanza Tanti dischi vuol dire più guasti: se il tempo medio tra guasti di un disco è 5 anni, per un array di 100 dischi è di 21 giorni (5 anni/100) Soluzione: aggiungere ridondanza per ricostruire l informazione sul disco guasto. Ad esempio, disco di check contenente informazioni sui dati contenuti nell array Schema di parità su bit: i-esimo bit del disco di check uguale 1 se: i-esimo bit disco 1+ + i-esimo bit disco D = 1 i-esimo bit del disco di check uguale 0 se: i-esimo bit disco 1+ + i-esimo bit disco D = 0 11 Livelli RAID 7 livelli con ridondanza e affidabilità crescenti: 0: data striping (senza ridondanza) 1: data mirroring 0+1: data striping e mirroring 2: codici 1-correttori 3: schema di parità su bit 4: schema di parità su blocco 5: schema di parità su blocco distribuita 6: codici 2-correttori 12

Livello 0 Senza ridondanza: Dati distribuiti sui dischi con una tecnica di data striping Nessuna informazione addizionale (es. parità) viene immagazzinata L affidabilità di grandi array diventa un problema 13 Livello 1 Data mirroring: Ogni disco viene duplicato Non viene utilizzato data striping La lettura di blocchi può essere parallelizzata: un blocco letto dal disco originale ed un bolcco letto dal disco mirror È la soluzione più costosa 14

Livello 0+1 Data striping e mirroring: Simile al livello 1 Unità di striping: blocco Si può parallelizzare la lettura dei blocchi dai dischi originali e dai dischi mirror In più, lettura di blocchi contigui velocizzata dal data striping 15 Livello 2 Codici 1-correttori: Unità di striping: bit Ridondanza: codice correttore (es. Hamming) che identifica il bit rovinato ed il disco dove risiede Buona soluzione per grandi richieste di I/O (dal momento che l unità di trasferimento dal disco è il blocco) La scrittura di un bit implica la modifica dei dati ridondanti sui dischi di check (ciclo read-modify-write): Leggere il bit in RAM Modificare il bit Calcolare i bit ridondanti con il codice correttore Scriverli sui dischi di check 16

Livello 3 Schema di parità su bit: Unità di striping: bit I codici correttori del livello 2 occupano molto spazio. Per identificare il disco guasto usare i controller dei dischi. Per identificare il bit danneggiato usare lo schema di parità su bit: i-esimo bit del disco di check (bit di parità) uguale 1 se i-esimo bit disco 1+ + i-esimo bit disco D = 1 i-esimo bit del disco di check uguale 0 se i-esimo bit disco 1+ + i-esimo bit disco D = 0 Necessario solo un disco di check 17 Livello 4 Schema di parità su blocco: Unità di striping: blocco La scrittura di un blocco richiede la modifica del corrispondente blocco di parità Per scrivere un blocco è quindi necessaria la lettura del blocco dal disco che lo contiene, la lettura del blocco di parità dal disco di check ed una scrittura sul disco di check (ciclo read-modify-write): la nuova parità è calcolabile dai vecchi dati e dalla vecchia parità Necessario solo un disco di check 18

Livello 5 Schema di parità su blocco distribuito: Unità di striping: blocco I blocchi di parità sono distribuiti sui dischi di dati I/O sui blocchi di parità può essere parallelizzato Buone prestazioni per grandi richieste di I/O La scrittura di un blocco dati richiede un ciclo read-modify-write (costoso per piccole richieste) 19 Livello 6 Codici 2-correttori: Uso di codici correttori più sofisticati (es. Reed-Solomon) per il rilevamento di due errori simultanei in grandi array di dischi Esempio: un disco si guasta durante il recovery di un altro disco Blocchi di check distribuiti sui dischi dei dati Numero dei blocchi di check maggiore rispetto ai livelli inferiori 20

Quale livello scegliere? Se la perdita di dati non è un problema, livello 0 migliora le prestazioni Per piccoli sistemi di storage con mirroring di costo limitato, livello 0+1 migliore del livello 1. Adatto anche per sistemi con molti aggiornamenti (non esiste informazione ridondante da aggiornare) Livelli 2 e 4: prestazioni inferiori rispettivamente ai livelli 3 e 5. Livello 3 adatto per grosse letture di blocchi contigui Livello 5: buona soluzione general purpose Livello 6: necessario per sistemi dove la perdita dei dati è critica 21 Gestione dello spazio su disco Storage Manager: gestisce lo spazio su disco, leggendo e scrivendo pagine (blocchi) Buffer Manager: scrive pagine dal disco alla RAM (e viceversa), seguendo una politica di rimpiazzamento. Gli strati più alti del DBMS vi fanno riferimento per: - allocare/deallocare una pagina - leggere/scrivere una pagina Una richiesta per una sequenza di pagine deve essere soddisfatta allocando sequenzialmente le pagine sul disco Gli strati alti non hanno bisogno di sapere come questo viene fatto, né come viene gestito lo spazio libero 22

DBMS vs. Sistemi Operativi Perché non lasciare la gestione dello spazio dei dischi e dei buffer al sistema operativo? - DBMS possono prevedere l ordine in cui le pagine verranno accedute e conviene usare questa proprietà - Ci sono molti sistemi operativi: problemi di portabilità Limitazioni: i file non possono essere più grandi dei dischi 23 Gestione della RAM in un DBMS Buffer manager: software responsabile della scelta delle pagine lette dal disco alla RAM (buffer pool) Buffer pool: parte della RAM divisa in frame 1 frame contiene 1 pagina Per ogni frame nel buffer pool: Pin count: numero di richieste della pagina contenuta nel frame (0 all inizio) Dirty bit: variabile booleana messa a 1 se la pagina è stata modificata (0 all inizio) 24

Azioni svolte alla richiesta di una pagina Se una pagina non è nel buffer pool: - scegliere un frame da rimpiazzare - se il dirty bit=1 (pagina modificata) scrivere su disco la pagina contenuta nel frame - scrivere la pagina richiesta nel frame scelto, incrementare il suo pin count N.B. Se le richieste possono essere previste (es. scan sequenziale) si può fare un pre-fetch di parecchie pagine 25 Rimpiazzamento dei Frame Come scegliere il frame da rimpiazzare? - Il buffer manager deve aspettare che una delle pagine contenute nei frame del buffer pool non sia utilizzata: il pin count di almeno un frame deve essere 0. - Se più frame hanno pin count = 0 allora la scelta del frame dipende da una politica di rimpiazzamento 26

Politiche di rimpiazzamento Obiettivo ideale: rimpiazzare la pagina che verrà richiesta il minimo possibile nel futuro Soluzione: sequenza delle pagine recentemente richieste come approssimazione delle richieste future Least Recently Used (LRU): rimpiazzare la pagina meno usata recentemente (usato in molti sistemi operativi) Most Recently Used (MRU): rimpiazzare la pagina più usata recentemente Clock: rimpiazzare la pagina del primo frame disponibile, poi del secondo, poi del terzo, e così via. 27 Quale politica è la migliore? Un DBMS può prevedere meglio di un sistema operativo quali pagine verranno richieste Ipotesi utilizzando LRU: con un buffer di 10 frame e dovendo leggere ripetutamente 11 pagine, ogni nuova richiesta implica una lettura da disco! Pagine meno richieste nell immediato futuro = Pagine appena richieste Scelta migliore: MRU 28

Record Pagine o blocchi vanno bene quando si tratta di fare I/O ma i livelli più alti di un DBMS lavorano con il concetto di record Record = lista di campi Un record è identificato da Record id: rid = <page id, posizione all interno della pagina> Possibili diverse implementazioni 29 Formato dei Record: lunghezza fissa Tutti i record hanno lo stesso numero di campi Tutti i campi dello stesso tipo hanno la stessa lunghezza La lunghezza dei vari campi viene memorizzata nel system catalog 30

Formato dei Record: lunghezza variabile Due formati alternativi (numero fisso di campi). Il secondo offre accesso diretto ai campi e efficiente immagazzinamento dei valori nulli 31 Formato delle Pagine: Record a lunghezza fissa Come disporre i record in una pagina? Record Id = <page id, posizione nella pagina> Ma muovere i record per la gestione dello spazio libero cambia i rid. Potrebbe non essere accettabile 32

Formato delle Pagine: Record a lunghezza variabile Per ogni slot della directory: (record pointer, record length) Si possono spostare i record senza cambiare i rid. Quindi, è una soluzione attraente anche per i record a lunghezza fissa 33 File di Record Altro concetto fondamentale per un DBMS FILE: collezione di pagine, ognuna contenente una collezione di record Un file deve supportare: - insert / delete / modify record - read (specificato dal rid) - scan di tutti i record (possibilmente, con qualche condizione sui record da restituire) 34

Heap File È la più semplice struttura di file. Contiene record senza alcun particolare ordine Le pagine vengono allocate e deallocate mano a mano che il file aumenta o diminuisce la sua dimensione Per supportare operazioni sui record, si deve: - tenere traccia delle pagine del file - tenere traccia dello spazio libero sulle pagine - tenere traccia dei record in una pagina Implementabile in molti modi 35 Heap File implementato come Lista Il DBMS memorizza lo id della pagina header ed il nome del file Ogni pagina contiene due puntatori oltre ai dati Svantaggi: - Difficile che una pagina sia del tutto piena: quasi tutte le pagine stanno nella lista in basso - L inserimento di un record richiede la lettura di molte pagine 36

Heap File implementato come Directory Page La directory è una collezione di pagine. Ogni pagina ha molti puntatori verso le pagine con i record. Il DBMS ha salvato lo id della prima pagina della directory Con il puntatore verso una pagina ci può essere il suo numero di byte liberi L inserimento di un record richiede la lettura di meno pagine rispetto alla lista perché in una pagina vi sono molti puntatori 37 Indici Con un heap file possiamo recuperare record: - specificando il rid, oppure... - facendo uno scan sequenziale di tutti i record Spesso vogliamo recuperare i record in base ai valori contenuti in uno o più campi Gli indici sono strutture di file che permettono di rispondere efficientemente a interrogazioni basate su valori 38

Riassunto I dischi forniscono un immagazzinamento economico e durevole La gestione della memoria è svolta dal DBMS e non dal sistema operativo Il buffer manager sceglie le pagine da portare nella RAM La pagina rimane in RAM finché non è rilasciata dal richiedente ed......è scritta su disco quando il frame è scelto per il rimpiazzamento (che accade dopo il rilascio della pagina da parte del richiedente) La scelta del frame è basata su una politica di rimpiazzamento, spesso più accurata di quella usata dal sistema operativo Gli strati superiori del DBMS vedono i dati organizzati in record e file Diverse implementazioni per record e file Indici: strutture dati per eseguire efficientemente interrogazioni basate sui valori dei dati 39