SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
Architettura di storage




                         Architettura di storage


27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 1
Architettura di storage

           Cluster
           Databases
           Tabelle
           Indici
           Blocchi




27/11/08      /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 2
Cluster

      Un database cluster è un insieme di basi di dati che 
      sono gestiti da una singola istanza del processo 
      server
      Creare un cluster database consiste in:
           Creare le directory in cui il database depositerà i dati
           Creare le tabelle comuni di catalogo
           Creare i template dei db

      Un processo postmaster per ogni cluster 
      Un cluster può essere interrogato attraverso una 
      sola directory data che può avere più tablespaces




27/11/08    /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 3
Cluster Layout ­ overview

    Tutte le informazioni riguardante il cluster sono 
    nella directory data
           Global → system tables e control files
           Base → database tables e temp tables 
           pg_tblspc → links tablespace
           control/pg_contro → checkpoint master file
           pg_xlog → transactiona recovery log
           pg_clog, pg_subtrans → commit status
           pg_multixact → row locking
           pg_twophase → transazioni nello stato prepared 




27/11/08     /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 4
Cluster Layout ­ overview
   Conf
        postgresql.conf → file di configurazione

   Logs
        Serverlog → log

   Files di stato
        postmaster.pid
        PG_VERSION 




 27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 5
Struttura delle directory


           Postgresql8.x
              Bin

              Data → dove vengono memorizzati i dati
              Doc
              Include
              Lib
              Man
              Share




27/11/08      /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 6
Organizzazione dei dati


    Ogni database viene memorizzato in una directory
           Con uno o più files per ogni relazione
           Ogni file se > 1 Gb viene splittato

    Ogni relazione è memorizzata in un solo tablespace
           Si possono gestire link ad altre directory nel filesystem
           Per defaults gli indici vengono memorizzati nello stesso 
           tablespace




27/11/08      /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 7
OID ­ database
  OID: Object identifier : è l'identificatore di un 
  oggetto (database, tabella...)
       Es : testdb=# SELECT datname, oid from pg_database 
     where datname='testdb';;
           datname  |  oid
           ­­­­­­­­­­­­­+­­­­­­­
           testdb      | 16384


  Al database testdb è associato l'oid 16384 




27/11/08      /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 8
OID ­ database

    Andiamo a vedere ora all'interno della cartella data/
    base
           ls ­l | grep 16384


             drwx­­­­­­ 2 postgres postgres 4096 2008­09­10 09:58 16384

    Troviamo una directory dal nome 16384



           OID DATABASE                                       DIRECTORY




27/11/08      /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 9
OID ­ Tables


     testdb=# create table testtb ( id serial not null 
     primary key, nome char(20)); 
       NOTICE:  CREATE TABLE will create implicit sequence 
         "testtb_id_seq" for serial column "testtb.id"
       NOTICE:  CREATE TABLE / PRIMARY KEY will create 
         implicit index "testtb_pkey" for table "testtb"
       CREATE TABLE




27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 10
OID ­ Tables
  testdb=# SELECT relname,oid from pg_class where 
  relname='testtb';


     relname |  oid  
    ­­­­­­­­­+­­­­­­­
     testtb  | 16387
    (1 row)




27/11/08      /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 11
OID ­ Tables
  data/base/16384# ls ­l | grep 16387
    ­rw­­­­­­­ 1 postgres postgres      0 2008­09­10 11:05 16387




           Una tabella diventa un file il cui nome 
                     è l'object identifier



27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 12
OID ­ Tables
  Le tabelle e gli indici vengono memorizzati in files 
  separati
       Il nome del file è uguale all'oid dell'oggetto

  Le tabelle o gli indici (Relazioni) che sono più grandi 
  di 1 Gb vengono divisi in segmenti di dimensione 
  inferiore al Gb
  Il primo segmento di chiama con il nome del file 
  uguale all'oid agli altri si aggiunge 1,2 etc..




27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 13
Layout di pagina
  Pagine di 8k → vengono caricate nello shared buffer
   Page header (20 bytes): 
       Informazioni generali riguardo la pagina
       Puntatori alla spazio libero

  Puntatori alle tuple
  Spazio libero non allocato
  Row/Index Entry : tupla corrente
  Informazioni di sistema: metodo di accesso indice, 




27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 14
Layout di pagina



           Page header        Item           Item           Item




 8K

                                                                   Tuple


                Tuple                    Tuple                     Special




27/11/08    /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp      page 15
Layout di pagina
testdb=# d

              List of relations

 Schema |     Name      |   Type   |  Owner   

­­­­­­­­+­­­­­­­­­­­­­­­+­­­­­­­­­­+­­­­­­­­­­

 public | testtb        | table    | postgres

 public | testtb_id_seq | sequence | postgres

(2 rows)

testdb=# INSERT INTO testtb (nome) values ('Enrico');

INSERT 0 1

testdb=# SELECT * from testtb;

 id |         nome       

­­­­+­­­­­­­­­­­­­­­­­­­­­­

  1 | Enrico              

 27/11/08       /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 16
Layout di pagina
testdb=#            

SELECT relname,oid,relpages,reltuples from pg_class where relname 
  ilike 'test%';

    relname            |  oid  | relpages | reltuples 

­­­­­­­­­­­­­­­­­­­­­­+­­­­­­­+­­­­­­­­­­+­­­­­­­­­­­

 testtb_id_seq  | 16385 |        1 |         1

 testtb                | 16387 |        0 |         0

 testtb_pkey           | 16391 |        1 |         0 → viene creato un indice unico

(3 rows)




 27/11/08         /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 17
Architettura di storage
  Cluster
  Databases
  Tabelle
  Indici
  Blocchi




27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch1.odp   page 18

Contenu connexe

Tendances

Io uso Tor e non lascio tracce! Sei proprio sicuro?
Io uso Tor e non lascio tracce! Sei proprio sicuro?Io uso Tor e non lascio tracce! Sei proprio sicuro?
Io uso Tor e non lascio tracce! Sei proprio sicuro?
festival ICT 2016
 
Raspberry omv
Raspberry omvRaspberry omv
Raspberry omv
Pipperss
 
PostgreSQL: Point in time recovery
PostgreSQL: Point in time recoveryPostgreSQL: Point in time recovery
PostgreSQL: Point in time recovery
Enrico Pirozzi
 
Sistema operativo Unix e Linux
Sistema operativo Unix e LinuxSistema operativo Unix e Linux
Sistema operativo Unix e Linux
Giulia Shkreli
 
Sottoli in the cloud
Sottoli in the cloudSottoli in the cloud
Sottoli in the cloud
dema
 
Web Service
Web ServiceWeb Service
Web Service
pat22cb
 

Tendances (19)

Openday - PostgreSQL: primi passi con Json/Jsonb
Openday - PostgreSQL: primi passi con Json/Jsonb Openday - PostgreSQL: primi passi con Json/Jsonb
Openday - PostgreSQL: primi passi con Json/Jsonb
 
Io uso Tor e non lascio tracce! Sei proprio sicuro?
Io uso Tor e non lascio tracce! Sei proprio sicuro?Io uso Tor e non lascio tracce! Sei proprio sicuro?
Io uso Tor e non lascio tracce! Sei proprio sicuro?
 
Raspberry omv
Raspberry omvRaspberry omv
Raspberry omv
 
PostgreSQL: Point in time recovery
PostgreSQL: Point in time recoveryPostgreSQL: Point in time recovery
PostgreSQL: Point in time recovery
 
lab sistemi 5B 9 febbraio 2013
lab sistemi 5B 9 febbraio 2013lab sistemi 5B 9 febbraio 2013
lab sistemi 5B 9 febbraio 2013
 
Linux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compattaLinux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compatta
 
Log files - Approcci al Troubleshooting
 Log files - Approcci al Troubleshooting Log files - Approcci al Troubleshooting
Log files - Approcci al Troubleshooting
 
Slax su pendrive
Slax su pendriveSlax su pendrive
Slax su pendrive
 
Git: un'introduzione pratica
Git: un'introduzione praticaGit: un'introduzione pratica
Git: un'introduzione pratica
 
Sistema operativo Unix e Linux
Sistema operativo Unix e LinuxSistema operativo Unix e Linux
Sistema operativo Unix e Linux
 
Bookalive Klaus Kempf Presentazione: Record, Zend e archiviazione
Bookalive Klaus Kempf Presentazione: Record, Zend e archiviazioneBookalive Klaus Kempf Presentazione: Record, Zend e archiviazione
Bookalive Klaus Kempf Presentazione: Record, Zend e archiviazione
 
Shell unix
Shell unixShell unix
Shell unix
 
Sottoli in the cloud
Sottoli in the cloudSottoli in the cloud
Sottoli in the cloud
 
Tools & librerie PHP
Tools & librerie PHPTools & librerie PHP
Tools & librerie PHP
 
Apache HTTP Server
Apache HTTP ServerApache HTTP Server
Apache HTTP Server
 
Oracle 3 (sq lnet)
Oracle 3 (sq lnet)Oracle 3 (sq lnet)
Oracle 3 (sq lnet)
 
The Google File System
The Google File SystemThe Google File System
The Google File System
 
SAL 2018 - DevOps
SAL 2018 - DevOpsSAL 2018 - DevOps
SAL 2018 - DevOps
 
Web Service
Web ServiceWeb Service
Web Service
 

En vedette (9)

Messa in rete
Messa in reteMessa in rete
Messa in rete
 
Medicina Generale con PostgreSQL
Medicina Generale con PostgreSQLMedicina Generale con PostgreSQL
Medicina Generale con PostgreSQL
 
Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)
 
Avanzato a02 uno sguardo a postgis
Avanzato a02   uno sguardo a postgisAvanzato a02   uno sguardo a postgis
Avanzato a02 uno sguardo a postgis
 
C3es
C3esC3es
C3es
 
PostgreSQL: il database Open Source di fascia Enterprise piu' avanzato al mondo
PostgreSQL: il database Open Source di fascia Enterprise piu' avanzato al mondoPostgreSQL: il database Open Source di fascia Enterprise piu' avanzato al mondo
PostgreSQL: il database Open Source di fascia Enterprise piu' avanzato al mondo
 
Corso GIS Avanzato a03 usare postgis
Corso GIS Avanzato a03   usare postgisCorso GIS Avanzato a03   usare postgis
Corso GIS Avanzato a03 usare postgis
 
PostgreSQL
PostgreSQL PostgreSQL
PostgreSQL
 
PostgreSQL: Approximated searches
PostgreSQL: Approximated searchesPostgreSQL: Approximated searches
PostgreSQL: Approximated searches
 

Similaire à PostgreSQL : Architettura di storage

Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite ForensicsDeftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Sandro Rossetti
 
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite ForensicsDeftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Deft Association
 

Similaire à PostgreSQL : Architettura di storage (20)

Excel development e sql 2.1
Excel development e sql   2.1Excel development e sql   2.1
Excel development e sql 2.1
 
Firebird DBMS
Firebird DBMSFirebird DBMS
Firebird DBMS
 
Progetto e sviluppo di un'applicazione per dispositivi mobili per la visualiz...
Progetto e sviluppo di un'applicazione per dispositivi mobili per la visualiz...Progetto e sviluppo di un'applicazione per dispositivi mobili per la visualiz...
Progetto e sviluppo di un'applicazione per dispositivi mobili per la visualiz...
 
MongoDB
MongoDBMongoDB
MongoDB
 
SQLite in Xamarin.Forms
SQLite in Xamarin.FormsSQLite in Xamarin.Forms
SQLite in Xamarin.Forms
 
MongoDB
MongoDBMongoDB
MongoDB
 
Linked data parliamo di semantica del web - v3
Linked data   parliamo di semantica del web - v3Linked data   parliamo di semantica del web - v3
Linked data parliamo di semantica del web - v3
 
Programmazione web libera dai framework
Programmazione web libera dai frameworkProgrammazione web libera dai framework
Programmazione web libera dai framework
 
Valorizzare le IDT conformi agli standard OGC® per produrre Linked Open Data ...
Valorizzare le IDT conformi agli standard OGC® per produrre Linked Open Data ...Valorizzare le IDT conformi agli standard OGC® per produrre Linked Open Data ...
Valorizzare le IDT conformi agli standard OGC® per produrre Linked Open Data ...
 
Deploy MongoDB su Infrastruttura Amazon Web Services
Deploy MongoDB su Infrastruttura Amazon Web ServicesDeploy MongoDB su Infrastruttura Amazon Web Services
Deploy MongoDB su Infrastruttura Amazon Web Services
 
I metadati per il catalogo nazionale Open Data DATI.GOV.IT - Conferenza Open...
I metadati per il catalogo nazionale Open Data  DATI.GOV.IT - Conferenza Open...I metadati per il catalogo nazionale Open Data  DATI.GOV.IT - Conferenza Open...
I metadati per il catalogo nazionale Open Data DATI.GOV.IT - Conferenza Open...
 
Create R package with RStudio
Create R package with RStudioCreate R package with RStudio
Create R package with RStudio
 
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite ForensicsDeftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
 
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite ForensicsDeftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
 
couchbase mobile
couchbase mobilecouchbase mobile
couchbase mobile
 
3rd 3DDRESD: DB
3rd 3DDRESD: DB3rd 3DDRESD: DB
3rd 3DDRESD: DB
 
Java Advanced
Java AdvancedJava Advanced
Java Advanced
 
MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009
 
MySQL
MySQLMySQL
MySQL
 
Talend Open Studio for Data Integration
Talend Open Studio for Data IntegrationTalend Open Studio for Data Integration
Talend Open Studio for Data Integration
 

Dernier

Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
lorenzodemidio01
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
giorgiadeascaniis59
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
lorenzodemidio01
 

Dernier (19)

Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptx
 
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptx
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceo
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptx
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptx
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione Civica
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptx
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptx
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibile
 

PostgreSQL : Architettura di storage