Procesos de RDS para PostgreSQL
RDS para PostgreSQL utiliza varios procesos.
Proceso de administrador de correos
El proceso de administrador de correos es el primer proceso que se ejecuta cuando se inicia RDS para PostgreSQL. El proceso de administrador de correos tiene las siguientes funciones principales:
-
Bifurcar y monitorear los procesos en segundo plano
-
Recibir solicitudes de autenticación de los procesos cliente, y autenticarlos antes de permitir que la base de datos atienda las solicitudes
Procesos de backend
Si el administrador de correos autentica una solicitud de cliente, el administrador de correos bifurca un nuevo proceso de backend, también llamado proceso postgres. Un proceso cliente se conecta exactamente a un proceso backend. El proceso cliente y el proceso backend se comunican directamente sin la intervención del proceso de administrador de correos.
Procesos en segundo plano
El proceso de administrador de correos bifurca varios procesos que ejecutan distintas tareas de backend. Algunas de las más importantes son las siguientes:
-
Escritor de WAL
RDS para PostgreSQL escribe datos en el búfer WAL (registro de escritura anticipada) en los archivos de registro. El principio del registro por adelantado es que la base de datos no puede escribir los cambios en los archivos de datos hasta que la base de datos escriba los registros que describen esos cambios en el disco. El mecanismo de WAL reduce la E/S del disco y permite a RDS para PostgreSQL utilizar los registros para recuperar la base de datos en caso de error.
-
Escritor en segundo plano
Este proceso escribe de forma periódica las páginas sucias (modificadas) desde los búferes de memoria a los archivos de datos. Una página se vuelve sucia cuando un proceso de backend la modifica en la memoria.
-
Daemon de autovacuum
El daemon consta de lo siguiente:
-
El iniciador de autovacuum
-
Los procesos de trabajo de autovacuum
Cuando autovacuum está activado busca las tablas en las que se ha insertado, actualizado o eliminado un número elevado de tuplas. El daemon tiene las siguientes responsabilidades:
-
Recuperar o reutilizar el espacio de disco ocupado por las filas actualizadas o eliminadas
-
Actualizar las estadísticas utilizadas por el planificador
-
Proteger contra la pérdida de datos antiguos debido al reinicio del ID de transacción
La característica de autovacuum automatiza la ejecución de los comandos
VACUUM
yANALYZE
.VACUUM
tiene las siguientes variantes: estándar y completo. El vacío estándar se ejecuta en paralelo con otras operaciones de la base de datos.VACUUM FULL
requiere un bloqueo exclusivo sobre la tabla en la que se trabaja. Por lo tanto, no puede ejecutarse en paralelo con operaciones que acceden a la misma tabla.VACUUM
crea una cantidad considerable de tráfico de E/S, lo que puede causar un bajo rendimiento para otras sesiones activas. -