Avançar para o conteúdo principal
EM PRÉ-VISUALIZAÇÃO

A sincronização de réplicas de consulta melhorada no Azure Analysis Services está em pré-visualização

Data de publicação: 18 janeiro, 2020

Uma nova definição (em pré-visualização) do Azure Analysis Services veio melhorar o desempenho e a consistência da sincronização de réplicas de consulta nos ambientes de escalamento horizontal. O escalamento horizontal de consultas distribui as consultas de cliente por uma ou mais réplicas de consulta, o que reduz os tempos de resposta das cargas de trabalho de elevada simultaneidade. A sincronização de réplicas de consulta replica dados para bases de dados de réplica de consulta.

Por predefinição, as réplicas de consulta são reativadas de forma integral (não de forma incremental), o que ocorre por fases. Estas são desligadas e ligadas duas de cada vez (partindo do princípio de que existe um mínimo de três réplicas) para garantir que, pelo menos, uma réplica é mantida online para se fazer consultas a qualquer altura. É possível que os clientes tenham de restabelecer a ligação a uma das réplicas online enquanto este processo está em curso.

Com a nova definição ReplicaSyncMode, passa a ser possível especificar a sincronização de réplicas de consulta em paralelo. A sincronização otimizada de réplicas de consulta também lhe confere os seguintes benefícios:

  • Todas as réplicas são sincronizadas em paralelo, o que reduz significativamente o tempo de sincronização.
  • Como todas as réplicas são sincronizadas em paralelo, é muito mais provável que os dados das réplicas mantenham a consistência durante o processo de sincronização.
  • Uma vez que as bases de dados são mantidas online em todas as réplicas durante o processo de sincronização, os clientes não têm de restabelecer a ligação.
  • A cache dentro da memória é atualizada em incrementos apenas com os dados alterados, o que pode ser muito mais rápido do que reativar completamente o modelo.

Como exemplo do benefício de sincronização otimizada, a equipa do produto realizou testes numa base de dados com cerca de 84 GB num S8v2 com 3 réplicas. Uma sincronização incremental demorou cerca de 2 minutos e uma sincronização não incremental demorou 5 minutos. Para a mesma base de dados num S8v2 com 7 réplicas, enquanto o tempo de uma sincronização incremental permaneceu inalterado, o tempo de uma sincronização não incremental saltou para 11 minutos.

Os valores possíveis para ReplicaSyncMode são:

  • 1 (predefinição): reativação total da base de dados de réplica por fases.
  • 2: sincronização otimizada em paralelo.

FastReplicaSync (002)

Se definir ReplicaSyncMode=2, as réplicas de consulta poderão consumir memória adicional, dependendo da quantidade de cache que precise de ser atualizada. Para manter a base de dados online e disponível para as consultas, a operação pode requerer até o dobro da memória existente na réplica, consoante a quantidade de dados que tenha sido alterada. Isto acontece porque tanto os velhos como os novos segmentos são mantidos dentro da memória em simultâneo. Os nós de réplica têm a mesma alocação de memória do nó primário. Como, normalmente, o nó primário tem memória extra para operações de atualização, é improvável que as réplicas esgotem a memória. Além disso, um cenário comum é o de uma base de dados que é atualizada incrementalmente no nó primário, o que faz com que deixe de ser necessário utilizar o dobro da memória. Se a operação de sincronização encontrar a mensagem de erro "memória insuficiente", tentará utilizar novamente a técnica predefinida (ligar/desligar dois de cada vez).

Saiba mais sobre o escalamento horizontal de consultas no Azure Analysis Services.

  • Azure Analysis Services
  • Features
  • Management
  • Services

Produtos Relacionados