Azure Elastic Sc​​ale:MarkMappingOffline不会阻止搜索分片

时间:2017-02-15 20:40:27

标签: asp.net azure-elastic-scale

当RangeShardMappings标记为离线时,只需要更清楚地了解引擎盖下发生的事情。

我理解映射需要设置为脱机以更新和删除分片和映射。

我想保留映射但是在任何特定时间使用特定映射阻止Azure Map Manager,我希望简单地将它们标记为脱机将允许我这样做,但它似乎对搜索结果没有影响。

根据MS Docs(https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-scale-shard-map-management

  

仅在映射时才允许对分片映射执行某些操作   处于“脱机”状态,包括UpdateMapping和DeleteMapping。   当映射脱机时,基于密钥的数据相关请求   包含在该映射中将返回错误。另外,当一个   范围首先脱机,所有连接到受影响的分片   被自动杀死以防止不一致或   针对范围被更改的查询的结果不完整。

然而,这不是我遇到的行为。离线地图仍然返回结果集。这些映射是否存储在缓存中?

1 个答案:

答案 0 :(得分:1)

离线标记映射的主要目的是阻止使用OpenConnectionForKey进行连接。映射仍然是可见的,毕竟如果映射是不可见的,那么你将无法在以后将其标记回在线。

  

离线地图仍在返回结果集。

啊,现在我理解你的问题了。分片地图管理器不了解或控制数据库中的基础数据。这意味着分片映射可以确保您的查询where子句包含与您请求的映射匹配的过滤器。您还可以使用row-level security确保查询仅返回正确的结果集。