预览中

Azure Analysis Services 中改进的查询副本同步正在推出预览版

发布日期:一月 18, 2020

新的 Azure Analysis Services 设置(预览版)可提高横向扩展环境中查询副本同步的性能和一致性。查询横向扩展跨一个或多个查询副本分发客户端查询,可减少高并发工作负载的响应时间。查询副本同步会将数据复制到查询副本数据库。

默认情况下,查询副本会完全(而不是以增量方式)解冻,该操作分阶段进行。这些副本是分离的,一次附加两个(假定至少有 3 个副本),以便确保在任何给定时间,都至少有一个副本保持联机状态供查询使用。在此过程期间,客户端可能需要重新连接到其中一个联机副本。

借助新的 ReplicaSyncMode 设置,现可并行指定查询副本同步。优化后的查询副本同步还具有以下优势:

  • 所有副本都并行同步,可大幅减少同步时间。
  • 所有副本都并行同步,因此不同副本中的数据更可能在同步过程中保持一致。
  • 所有副本上的数据库在整个同步过程中都保持联机状态,因此客户端无需重新连接。
  • 仅使用更改的数据增量更新内存中缓存,速度比完全解除冻结模型更快。

举一个例子来说明经过优化的同步效果:产品团队在具有 3 个副本的 S8v2 上对某个大小约为 84 GB 的数据库进行测试。增量型同步花费约 2 分钟,非增量型同步约 5 分钟。如果换成具有 7 个副本的 S8v2 上的同一数据库,增量型同步的时间保持不变,而非增量型同步的时间跃升至 11 分钟。

ReplicaSyncMode 的可能值包括

  • 1(默认值):分阶段解冻完整副本数据库。
  • 2:并行优化同步。

FastReplicaSync (002)

如果设置了 ReplicaSyncMode=2,则查询副本可能会占用额外的内存,具体取决于需要更新的缓存量。为使数据库保持联机并可供查询使用,此操作可要求对副本增加内存(最多两倍),具体取决于更改的数据量。这是因为旧段和新段同时保存在内存中。副本节点和主节点的内存分配相同。由于主节点通常有额外的内存用于刷新操作,因此副本不太可能会耗尽内存。此外,一种常见的情况是数据库在主节点上以增量方式更新,因此无需将内存翻倍。如果同步操作遇到“内存不足”错误消息,它将重新尝试使用默认技术(即一次附加/分离两个副本)。

详细了解 Azure Analysis Services 中的查询横向扩展

  • Azure Analysis Services
  • Features
  • Management
  • Services