Azure / Azure/elastic-db-tools

MSQ/Shard Validation => DDR needs to deliver option for OpenConnection(shard) that ensures all ranges are online and mappings are identical to time shard was requested

Open
#57 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
147
Forks
108
PR merge metrics
No merged PRs in 30d

Description

Currently SMM delivers a guarantee to users of OpenConnection(key) that the correct connection appropriate for that key will be delivered, and risk of incorrect results due to data movement will be eliminated through kill logic.

Customers using OpenConnection(shard) in their application (including changing MSQ to use this method) need similar guarantees: If they have searched to find the list of shards covering a range or set of key values appropriate for a query, or by selection of a set of shards via location, they wish to have the option of (a) ensuring that a shard is not undergoing data movement operations (split/merge/tenant move) that may corrupt results and (b) making sure that the key ranges covered when the connection is opened match the key ranges covered when the range-covering shard search was performed.

*\* If Validation is requested *\* -- This requires the connection to ensure that no ranges are offline (or being lazily deleted) when opened, and that the shard "version" at connection time matches the version of the shard that the app passed to the OpenConnection method. An error should be thrown if these conditions are violated -- unless no validation was requested,

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.