Replicação e desempenho

A ativação da replicação afeta o desempenho de uma instância do Bigtable. O efeito é positivo para algumas métricas e negativo para outras. Deve compreender os potenciais impactos no desempenho antes de decidir ativar a replicação.

Débito de leitura

A replicação pode melhorar o débito de leitura, especialmente quando usa o encaminhamento multicluster. Além disso, a replicação pode reduzir a latência de leitura, colocando os dados do Bigtable geograficamente mais perto dos utilizadores da sua aplicação.

Taxa de gravação

Embora a replicação possa melhorar a disponibilidade e o desempenho de leitura, não aumenta a taxa de transferência de gravação. Uma escrita num cluster tem de ser replicada para todos os outros clusters na instância. Como resultado, cada cluster está a gastar recursos de CPU para obter alterações dos outros clusters. O débito de escrita pode, na verdade, diminuir porque a replicação requer que cada cluster faça trabalho adicional.

Por exemplo, suponha que tem uma instância de cluster único e que o cluster tem 3 nós:

Instância de cluster único com 3 nós

Se adicionar nós ao cluster, o efeito no débito de gravação é diferente do que se ativar a replicação adicionando um segundo cluster de 3 nós à instância.

Adicionar nós ao cluster original: pode adicionar 3 nós ao cluster para um total de 6 nós. A taxa de transferência de gravação da instância duplica, mas os dados da instância estão disponíveis apenas numa zona:

Instância de cluster único com 6 nós

Com replicação: em alternativa, pode adicionar um segundo cluster com 3 nós, para um total de 6 nós. Agora, a instância escreve cada parte dos dados duas vezes: quando a escrita é recebida pela primeira vez e novamente quando é replicada para o outro cluster. A taxa de débito de escrita não aumenta e pode diminuir, mas beneficia da disponibilidade dos seus dados em duas zonas diferentes:

Instância de dois clusters com 6 nós

Nestes exemplos, a instância de cluster único pode processar o dobro do débito de gravação que a instância replicada pode processar, mesmo que os clusters de cada instância tenham um total de 6 nós.

Latência de replicação

Quando usa o encaminhamento de vários clusters, a replicação do Bigtable é eventualmente consistente. Regra geral, a replicação de dados demora mais tempo quanto maior for a distância. Normalmente, os clusters replicados em regiões diferentes têm uma latência de replicação mais elevada do que os clusters replicados na mesma região.

Utilização de nós

Conforme explicado em Débito de escrita, quando uma instância usa a replicação, cada cluster na instância tem de processar o trabalho de replicação, além da carga que recebe das aplicações. Por este motivo, um cluster numa instância com vários clusters precisa frequentemente de mais nós do que um cluster numa instância com um único cluster com tráfego semelhante.

Perfis de apps e encaminhamento de tráfego

Consoante o seu exemplo de utilização, vai usar um ou mais perfis de apps para encaminhar o seu tráfego do Bigtable. Cada perfil de app usa o encaminhamento de vários clusters ou de cluster único. A escolha do encaminhamento pode afetar o desempenho.

O encaminhamento de vários clusters pode minimizar a latência. Um perfil de app com encaminhamento multicluster encaminha automaticamente os pedidos para o cluster mais próximo numa instância do ponto de vista da aplicação, e as gravações são replicadas para os outros clusters na instância. Esta escolha automática da distância mais curta resulta na latência mais baixa possível.

Um perfil de app que usa o encaminhamento de cluster único pode ser ideal para determinados casos de utilização, como separar cargas de trabalho ou ter semântica de leitura após gravação num único cluster, mas não reduz a latência da mesma forma que o encaminhamento de vários clusters.

Para saber como configurar os perfis de apps para estes e outros exemplos de utilização, consulte os exemplos de definições de replicação.

Soltar intervalos de linhas

Se possível, evite eliminar um intervalo de linhas numa instância que use a replicação, porque a operação é lenta e a utilização da CPU aumenta durante a operação.

O que se segue?