SlideShare a Scribd company logo
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

More Related Content

PDF
PostgreSQL: Prima configurazione
PDF
PostgreSQL: Integrità dei dati
PDF
PostgreSQL: Archtettura per la gestione dei pro
PDF
PostgreSQL : Tuning
PDF
PostgreSQL: Transazioni e locking
PDF
Pgtraining bdr
PDF
Ap Camp 2011
PDF
MontelLUG - Conferenze 2007 - Introduzione a RSync
PostgreSQL: Prima configurazione
PostgreSQL: Integrità dei dati
PostgreSQL: Archtettura per la gestione dei pro
PostgreSQL : Tuning
PostgreSQL: Transazioni e locking
Pgtraining bdr
Ap Camp 2011
MontelLUG - Conferenze 2007 - Introduzione a RSync

What's hot (19)

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

Viewers also liked (9)

PDF
Messa in rete
PDF
Medicina Generale con PostgreSQL
PDF
Love Your Database (ESC 2k16)
PPTX
Avanzato a02 uno sguardo a postgis
PDF
PDF
PostgreSQL: il database Open Source di fascia Enterprise piu' avanzato al mondo
PPTX
Corso GIS Avanzato a03 usare postgis
PDF
PostgreSQL
PDF
PostgreSQL: Approximated searches
Messa in rete
Medicina Generale con PostgreSQL
Love Your Database (ESC 2k16)
Avanzato a02 uno sguardo a postgis
PostgreSQL: il database Open Source di fascia Enterprise piu' avanzato al mondo
Corso GIS Avanzato a03 usare postgis
PostgreSQL
PostgreSQL: Approximated searches
Ad

Similar to PostgreSQL : Architettura di storage (20)

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

Recently uploaded (9)

PDF
Mazzoni-Reggi-2012-Effetto-Lucifero-Su-Wikipedia.pdf
PDF
GIÁO ÁN CHÍNH KHÓA TIẾNG ANH 9 - CẢ NĂM - THEO CÔNG VĂN 5512 (2 CỘT) NĂM HỌC ...
PDF
CHUYÊN ĐỀ BỔ TRỢ NGỮ ÂM, TỪ VỰNG NÂNG CAO - TIẾNG ANH 9 VÀ ÔN THI VÀO LỚP 10 ...
PDF
BÀI TẬP TEST BỔ TRỢ THEO TỪNG UNIT - TIẾNG ANH 10 FRIENDS GLOBAL - CẢ NĂM (24...
PDF
16 CHUYÊN ĐỀ BÀI TẬP ÔN THI TUYỂN SINH VÀO 10 - MÔN TIẾNG ANH - THEO FORM ĐỀ ...
PPTX
Copia di PROGETTO VIOLENZA sulle donne PCTO
PDF
BÀI TẬP TEST BỔ TRỢ THEO TỪNG UNIT - TIẾNG ANH 10 EXPLORE NEW WORLDS - CẢ NĂM...
PDF
GIÁO ÁN KẾ HOẠCH BÀI DẠY CHÍNH KHÓA TIẾNG ANH 9 - CẢ NĂM - THEO CÔNG VĂN 5512...
PPTX
SLIDE-DE-CURSOS-OssssFICIAL-DA-EGEPI-.pptx
Mazzoni-Reggi-2012-Effetto-Lucifero-Su-Wikipedia.pdf
GIÁO ÁN CHÍNH KHÓA TIẾNG ANH 9 - CẢ NĂM - THEO CÔNG VĂN 5512 (2 CỘT) NĂM HỌC ...
CHUYÊN ĐỀ BỔ TRỢ NGỮ ÂM, TỪ VỰNG NÂNG CAO - TIẾNG ANH 9 VÀ ÔN THI VÀO LỚP 10 ...
BÀI TẬP TEST BỔ TRỢ THEO TỪNG UNIT - TIẾNG ANH 10 FRIENDS GLOBAL - CẢ NĂM (24...
16 CHUYÊN ĐỀ BÀI TẬP ÔN THI TUYỂN SINH VÀO 10 - MÔN TIẾNG ANH - THEO FORM ĐỀ ...
Copia di PROGETTO VIOLENZA sulle donne PCTO
BÀI TẬP TEST BỔ TRỢ THEO TỪNG UNIT - TIẾNG ANH 10 EXPLORE NEW WORLDS - CẢ NĂM...
GIÁO ÁN KẾ HOẠCH BÀI DẠY CHÍNH KHÓA TIẾNG ANH 9 - CẢ NĂM - THEO CÔNG VĂN 5512...
SLIDE-DE-CURSOS-OssssFICIAL-DA-EGEPI-.pptx

PostgreSQL : Architettura di storage