SlideShare a Scribd company logo
1 of 13
Download to read offline
Architettura per la gestione dei processi




            Architettura per la gestione dei processi


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


           Richiesta di connessione
           Risposta del server
           Schema globale dell'architettura
           Buffering di lettura
           Buffering di scrittura
           Shared Buffer e WAL (write ahead log)




27/11/08     /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp   page 2
Overview
  L'architettura PostgreSQL è del tipo singolo 
  processo per utente
  Ogni connessione utente ha il suo processo di 
  sistema
  E' progettato per sistemi SMP
  Si basa su IPC (Inter Process Communiction)
       Su sistemi Unix
           La sincronizzazione avviene via semafori
           I dati sono condivisi attraverso shared memory
       Su sistemi Windows
           IPC sono implementate attraverso le primitive specifiche di 
           windows.




27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp   page 3
Overview


      Processi distinti che girano sul server:
           Postmaster 
           Utility processes → ad es vacuum → vedremo in seguito
           User backend process




27/11/08    /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp   page 4
Process Architecture

                                        postmaster




                                       Shared Memory

      Shared buffers          WAL buffers            Process Array           Misc Transaction
                                                                                structures




                  Stas
    bgwriter                archiver
                collector




                                                      Wal segments              Archived WAL

 27/11/08      /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp       page 5
Richiesta di connessione

      Postmaster
            Resta in ascolto sulla porta 5430 (default)
            Riceve le richieste da parte della connessioni clients
               Utilizzo della shared memory

                                     Postmaster


                                                       Work
                                                       mem
                                       Postgres




                                  Shared memory



                                       bgwriter

 27/11/08     /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp   page 6
Risposta al client
   Postmaster 
        Chiama Postgresql backend
        Risponde al client
        Attende i risultati
                                                             Postmaster


                                                                            Work
                                                                            mem
                                                              Postgres




                                                         Shared memory



                                                              bgwriter



 27/11/08    /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp   page 7
Architettura completa

        shutdown                                                          startup

                                    Postmaster


                          Work                    Work                     Work
                          mem                     mem                      mem
             Postgres                Postgres                  Postgres




                                  Shared memory



               archiver              bgwriter               stats




 27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp     page 8
Architettura completa

      Postmaster
      Startup, shutdown
      Postgresql backends
            Nuove connessione producono nuovi backends

      Bgwriter → Background Writer
      Archiver → usato nel PITR
      Stats collector




 27/11/08     /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp   page 9
Buffering ­ Lettura

 Postgres     Postgres     Postgres
                                                    Postmaster
                                                         Postmaster backends
                                                         Una sola lettura I/O
                                                         Molte letture dal buffer
            Shared Memory
                                                         Aumento della velocità 
                                                         di lettura


     Shared (data)
        buffer




             Database


 27/11/08    /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp   page 10
Buffering ­ Scrittura
                                              Postmaster
 Postgres     Postgres     Postgres
                                                   Background writer 
                                                   (bgwriter): è il processo 
                                                   che gestisce il 
                                                   checkpoint
            Shared Memory                          Tutte le transazioni 
                                                   passano per il WAL 
                                                   write ahead log

     Shared (data)
        buffer                                             bgwriter




             Database                                    checkpoint



 27/11/08    /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp   page 11
Shared buffer and Write­Ahead­Log (WAL)
                                      postmaster


        User x/ database x                              User y /database y



      Shared buffer cache                                       WAL




            bg_writer                                   Kernel file I/O cache




                                  Database files                           Wal files

 27/11/08    /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp     page 12
Punto della situazione



               Abbiamo parlato di 
                    Come avviene una connessione
                    Come la connessione viene passata al 
                    backend
                    Risposta al client
                    L'architettura per la gestione dei processi
                    La gestione del buffer di lettura
                    La gestione del buffer di scrittura
                    WAL




 27/11/08   /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp   page 13

More Related Content

What's hot

Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriFulvio Corno
 
PostgreSQL: Point in time recovery
PostgreSQL: Point in time recoveryPostgreSQL: Point in time recovery
PostgreSQL: Point in time recoveryEnrico Pirozzi
 
Sottoli in the cloud
Sottoli in the cloudSottoli in the cloud
Sottoli in the clouddema
 
Linux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneLinux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneFulvio Corno
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileIvan Rossi
 
Log files - Approcci al Troubleshooting
 Log files - Approcci al Troubleshooting Log files - Approcci al Troubleshooting
Log files - Approcci al TroubleshootingFulvio Corno
 
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017MongoDB
 
Introduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleIntroduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleMajong DevJfu
 
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 - compattaAlessandro Selli
 
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...Claudio Cardinali
 
Raspberry omv
Raspberry omvRaspberry omv
Raspberry omvPipperss
 
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 archiviazioneInformamuse srl
 
Open Source Parallel Computing ltcsp
Open Source Parallel Computing ltcspOpen Source Parallel Computing ltcsp
Open Source Parallel Computing ltcspLaura Camellini
 
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...Fulvio Corno
 
Tom EE appunti devoxx2012
Tom EE   appunti devoxx2012 Tom EE   appunti devoxx2012
Tom EE appunti devoxx2012 Nicola Pedot
 

What's hot (20)

Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatori
 
Compilazione Kernel
Compilazione KernelCompilazione Kernel
Compilazione Kernel
 
PostgreSQL: Point in time recovery
PostgreSQL: Point in time recoveryPostgreSQL: Point in time recovery
PostgreSQL: Point in time recovery
 
Sottoli in the cloud
Sottoli in the cloudSottoli in the cloud
Sottoli in the cloud
 
Open@BNCF
Open@BNCFOpen@BNCF
Open@BNCF
 
Linux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneLinux Kernel, driver e compilazione
Linux Kernel, driver e compilazione
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatile
 
Proxmox VE
Proxmox VEProxmox VE
Proxmox VE
 
Log files - Approcci al Troubleshooting
 Log files - Approcci al Troubleshooting Log files - Approcci al Troubleshooting
Log files - Approcci al Troubleshooting
 
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017
 
Introduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleIntroduzione Alla Uml Mconsole
Introduzione Alla Uml Mconsole
 
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
 
LTSP
LTSPLTSP
LTSP
 
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
Server di posta aziendale su protocollo IMAP, antispam, antivirus, webmail, g...
 
Raspberry omv
Raspberry omvRaspberry omv
Raspberry omv
 
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
 
Open Source Parallel Computing ltcsp
Open Source Parallel Computing ltcspOpen Source Parallel Computing ltcsp
Open Source Parallel Computing ltcsp
 
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
 
Hadoop in action!
Hadoop in action!Hadoop in action!
Hadoop in action!
 
Tom EE appunti devoxx2012
Tom EE   appunti devoxx2012 Tom EE   appunti devoxx2012
Tom EE appunti devoxx2012
 

Viewers also liked

La microzonazione sismica in Regione Piemonte con strumenti Open Source
La microzonazione sismica in Regione Piemonte con strumenti Open SourceLa microzonazione sismica in Regione Piemonte con strumenti Open Source
La microzonazione sismica in Regione Piemonte con strumenti Open SourceLanteri Luca
 
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 PgTraining
 
PostgreSQL: Approximated searches
PostgreSQL: Approximated searchesPostgreSQL: Approximated searches
PostgreSQL: Approximated searchesEnrico Pirozzi
 
Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)PgTraining
 

Viewers also liked (6)

La microzonazione sismica in Regione Piemonte con strumenti Open Source
La microzonazione sismica in Regione Piemonte con strumenti Open SourceLa microzonazione sismica in Regione Piemonte con strumenti Open Source
La microzonazione sismica in Regione Piemonte con strumenti Open Source
 
PostgreSQL
PostgreSQL PostgreSQL
PostgreSQL
 
Messa in rete
Messa in reteMessa in rete
Messa in rete
 
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
 
PostgreSQL: Approximated searches
PostgreSQL: Approximated searchesPostgreSQL: Approximated searches
PostgreSQL: Approximated searches
 
Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)
 

PostgreSQL: Archtettura per la gestione dei pro

  • 1. Architettura per la gestione dei processi Architettura per la gestione dei processi 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp page 1
  • 2. Architettura di storage Richiesta di connessione Risposta del server Schema globale dell'architettura Buffering di lettura Buffering di scrittura Shared Buffer e WAL (write ahead log) 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp page 2
  • 3. Overview L'architettura PostgreSQL è del tipo singolo  processo per utente Ogni connessione utente ha il suo processo di  sistema E' progettato per sistemi SMP Si basa su IPC (Inter Process Communiction) Su sistemi Unix La sincronizzazione avviene via semafori I dati sono condivisi attraverso shared memory Su sistemi Windows IPC sono implementate attraverso le primitive specifiche di  windows. 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp page 3
  • 4. Overview Processi distinti che girano sul server: Postmaster  Utility processes → ad es vacuum → vedremo in seguito User backend process 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp page 4
  • 5. Process Architecture postmaster Shared Memory Shared buffers WAL buffers Process Array Misc Transaction structures Stas bgwriter archiver collector Wal segments Archived WAL 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp page 5
  • 6. Richiesta di connessione Postmaster Resta in ascolto sulla porta 5430 (default) Riceve le richieste da parte della connessioni clients Utilizzo della shared memory Postmaster Work mem Postgres Shared memory bgwriter 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp page 6
  • 7. Risposta al client Postmaster  Chiama Postgresql backend Risponde al client Attende i risultati Postmaster Work mem Postgres Shared memory bgwriter 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp page 7
  • 8. Architettura completa shutdown startup Postmaster Work Work Work mem mem mem Postgres Postgres Postgres Shared memory archiver bgwriter stats 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp page 8
  • 9. Architettura completa Postmaster Startup, shutdown Postgresql backends Nuove connessione producono nuovi backends Bgwriter → Background Writer Archiver → usato nel PITR Stats collector 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp page 9
  • 10. Buffering ­ Lettura Postgres Postgres Postgres Postmaster Postmaster backends Una sola lettura I/O Molte letture dal buffer Shared Memory Aumento della velocità  di lettura Shared (data) buffer Database 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp page 10
  • 11. Buffering ­ Scrittura Postmaster Postgres Postgres Postgres Background writer  (bgwriter): è il processo  che gestisce il  checkpoint Shared Memory Tutte le transazioni  passano per il WAL  write ahead log Shared (data) buffer bgwriter Database checkpoint 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp page 11
  • 12. Shared buffer and Write­Ahead­Log (WAL) postmaster User x/ database x User y /database y Shared buffer cache WAL bg_writer Kernel file I/O cache Database files Wal files 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp page 12
  • 13. Punto della situazione Abbiamo parlato di  Come avviene una connessione Come la connessione viene passata al  backend Risposta al client L'architettura per la gestione dei processi La gestione del buffer di lettura La gestione del buffer di scrittura WAL 27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp page 13