Azure Analysis Services—Improved query replica synchronization now available
Published date: 16 April, 2020
Improved query replica synchronization in Azure Analysis Services is now generally available. Analysis Services features improved query-replica synchronization 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 optimized query replica synchronization 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 synchronization cycle. Clients may need to reconnect to one of the online replicas.
With optimized query replica synchronization, on the other hand, all replicas are synchronized in parallel, reducing sync time and increasing the likelihood that data is consistent during synchronization. The databases are kept online on all participating servers. Clients don't need to reconnect. Moreover, the in-memory cache is updated incrementally, which can be faster than rehydrating a model.
Note, however, that optimized synchronization 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.