Azure Analysis Services—Improved query replica synchronisation now available
Published date: 16 April, 2020
Improved query replica synchronisation in Azure Analysis Services is now generally available. Analysis Services features improved query-replica synchronisation in scale-out environments with client queries distributed across one or more query replicas, reducing response times for high concurrency workloads.
The following screenshot shows the new ReplicaSyncMode setting. The default (1) stands for full replica database rehydration. In contrast, a value of (2) enables optimised query replica synchronisation in parallel.
By default, query replicas are re-hydrated in full (not incrementally), which happens in stages. Assuming there are at least three replicas, two replicas are detached and attached at a time to ensure that at least one replica is available online for queries during the synchronisation cycle. Clients may need to reconnect to one of the online replicas.
With optimised query replica synchronisation, on the other hand, all replicas are synchronised in parallel, reducing sync time and increasing the likelihood that data is consistent during synchronisation. The databases are kept online on all participating servers. Clients do not need to reconnect. Moreover, the in-memory cache is updated incrementally, which can be faster than rehydrating a model.
Note, however, that optimised synchronisation might consume additional memory on the server, depending on how much of the data has changed and how much of the cache needs to be updated. The operation might need twice as much memory as the full rehydration, because old and new segments are kept in memory simultaneously. If a replica runs out of memory during a sync, Analysis Service will fall back to default mode (attach/detach two at a time).
For more information about query scale out, read Azure Analysis Services scale-out in the documentation.