-
Type: Improvement
-
Resolution: Works as Designed
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
The current code is not efficient for both us and users. For the users, a blocked transactional read will likely eventually fail anyway because the migration will more likely to succeed than abort. Moreover, if the user repeats the read a bit later it may actually succeed because its cluster time will move forward.
For us this is not efficient because we can block too many reads and face thundering herd when the migration is over. We can actually try to process what we can in the meantime.
The solution is to fail the read after some fixed timeout (like ~1 second) with some error code that is not automatically retried and will trigger re-doing the transaction. 1 second should be enough to have sufficient backoff for us to not overload the server with retries, and short enough to not make users to complain.
- is related to
-
SERVER-54661 Snapshotting during tenant migration block will fail all pending transactional reads
- Closed