Passer au contenu principal
EN PRÉVERSION

La synchronisation des réplicas de requête dans Azure Analysis Services est en préversion

Date de publication : 18 janvier, 2020

Un nouveau paramètre Azure Analysis Services (en préversion) va améliorer les performances et la cohérence de la synchronisation de réplicas de requête dans des environnements de scale-out. Query scale-out permet la distribution des requêtes clientes sur un ou plusieurs réplicas, ce qui réduit les temps de réponse pour les charges de travail hautement concurrentielles. La synchronisation des réplicas de requête réplique les données dans les bases de données de réplicas de requête.

Par défaut, les réplicas de requête sont réalimentés entièrement (et non de façon incrémentielle), ce qui se produit par étapes. Ils sont détachés et attachés deux par deux (en supposant qu’il existe au moins trois réplicas) afin de garantir qu’au moins un réplica reste en ligne pour répondre aux requêtes. Les clients devront peut-être se reconnecter à un des réplicas en ligne pendant ce processus.

Avec le nouveau paramètre ReplicaSyncMode, il est désormais possible de spécifier la synchronisation des réplicas de requête en parallèle. La synchronisation des réplicas de requête optimisée offre également les avantages suivants :

  • Tous les réplicas sont synchronisés en parallèle, ce qui réduit considérablement le temps de synchronisation.
  • Comme tous les réplicas sont synchronisés en parallèle, les données sur les réplicas sont plus cohérentes pendant le processus de synchronisation.
  • Comme les bases de données restent en ligne sur tous les réplicas pendant tout le processus de synchronisation, les clients ne doivent pas se reconnecter.
  • Le cache en mémoire est mis à jour de façon incrémentielle avec les données modifiées uniquement, ce qui peut être bien plus rapide que la réalimentation complète du modèle.

Comme exemple d’avantage lié à la synchronisation optimisée, l’équipe responsable des produits a réalisé des tests sur une base de données d’environ 84 Go sur un S8v2 avec trois réplicas. La synchronisation a pris environ 2 minutes pour une synchronisation incrémentielle contre 5 minutes pour une synchronisation non incrémentielle. Pour la même base de données sur un S8v2 avec 7 réplicas, alors que la durée pour une synchronisation incrémentielle restait inchangée, la durée d’une synchronisation non incrémentielle a bondi à 11 minutes.

Les valeurs possibles pour eplicaSyncMode sont les suivantes :

  • 1 (par défaut) : réalimentation complète de la base de données des réplicas par étapes.
  • 2 : synchronisation optimisée en parallèle.

FastReplicaSync (002)

Si vous définissez le paramètre ReplicaSyncMode=2, une mémoire supplémentaire peut être utilisée par les réplicas de requête, selon la portion du cache qui doit être mise à jour. Pour que la base de données reste en ligne et accessible par les requêtes, l’opération peut nécessiter de doubler la mémoire sur le réplica, en fonction de la quantité de données modifiée. Ceci est dû au fait que les anciens segments et les nouveaux segments sont conservés en mémoire simultanément. Les nœuds des réplicas présentent les mêmes allocations de mémoire que le nœud principal. Dans la mesure où il y a généralement de la mémoire supplémentaire sur le nœud principal pour les opérations d’actualisation, il est peu probable que les réplicas manquent de mémoire. En outre, un scénario courant est que la base de données est mise à jour de façon incrémentielle sur le nœud principal. Il n’est donc pas nécessaire de doubler la mémoire. Si l’opération de synchronisation rencontre un message d’erreur « mémoire insuffisante », elle réessaie à l’aide de la technique par défaut (attacher/détacher deux par deux).

Apprenez-en davantage sur le scale-out Azure Analysis Services.

  • Azure Analysis Services
  • Features
  • Management
  • Services

Produits apparentés