Saltar al contenido principal
EN VERSIÓN PRELIMINAR

Sincronización de réplicas de consultas mejorada en versión preliminar en Azure Analysis Services

Fecha de publicación: 18 enero, 2020

Una nueva opción de Azure Analysis Services (en versión preliminar) mejora el rendimiento y la coherencia de la sincronización de réplicas de consultas en entornos de escalabilidad horizontal. La escalabilidad horizontal de las consultas distribuye las consultas de cliente en una o varias réplicas, lo que reduce los tiempos de respuesta para las cargas de trabajo de alta simultaneidad. La sincronización de réplicas de consultas replica los datos en bases de datos de réplicas de consultas.

De forma predeterminada, las réplicas de consultas se vuelven a hidratar en su totalidad (no gradualmente), por fases. Se desasocian y asocian de dos en dos (suponiendo que haya tres réplicas o más) para asegurar que al menos una réplica se mantenga en línea para las consultas en un momento dado. Es posible que los clientes tengan que volver a conectarse a una de las réplicas en línea mientras se está llevando a cabo este proceso.

Con la nueva opción de configuración ReplicaSyncMode, ahora se puede especificar la sincronización de réplicas de consultas en paralelo. La sincronización de réplicas de consultas optimizada también proporciona estas ventajas:

  • Todas las réplicas se sincronizan en paralelo, lo que reduce considerablemente el tiempo de sincronización.
  • Puesto que se sincronizan todas las réplicas en paralelo, es mucho más probable que los datos sean coherentes entre las réplicas durante el proceso de sincronización.
  • Dado que las bases de datos se mantienen en línea en todas las réplicas a lo largo del proceso de sincronización, los usuarios no necesitan volver a conectarse.
  • La caché en memoria se actualiza de forma incremental tan solo con los datos modificados, lo que puede ser mucho más rápido que rehidratar completamente el modelo.

Como ejemplo de la ventaja que supone la sincronización optimizada, el equipo del producto llevó a cabo pruebas en una base de datos de unos 84 GB en una instancia S8v2 con 3 réplicas. El proceso tardó aproximadamente 2 minutos para una sincronización incremental frente a los 5 minutos que tardó una sincronización no incremental. Para la misma base de datos en una instancia S8v2 con 7 réplicas, el tiempo de una sincronización incremental no cambió, mientras que el tiempo de una sincronización no incremental aumentó hasta los 11 minutos.

Los valores posibles para ReplicaSyncMode son:

  • 1 (predeterminado): rehidratación de toda la base de datos de réplicas por fases.
  • 2: sincronización optimizada en paralelo.

FastReplicaSync (002)

Si establece ReplicaSyncMode=2, es posible que las réplicas de consultas consuman más memoria, en función de la cantidad de caché que se deba actualizar. Con el fin de mantener la base de datos en línea y disponible para las consultas, la operación puede requerir hasta el doble de memoria en la réplica, en función de la cantidad de datos que haya cambiado. Esto se debe a que tanto los segmentos antiguos como los nuevos se mantienen en memoria al mismo tiempo. Los nodos de réplica tienen la misma asignación de memoria que el nodo principal. Dado que normalmente hay memoria adicional en el nodo principal para las operaciones de actualización, no es probable que las réplicas se queden sin memoria. Además, un escenario común es que la base de datos se actualiza gradualmente en el nodo principal, por lo que no es necesario duplicar la memoria. Si la operación de sincronización obtiene un error de “memoria insuficiente”, volverá a intentarlo con la técnica predeterminada (asociar/desasociar dos a la vez).

Más información acerca de la escalabilidad horizontal de las consultas en Azure Analysis Services.

  • Azure Analysis Services
  • Features
  • Management
  • Services

Productos relacionados