Как переместить осколки в другой осколок, используя Elastic Scale в коде
При чтении документации Elastic Scale, как обычно, при перемещении осколков можно использовать сервис Split / Merve / Move. Теперь у меня вопрос: как я могу запустить перемещение осколка в коде? Могу ли я вызвать службу "API", как показано в Microsoft.Azure.SqlDatabase.ElasticScale.Service.SplitMerge -> SplitMerge.psm1. И насколько хорошо это масштабируется, например, когда несколько Shardlets перемещаются параллельно, независимо, или это перемещается в очереди? Или есть какой-то другой путь, который я пропустил?
1 ответ
Спасибо за ваш вопрос. На данный момент подход в сценарии PowerShell - лучший вариант, который у вас есть. Однако мы не очень довольны этим и хотели бы заменить его на соответствующие API. Я свяжусь с вами, чтобы узнать больше о том, как будет выглядеть ваша среда автоматизации, чтобы понять, какой API вам подходит.
Кстати: различные запросы разделения / слияния (те, которые отображаются с разными OperationIds в таблице RequestStatus) обрабатываются последовательно прямо сейчас. Вы можете играть с параметром BatchSize по вашим запросам. Разработанный таким образом, чтобы можно было контролировать, сколько шардлетов помечается в автономном режиме на карте шардов за раз, большие партии также могут повысить производительность.
Хотя это может звучать как коммерческое предложение: наиболее эффективный способ повышения производительности операций разделения / слияния в наших экспериментах заключался в использовании более мощных уровней обслуживания в БД Azure для сегментов. Вы можете динамически изменять уровень обслуживания для исходного и целевого сегментов, когда вы знаете, что нужно выполнить их разделение или объединение, а затем снова набрать его снова после завершения операции.
Надеюсь это поможет.
Спасибо Торстен