You are on page 1of 37

Mdulo 1

Introduccin y arquitectura
Eric U. Garca Cano Castillo

HISTORIA DE POSTGRESQL

15/12/2017 dba@unica.unam.mx 2
Eric U. Garca Cano Castillo

La BD open source ms avanzada

15/12/2017 dba@unica.unam.mx 3
Eric U. Garca Cano Castillo

La BD open source ms avanzada

15/12/2017 dba@unica.unam.mx 4
Eric U. Garca Cano Castillo

PRINCIPALES CARACTERSTICAS

15/12/2017 dba@unica.unam.mx 5
Eric U. Garca Cano Castillo

Principales caractersticas
Es Objeto-Relacional
Cada tabla define una clase, existe herencia y los
operadores son polimrficos
Cumple con ACID
Portable
Escrito en ANSI C
Soporte para Linux, Windows, MAC y casi cualquier UNIX
Confiable
ACID e integridad referencial
Soporte de transacciones y savepoints
Usa un mecanismo de escritura anticipada

15/12/2017 dba@unica.unam.mx 6
Eric U. Garca Cano Castillo

Principales caractersticas
Escalable
Usa un Control Multiversin de Concurrencia
Usa candados a nivel de renglones
Soporta el particionamiento de tablas
Soporta tablespaces
Seguro
Emplea control de acceso basado en el host
Provee permisos por nivel (granulares)
Soporte para bitacoras
SSL
15/12/2017 dba@unica.unam.mx 7
Eric U. Garca Cano Castillo

Principales caractersticas
Disponibilidad
Soporte para replicacin
Soporte para alta disponibilidad
Avanzado
Bsquedas full-text
Soporte de triggers y funciones
Soporta varios lenguajes procedurales
Soporta respaldos en caliente Point-in-Time
Recovery (PITR)
Vacuum, TOAST y EXPLAIN
15/12/2017 dba@unica.unam.mx 8
Eric U. Garca Cano Castillo

Control de Concurrencia Multi-versin MVCC


Mantiene la informacin consistente de manera
interna.
Cada usuario tiene una snapshot de la BD.
Previene la consulta de informacin
inconsistente.
Provee aislamiento de transaccin en
transacciones concurrentes.
La lectura no bloquea la escritura y viceversa.
Ningn cambio ser visible hasta despus del
commit.

15/12/2017 dba@unica.unam.mx 9
Eric U. Garca Cano Castillo

Escritura anticipada (WAL)


Log de transacciones

Registro de cada insert/delete/update antes de que


sea escrito en el DD.

Postgres no considera los datos seguros hasta que


no se escribe en la bitcora de transacciones.

Provee un mecanismo de recuperacin en caso de


crash.

15/12/2017 dba@unica.unam.mx 10
Eric U. Garca Cano Castillo

Protocolo WAL

15/12/2017 dba@unica.unam.mx 11
Eric U. Garca Cano Castillo

Escritura anticipada (WAL)


Caractersticas en Postgres:

Al igual que Oracle REDO logs (no separa UNDO logs)


LaBD crece con su respectiva informacin de undo
Los registros nunca se llenan con transacciones grandes

Recuperacin rpida.

Se deben escribir bloques enteros de informacin


antes de hacer un checkpoint.

15/12/2017 dba@unica.unam.mx 12
Eric U. Garca Cano Castillo

Limitaciones de la base de datos


Las limitaciones estn relacionadas con:
Limites del S.O.
Parmetros del tiempo de compilacin
Uso de los tipos de datos
Limitaciones generales
Lmite Valor
Tamao mximo de la BD Sin lmite
Tamao mximo de la tabla 32 TB
Tamao mximo del rengln 1.6 TB
Tamao mximo de la colum. 1 GB
Renglones x tabla Sin lmite
Columnas x tabla 250-1600
ndices x tabla Sin lmite
15/12/2017 dba@unica.unam.mx 13
Eric U. Garca Cano Castillo

TERMINOLOGA DE POSTGRESQL

15/12/2017 dba@unica.unam.mx 14
Eric U. Garca Cano Castillo

Terminologa
PostgreSQL fue diseado de manera acadmica:
Los objetos estn definidos en trminos acadmicos
La terminologa est basada en la teora del clculo y el lgebra relacionales
Nombres de objetos comunes
Trmino en la industria Trmino Postgres
Tabla o ndice Relacin
Rengln Tupla
Columna Atributo

Nombres de objetos de almacenamiento


Trmino en la industria Trmino Postgres
Bloque de datos Pgina (cuando el bloque est en disco)
Pgina Buffer (cuando el bloque esta en memoria)

15/12/2017 dba@unica.unam.mx 15
Eric U. Garca Cano Castillo

Terminologa
Tablespaces
Directorios que contienen informacin de las bases de
datos de un cluster fuera del directorio data principal.

Schemas
Son simplemente espacios de nombres. De esta
manera es posible crear en una misma base de datos,
objetos que tengan el mismo nombre (similar a las
carpetas del SO).

15/12/2017 dba@unica.unam.mx 16
Eric U. Garca Cano Castillo

Terminologa
Clster
Es un conjunto de objetos (bases de datos, usuarios,
schemas, etc.) que son manejados por una sola
instancia del servidor de bases de datos.
En el sistema de archivos, el clster es un directorio
(directorio data).

Instancia
Conjunto de procesos compartidos y estructuras de
memoria que permiten el acceso a los datos.

15/12/2017 dba@unica.unam.mx 17
Eric U. Garca Cano Castillo

ARQUITECTURA DEL MANEJADOR

15/12/2017 dba@unica.unam.mx 18
15/12/2017 dba@unica.unam.mx 19
Eric U. Garca Cano Castillo

Arquitectura
La arquitectura de PostgreSQL es cliente-servidor
y utiliza un proceso por usuario.
Cada conexin de algn usuario tiene su propio
proceso del S.O.

Distintos tipos de procesos


Postmaster
Utility processes
User backend processes

15/12/2017 dba@unica.unam.mx 20
Eric U. Garca Cano Castillo

Arquitectura
Cada instancia de PostgreSQL tiene un conjunto
de procesos (opcionales y obligatorios) y
estructuras de memoria.

BG Writer
WAL Writer
Stats collector
Autovacuum luncher
Syslogger
Archiver
15/12/2017 dba@unica.unam.mx 21
Eric U. Garca Cano Castillo

Postmaster
Es el padre de todos los procesos de PostgreSQL.

Acepta conexiones por un puerto [5432]

Maneja autenticacin y autorizacin de los clientes

Crea un proceso postgres por cada usuario

Este proceso est adscrito al segmento shmem pero


no accede a l
15/12/2017 dba@unica.unam.mx 22
Eric U. Garca Cano Castillo

BG Writer
Es un proceso obligatorio.

Todos los procesos del servidor PostgreSQL leen


informacin del disco y lo mueven al Shared
Buffer Pool.

Shared Buffer Pool usa el algoritmo LRU (least-


recently used)

15/12/2017 dba@unica.unam.mx 23
Eric U. Garca Cano Castillo

BG Writer
La mayor parte del tiempo est dormido, pero al
pasar a modo activo:
Busca todas las pginas del Shared Buffer Pool que
han sido modificadas.
Escoge un nmero de pginas modificadas para
escribirlas al disco.
Elimina las pginas menos usadas.

15/12/2017 dba@unica.unam.mx 24
Eric U. Garca Cano Castillo

WAL Writer
Es un proceso obligatorio.

Escribe y ejecuta fsync en los archivos WAL en


intervalos convenientes.

fsync - Copia todas las partes de un archivo que estn


en memoria a disco, y espera hasta que el dispositivo
avise de que todas las partes se encuentran en
almacenamiento estable.

15/12/2017 dba@unica.unam.mx 25
Eric U. Garca Cano Castillo

WAL Writer
Los Buffers WAL almacenan los cambios hechos a
la base en el log de transacciones, para garantizar
la seguridad de las transacciones.

Los buffers WAL se escriben en el disco con cada


commit o rollback de una transaccin.

WAL Writer escribe en el disco.

15/12/2017 dba@unica.unam.mx 26
Eric U. Garca Cano Castillo

Stats Collector
Es un proceso opcional que por defecto est
activo.
Recolecta informacin acerca de la actividad del
servidor:
Cuenta el nmero de accesos a las tablas e ndices.
El nmero total de renglones en cada tabla.
Informacin acerca del VACUUM y ANALYZE para cada
tabla.
La recoleccin de estadsticas aumentan el tiempo de
ejecucin de las queries.

15/12/2017 dba@unica.unam.mx 27
Eric U. Garca Cano Castillo

Autovacuum luncher
Es un proceso opcional que por defecto est
activo.

Autovacuum launcher es un demonio consistente de


mltiples procesos llamados autovacuum workers.

Autovacuum luncher est encargado de iniciar un


autovacuum worker por cada base de datos.

15/12/2017 dba@unica.unam.mx 28
Eric U. Garca Cano Castillo

Syslogger
Es un proceso opcional que por defecto est
desactivado.

Todos los procesos estn adscritos a este proceso


para reportar informacin acerca de sus
actividades.

La informacin de cada proceso se almacena en


$PGDATA/pg_log

15/12/2017 dba@unica.unam.mx 29
Eric U. Garca Cano Castillo

Syslogger

15/12/2017 dba@unica.unam.mx 30
Eric U. Garca Cano Castillo

Archiver
Es un proceso opcional que por defecto est
desactivado.

Iniciar la base de datos en modo Archive significa


capturar la informacin de cada archivo WAL
lleno y guardarla en algn lugar antes de que el
segmento sea reciclado para volverlo a usar.

15/12/2017 dba@unica.unam.mx 31
Eric U. Garca Cano Castillo

Archiver

15/12/2017 dba@unica.unam.mx 32
Eric U. Garca Cano Castillo

Clster
Es un conjunto de objetos que son manejados por una
sola instancia del servidor de bases de datos.

Crear un clster consiste de lo siguiente:


Crear los directorios en los cuales la BD se alojar
Generar las tablas del catlogo compartidas

Un postmaster y un puerto por clster.

Se accede a un solo directorio de datos.

15/12/2017 dba@unica.unam.mx 33
Eric U. Garca Cano Castillo

Estructura del directorio DATA

15/12/2017 dba@unica.unam.mx 34
Eric U. Garca Cano Castillo

Arquitectura fsica

Cada base de datos es un directorio


Uno o ms archivos por relacin mximo 1GB

Cada relacin est guardada en un tablespace


PostgreSQL maneja links a otros directorios
Por defecto los ndices se guardan en el mismo
tablespace.

15/12/2017 dba@unica.unam.mx 35
Eric U. Garca Cano Castillo

Estructura de la base de datos

15/12/2017 dba@unica.unam.mx 36
Eric U. Garca Cano Castillo

Commit y Checkpoint
Antes del commit
Updates sin commit estn en la memoria.

Despus del commit


Updates con commit son escritos de la memoria
compartida al disco (WAL file).

Despus del checkpoint


Pginas modificadas son escritas de la memoria
compartida a los archivos.
15/12/2017 dba@unica.unam.mx 37

You might also like