PostgreSQL: Archtettura per la gestione dei pro

13
27/11/08 /home/scotty/enrico/corso-web/finale/Architettura/arch2 page 1 Architettura per la gestione dei processi Architettura per la gestione dei processi

Transcript of PostgreSQL: Archtettura per la gestione dei pro

Page 1: PostgreSQL: Archtettura per la gestione dei pro

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

Architettura per la gestione dei processi

Architettura per la gestione dei processi

Page 2: PostgreSQL: Archtettura per la gestione dei pro

27/11/08 /home/scotty/enrico/corso­web/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)

Page 3: PostgreSQL: Archtettura per la gestione dei pro

27/11/08 /home/scotty/enrico/corso­web/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.

Page 4: PostgreSQL: Archtettura per la gestione dei pro

27/11/08 /home/scotty/enrico/corso­web/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

Page 5: PostgreSQL: Archtettura per la gestione dei pro

27/11/08 /home/scotty/enrico/corso­web/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

Page 6: PostgreSQL: Archtettura per la gestione dei pro

27/11/08 /home/scotty/enrico/corso­web/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

Page 7: PostgreSQL: Archtettura per la gestione dei pro

27/11/08 /home/scotty/enrico/corso­web/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

Page 8: PostgreSQL: Archtettura per la gestione dei pro

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

Architettura completa

Postmaster

Shared memory

Postgres

Workmem

bgwriter statsarchiver

Postgres

Workmem

Postgres

Workmem

startupshutdown

Page 9: PostgreSQL: Archtettura per la gestione dei pro

27/11/08 /home/scotty/enrico/corso­web/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

Page 10: PostgreSQL: Archtettura per la gestione dei pro

27/11/08 /home/scotty/enrico/corso­web/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

Page 11: PostgreSQL: Archtettura per la gestione dei pro

27/11/08 /home/scotty/enrico/corso­web/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

Page 12: PostgreSQL: Archtettura per la gestione dei pro

27/11/08 /home/scotty/enrico/corso­web/finale/Architettura/arch2.odp page 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

Page 13: PostgreSQL: Archtettura per la gestione dei pro

27/11/08 /home/scotty/enrico/corso­web/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