Processo do RDS para PostgreSQL
O RDS para PostgreSQL utiliza vários processos.
Processo Postmaster
O processo de postmaster é o primeiro a ser iniciado quando você inicia o RDS para PostgreSQL. Ele tem as seguintes responsabilidades principais:
-
Bifurcar e monitorar processos em segundo plano
-
Receba solicitações de autenticação dos processos do cliente e autentique-as antes de permitir que o banco de dados atenda às solicitações
Processos de backend
Se o postmaster autenticar uma solicitação de cliente, o postmaster bifurcará um novo processo de backend, também chamado de processo postgres. Um processo de cliente conecta-se exatamente a um processo de backend. O processo de cliente e o processo de backend se comunicam diretamente sem a intervenção do processo postmaster.
Processos em segundo plano
O processo postmaster bifurca vários processos que realizam diferentes tarefas de backend. Alguns dos mais importantes incluem:
-
Gravador WAL
O RDS para PostgreSQL grava dados no buffer de WAL (gravação antecipada) nos arquivos de log. O princípio do registro em log de gravação antecipada determina que o banco de dados não pode gravar alterações nos arquivos de dados até que o banco de dados grave registros de log descrevendo essas alterações no disco. O mecanismo WAL reduz a E/S do disco e permite que o RDS para PostgreSQL utilize os logs para recuperar o banco de dados após uma falha.
-
Gravador em segundo plano
Esse processo grava periodicamente páginas sujas (modificadas) dos buffers de memória nos arquivos de dados. Uma página fica suja quando um processo de backend a modifica na memória.
-
Daemon autovacuum
O daemon consiste no seguinte:
-
O launcher de autovacuum
-
Os processos de operador de autovacuum
Quando o autovacuum está ativado, ele procura tabelas que tiveram um grande número de tuplas inseridas, atualizadas ou excluídas. Esse daemon tem as seguintes responsabilidades:
-
Recuperar ou reutilizar o espaço em disco ocupado por linhas atualizadas ou excluídas
-
Atualizar estatísticas utilizadas pelo planejador
-
Proteger contra a perda de dados antigos devido à recorrência de IDs de transação
O recurso e autovacuum automatiza a execução de comandos
VACUUM
eANALYZE
.VACUUM
tem as seguintes variantes: padrão e completo. O vacuum padrão é executado em paralelo com outras operações de banco de dados.VACUUM FULL
requer um bloqueio exclusivo na tabela em que está trabalhando. Portanto, ele não pode ser executado em paralelo com operações que acessam a mesma tabela.VACUUM
cria uma quantidade substancial de tráfego de E/S, podendo piorar a performance para outras sessões ativas. -