0

阅读 Elastic Sc​​ale 的文档时,在移动 shardlet 时通常会使用 Split/Merve/Move 服务。我现在的问题是,如何在代码中触发 shardlet 的移动?我可以触发服务“api”,如Microsoft.Azure.SqlDatabase.ElasticScale.Service.SplitMerge -> SplitMerge.psm1中所示。这种扩展性如何,例如,当多个 Shardlet 并行移动、独立移动还是排队移动时?或者还有其他我错过的方式吗?

4

1 回答 1

2

谢谢你的问题。目前,PowerShell 脚本中的方法是您拥有的最佳选择。但是,我们对此并不特别满意,并希望将其替换为适当的 API。我将与您联系,以了解更多关于您的自动化环境如何了解适合您的 API 的信息。

顺便说一句:现在按顺序处理不同的拆分/合并请求(在 RequestStatus 表中以不同的 OperationId 显示的请求)。您可以在请求中使用 BatchSize 参数。虽然旨在提供一种方法来控制一次在 shard map 中将多少 shardlet 标记为脱机,但更大的批量大小也可以为您提供更好的性能。

尽管这听起来像是一种推销:在我们的实验中,提高拆分/合并操作性能的最有效方法是在 Azure DB 中为分片使用更强大的服务层。当您知道必须对它们执行拆分或合并时,您可以在源和目标分片上动态更改服务层 - 然后在操作完成后再次将其拨回。

希望这可以帮助。

谢谢,托斯滕

于 2015-01-23T22:01:25.400 回答