O valor padrão para o parâmetro do servidor max_wal_senders definido quando você provisiona a instância do servidor flexível do Banco de Dados do Azure para PostgreSQL nunca deve ser reduzido abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para poder lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:
A replicação lógica de um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
A única razão pela qual você precisa de um remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos.
Qualquer que seja o número de remetentes WAL que estejam sendo utilizados para replicação física e lógica, todos eles se tornam ativos de uma só vez, sempre que qualquer back-end grava algo no log de gravação antecipada. Quando isso acontece, todos os remetentes WAL atribuídos para fazer a replicação lógica são ativados para:
Decodificar todos os novos registros no WAL,
Filtrar os registros de log nos quais eles não estão interessados,
Replicar os dados relevantes para cada um deles.
Os remetentes WAL são semelhantes às conexões no sentido de que, se estiverem ociosos, não importa quantos existem. No entanto, se eles estiverem ativos, apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara para a CPU. Cada trabalhador precisa decodificar todo o WAL, mesmo que ele replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log de gravação antecipada. Para replicação física, isso não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e costumam ser limitados pela largura de banda da rede primeiro.
Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar o crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos a seguir podem ajudar a ilustrar isso melhor.
Para um servidor com 8 vCores, alta disponibilidade desabilitada, 2 réplicas de leitura e 3 slots de replicação lógica, talvez você queira configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos (3) + alguns adicionais para crescimento futuro, considerando vCores disponíveis (1) = 6.
Para um servidor com 16 vCores, alta disponibilidade habilitada, 4 réplicas de leitura e 5 slots de replicação lógica, talvez você queira configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos (5) + alguns adicionais para crescimento futuro, considerando vCores disponíveis (2) = 13.
Se você ainda considera que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário funcionasse corretamente.
O valor padrão para o parâmetro do servidor max_wal_senders definido quando você provisiona a instância do servidor flexível do Banco de Dados do Azure para PostgreSQL nunca deve ser reduzido abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para poder lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:
A replicação lógica de um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
A única razão pela qual você precisa de um remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos.
Qualquer que seja o número de remetentes WAL que estejam sendo utilizados para replicação física e lógica, todos eles se tornam ativos de uma só vez, sempre que qualquer back-end grava algo no log de gravação antecipada. Quando isso acontece, todos os remetentes WAL atribuídos para fazer a replicação lógica são ativados para:
Decodificar todos os novos registros no WAL,
Filtrar os registros de log nos quais eles não estão interessados,
Replicar os dados relevantes para cada um deles.
Os remetentes WAL são semelhantes às conexões no sentido de que, se estiverem ociosos, não importa quantos existem. No entanto, se eles estiverem ativos, apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara para a CPU. Cada trabalhador precisa decodificar todo o WAL, mesmo que ele replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log de gravação antecipada. Para replicação física, isso não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e costumam ser limitados pela largura de banda da rede primeiro.
Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar o crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos a seguir podem ajudar a ilustrar isso melhor.
Para um servidor com 8 vCores, alta disponibilidade desabilitada, 2 réplicas de leitura e 3 slots de replicação lógica, talvez você queira configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos (3) + alguns adicionais para crescimento futuro, considerando vCores disponíveis (1) = 6.
Para um servidor com 16 vCores, alta disponibilidade habilitada, 4 réplicas de leitura e 5 slots de replicação lógica, talvez você queira configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos (5) + alguns adicionais para crescimento futuro, considerando vCores disponíveis (2) = 13.
Se você ainda considera que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário funcionasse corretamente.
O valor padrão para o parâmetro do servidor max_wal_senders definido quando você provisiona a instância do servidor flexível do Banco de Dados do Azure para PostgreSQL nunca deve ser reduzido abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para poder lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:
A replicação lógica de um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
A única razão pela qual você precisa de um remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos.
Qualquer que seja o número de remetentes WAL que estejam sendo utilizados para replicação física e lógica, todos eles se tornam ativos de uma só vez, sempre que qualquer back-end grava algo no log de gravação antecipada. Quando isso acontece, todos os remetentes WAL atribuídos para fazer a replicação lógica são ativados para:
Decodificar todos os novos registros no WAL,
Filtrar os registros de log nos quais eles não estão interessados,
Replicar os dados relevantes para cada um deles.
Os remetentes WAL são semelhantes às conexões no sentido de que, se estiverem ociosos, não importa quantos existem. No entanto, se eles estiverem ativos, apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara para a CPU. Cada trabalhador precisa decodificar todo o WAL, mesmo que ele replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log de gravação antecipada. Para replicação física, isso não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e costumam ser limitados pela largura de banda da rede primeiro.
Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar o crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos a seguir podem ajudar a ilustrar isso melhor.
Para um servidor com 8 vCores, alta disponibilidade desabilitada, 2 réplicas de leitura e 3 slots de replicação lógica, talvez você queira configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos (3) + alguns adicionais para crescimento futuro, considerando vCores disponíveis (1) = 6.
Para um servidor com 16 vCores, alta disponibilidade habilitada, 4 réplicas de leitura e 5 slots de replicação lógica, talvez você queira configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos (5) + alguns adicionais para crescimento futuro, considerando vCores disponíveis (2) = 13.
Se você ainda considera que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário funcionasse corretamente.
O valor padrão para o parâmetro do servidor max_wal_senders definido quando você provisiona a instância do servidor flexível do Banco de Dados do Azure para PostgreSQL nunca deve ser reduzido abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para poder lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:
A replicação lógica de um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
A única razão pela qual você precisa de um remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos.
Qualquer que seja o número de remetentes WAL que estejam sendo utilizados para replicação física e lógica, todos eles se tornam ativos de uma só vez, sempre que qualquer back-end grava algo no log de gravação antecipada. Quando isso acontece, todos os remetentes WAL atribuídos para fazer a replicação lógica são ativados para:
Decodificar todos os novos registros no WAL,
Filtrar os registros de log nos quais eles não estão interessados,
Replicar os dados relevantes para cada um deles.
Os remetentes WAL são semelhantes às conexões no sentido de que, se estiverem ociosos, não importa quantos existem. No entanto, se eles estiverem ativos, apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara para a CPU. Cada trabalhador precisa decodificar todo o WAL, mesmo que ele replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log de gravação antecipada. Para replicação física, isso não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e costumam ser limitados pela largura de banda da rede primeiro.
Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar o crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos a seguir podem ajudar a ilustrar isso melhor.
Para um servidor com 8 vCores, alta disponibilidade desabilitada, 2 réplicas de leitura e 3 slots de replicação lógica, talvez você queira configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos (3) + alguns adicionais para crescimento futuro, considerando vCores disponíveis (1) = 6.
Para um servidor com 16 vCores, alta disponibilidade habilitada, 4 réplicas de leitura e 5 slots de replicação lógica, talvez você queira configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos (5) + alguns adicionais para crescimento futuro, considerando vCores disponíveis (2) = 13.
Se você ainda considera que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário funcionasse corretamente.
O valor padrão para o parâmetro do servidor max_wal_senders definido quando você provisiona a instância do servidor flexível do Banco de Dados do Azure para PostgreSQL nunca deve ser reduzido abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para poder lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:
A replicação lógica de um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
A única razão pela qual você precisa de um remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos.
Qualquer que seja o número de remetentes WAL que estejam sendo utilizados para replicação física e lógica, todos eles se tornam ativos de uma só vez, sempre que qualquer back-end grava algo no log de gravação antecipada. Quando isso acontece, todos os remetentes WAL atribuídos para fazer a replicação lógica são ativados para:
Decodificar todos os novos registros no WAL,
Filtrar os registros de log nos quais eles não estão interessados,
Replicar os dados relevantes para cada um deles.
Os remetentes WAL são semelhantes às conexões no sentido de que, se estiverem ociosos, não importa quantos existem. No entanto, se eles estiverem ativos, apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara para a CPU. Cada trabalhador precisa decodificar todo o WAL, mesmo que ele replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log de gravação antecipada. Para replicação física, isso não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e costumam ser limitados pela largura de banda da rede primeiro.
Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar o crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos a seguir podem ajudar a ilustrar isso melhor.
Para um servidor com 8 vCores, alta disponibilidade desabilitada, 2 réplicas de leitura e 3 slots de replicação lógica, talvez você queira configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos (3) + alguns adicionais para crescimento futuro, considerando vCores disponíveis (1) = 6.
Para um servidor com 16 vCores, alta disponibilidade habilitada, 4 réplicas de leitura e 5 slots de replicação lógica, talvez você queira configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos (5) + alguns adicionais para crescimento futuro, considerando vCores disponíveis (2) = 13.
Se você ainda considera que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário funcionasse corretamente.
O valor padrão para o parâmetro do servidor max_wal_senders definido quando você provisiona a instância do servidor flexível do Banco de Dados do Azure para PostgreSQL nunca deve ser reduzido abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para poder lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:
A replicação lógica de um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
A única razão pela qual você precisa de um remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos.
Qualquer que seja o número de remetentes WAL que estejam sendo utilizados para replicação física e lógica, todos eles se tornam ativos de uma só vez, sempre que qualquer back-end grava algo no log de gravação antecipada. Quando isso acontece, todos os remetentes WAL atribuídos para fazer a replicação lógica são ativados para:
Decodificar todos os novos registros no WAL,
Filtrar os registros de log nos quais eles não estão interessados,
Replicar os dados relevantes para cada um deles.
Os remetentes WAL são semelhantes às conexões no sentido de que, se estiverem ociosos, não importa quantos existem. No entanto, se eles estiverem ativos, apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara para a CPU. Cada trabalhador precisa decodificar todo o WAL, mesmo que ele replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log de gravação antecipada. Para replicação física, isso não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e costumam ser limitados pela largura de banda da rede primeiro.
Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar o crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos a seguir podem ajudar a ilustrar isso melhor.
Para um servidor com 8 vCores, alta disponibilidade desabilitada, 2 réplicas de leitura e 3 slots de replicação lógica, talvez você queira configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos (3) + alguns adicionais para crescimento futuro, considerando vCores disponíveis (1) = 6.
Para um servidor com 16 vCores, alta disponibilidade habilitada, 4 réplicas de leitura e 5 slots de replicação lógica, talvez você queira configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos (5) + alguns adicionais para crescimento futuro, considerando vCores disponíveis (2) = 13.
Se você ainda considera que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário funcionasse corretamente.
O valor padrão para o parâmetro do servidor max_wal_senders definido quando você provisiona a instância do servidor flexível do Banco de Dados do Azure para PostgreSQL nunca deve ser reduzido abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para poder lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:
A replicação lógica de um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
A única razão pela qual você precisa de um remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos.
Qualquer que seja o número de remetentes WAL que estejam sendo utilizados para replicação física e lógica, todos eles se tornam ativos de uma só vez, sempre que qualquer back-end grava algo no log de gravação antecipada. Quando isso acontece, todos os remetentes WAL atribuídos para fazer a replicação lógica são ativados para:
Decodificar todos os novos registros no WAL,
Filtrar os registros de log nos quais eles não estão interessados,
Replicar os dados relevantes para cada um deles.
Os remetentes WAL são semelhantes às conexões no sentido de que, se estiverem ociosos, não importa quantos existem. No entanto, se eles estiverem ativos, apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara para a CPU. Cada trabalhador precisa decodificar todo o WAL, mesmo que ele replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log de gravação antecipada. Para replicação física, isso não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e costumam ser limitados pela largura de banda da rede primeiro.
Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar o crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos a seguir podem ajudar a ilustrar isso melhor.
Para um servidor com 8 vCores, alta disponibilidade desabilitada, 2 réplicas de leitura e 3 slots de replicação lógica, talvez você queira configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos (3) + alguns adicionais para crescimento futuro, considerando vCores disponíveis (1) = 6.
Para um servidor com 16 vCores, alta disponibilidade habilitada, 4 réplicas de leitura e 5 slots de replicação lógica, talvez você queira configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos (5) + alguns adicionais para crescimento futuro, considerando vCores disponíveis (2) = 13.
Se você ainda considera que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário funcionasse corretamente.