Replicação e desempenho
Ativar a replicação afeta o desempenho de uma instância do Bigtable. O efeito é positivo para algumas métricas e negativo para outras. É preciso entender os possíveis impactos no desempenho antes de decidir ativar a replicação.
Capacidade de leitura
A replicação pode melhorar a capacidade de leitura, especialmente ao usar o roteamento de vários clusters. Além disso, a replicação pode reduzir a latência de leitura, colocando os dados do Bigtable mais próximos geograficamente aos usuários do aplicativo.
Capacidade de gravação
Embora a replicação possa melhorar a disponibilidade e o desempenho de leitura, ela não aumenta a capacidade da gravação. Uma gravação em um cluster precisa ser replicada para todos os outros clusters na instância. Como resultado, cada cluster gasta recursos da CPU para receber alterações dos outros clusters. Na verdade, a capacidade da gravação pode diminuir porque a replicação requer que cada cluster faça um trabalho adicional.
Imagine, por exemplo, que você tenha uma instância de cluster único de três nós:
Se você adicionar nós ao cluster, o efeito na capacidade de gravação será diferente do que se ativar a replicação adicionando um segundo cluster de três nós à instância.
Adicionar nós ao cluster original: é possível adicionar três nós ao cluster para ter um total de seis nós. A capacidade de gravação da instância duplica, mas os dados dela ficam disponíveis em apenas uma zona:
Com replicação: outra opção é adicionar um segundo cluster com três nós, totalizando seis nós. A instância agora grava cada parte dos dados duas vezes: quando a gravação é recebida pela primeira vez e novamente quando é replicada para o outro cluster. A capacidade de gravação não aumenta e pode até diminuir, mas você contará com a vantagem de ter os dados disponíveis em duas zonas diferentes:
Nesses exemplos, a instância de cluster único pode processar o dobro da capacidade de gravação que a instância replicada, mesmo que os clusters de cada uma tenham um total de seis nós.
Latência de replicação
Ao usar o roteamento de vários clusters, a replicação do Bigtable tem consistência posterior. Como regra geral, leva mais tempo para replicar dados em uma distância maior. Os clusters replicados em diferentes regiões geralmente terão uma latência de replicação maior do que os replicados na mesma região.
Uso de nós
Conforme explicado em Capacidade de gravação, quando uma instância usa replicação, cada cluster na instância precisa processar o trabalho de replicação, além da carga recebida de aplicativos. Por esse motivo, um cluster em uma instância de vários clusters geralmente precisa de mais nós do que um cluster em uma instância de cluster único com tráfego semelhante.
Perfis de app e roteamento de tráfego
Dependendo do caso de uso, um ou mais perfis de app serão usados para direcionar o tráfego do Bigtable. Cada perfil usa roteamento de vários clusters ou de cluster único. A escolha do roteamento pode afetar o desempenho.
O roteamento de vários clusters pode minimizar a latência. Um perfil de app com roteamento de vários clusters encaminha automaticamente as solicitações para o cluster mais próximo em uma instância a partir da perspectiva do aplicativo, e as gravações são replicadas para os outros clusters na instância. Essa escolha automática da menor distância resulta na menor latência possível.
Um perfil de app que usa roteamento de cluster único pode ser ideal para determinados casos de uso, como separar cargas de trabalho ou ter semântica de leitura após gravação em um único cluster, mas não reduzirá a latência como no roteamento de vários clusters.
Para entender como configurar os perfis de app para esses e outros casos de uso, consulte Exemplos de configurações de replicação.
Como descartar intervalos de linhas
Se possível, evite descartar um intervalo de linhas em uma instância que use replicação, porque a operação está lenta e o uso da CPU aumenta durante a operação.
A seguir
- Leia sobre Failovers.
- Conheça as opções de trajeto.