2017-02-15 4 views
0

Просто ищет более четкое представление о том, что происходит под капотом, когда RangeShardMappings отмечены в автономном режиме.Azure Elastic Scale: MarkMappingOffline не препятствует поиску осколков

Я понимаю, что привязки должны быть установлены в автономном режиме для обновления и удаления осколков и отображений.

Я хотел был бы сохранить сопоставления, но предотвращать использование Azure Map Manager с использованием определенных сопоставлений в любое конкретное время, я надеялся, что просто пометить их как офлайн позволит мне это сделать, но, похоже, это не влияет на результаты поиска.

В соответствии с MS Документов (https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-scale-shard-map-management)

Некоторых операций по шарду отображений разрешаются только, когда отображение находится в «автономном» состоянии, в том числе и UpdateMapping DeleteMapping. Когда сопоставление находится в автономном режиме, зависящий от данных запрос на основе ключа , включенного в это сопоставление, вернет ошибку. Кроме того, когда диапазон сначала снимается в автономном режиме, все соединения с поврежденным осколком автоматически уничтожаются для предотвращения несогласованных или неполных результатов для запросов, направленных против изменяемых диапазонов.

Однако это не то поведение, которое я испытываю. Офлайновые карты по-прежнему возвращают наборы результатов. Эти сопоставления хранятся в кеше?

ответ

1

Основной целью маркировки отображения в автономном режиме является предотвращение соединений с использованием OpenConnectionForKey. Отображение все еще видно, ведь если отображение было невидимым, тогда у вас не было бы способа пометить его позже в Интернете.

Карты офлайн по-прежнему возвращают наборы результатов.

А теперь я понимаю ваш вопрос. Менеджер карты Shard не знает или не контролирует базовые данные в базе данных. Это означает, что для карты осколков можно взять на себя ответственность за то, чтобы ваш запрос where содержал фильтр, который соответствует запрограммированному сопоставлению. Вы также можете использовать row-level security, чтобы гарантировать, что ваши запросы возвращают только правильные наборы результатов.

+0

Спасибо, Джаред, я не использовал OpenConnectionForKey, это имеет смысл сейчас. – redstubble