PostgreSQL: Archtettura per la gestione dei pro
-
Upload
enrico-pirozzi -
Category
Education
-
view
874 -
download
5
Transcript of PostgreSQL: Archtettura per la gestione dei pro
27/11/08 /home/scotty/enrico/corsoweb/finale/Architettura/arch2.odp page 1
Architettura per la gestione dei processi
Architettura per la gestione dei processi
27/11/08 /home/scotty/enrico/corsoweb/finale/Architettura/arch2.odp page 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/corsoweb/finale/Architettura/arch2.odp page 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/corsoweb/finale/Architettura/arch2.odp page 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/corsoweb/finale/Architettura/arch2.odp page 5
Process Architecture
postmaster
Shared Memory
Shared buffers WAL buffers Process Array Misc Transactionstructures
bgwriterStas
collectorarchiver
Wal segments Archived WAL
27/11/08 /home/scotty/enrico/corsoweb/finale/Architettura/arch2.odp page 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
Shared memory
Postgres
Workmem
bgwriter
27/11/08 /home/scotty/enrico/corsoweb/finale/Architettura/arch2.odp page 7
Risposta al client
Postmaster
Shared memory
Postgres
Workmem
bgwriter
Postmaster
Chiama Postgresql backend
Risponde al client
Attende i risultati
27/11/08 /home/scotty/enrico/corsoweb/finale/Architettura/arch2.odp page 8
Architettura completa
Postmaster
Shared memory
Postgres
Workmem
bgwriter statsarchiver
Postgres
Workmem
Postgres
Workmem
startupshutdown
27/11/08 /home/scotty/enrico/corsoweb/finale/Architettura/arch2.odp page 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/corsoweb/finale/Architettura/arch2.odp page 10
Buffering Lettura
Postmaster
Postmaster backends
Una sola lettura I/O
Molte letture dal buffer
Aumento della velocità di lettura
Postgres Postgres Postgres
Shared Memory
Shared (data)buffer
Database
27/11/08 /home/scotty/enrico/corsoweb/finale/Architettura/arch2.odp page 11
Buffering Scrittura
Postmaster
Background writer (bgwriter): è il processo che gestisce il checkpoint
Tutte le transazioni passano per il WAL write ahead log
Postgres Postgres Postgres
Shared Memory
Shared (data)buffer
Database checkpoint
bgwriter
27/11/08 /home/scotty/enrico/corsoweb/finale/Architettura/arch2.odp page 12
Shared buffer and WriteAheadLog (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/corsoweb/finale/Architettura/arch2.odp page 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