Currently, any write encountering a write-too-old condition returns a WriteTooOldError from the server. Returning an error implies that no intents are left behind for that batch. We've seen this fact cause starvation for some txns in a user workload.
The situation used to be somewhat different before #38668 - we used to defer WriteTooOldErrors in the case of blind writes (but not on CPuts).
I'm working to restore the behavior as it was prior to #38668: leave intents behind in the case of blind writes. But at the same time I'm keeping the benefits of #38668 - eager refreshes and auto-retries.
Currently, any write encountering a write-too-old condition returns a
WriteTooOldErrorfrom the server. Returning an error implies that no intents are left behind for that batch. We've seen this fact cause starvation for some txns in a user workload.The situation used to be somewhat different before #38668 - we used to defer
WriteTooOldErrorsin the case of blind writes (but not onCPuts).I'm working to restore the behavior as it was prior to #38668: leave intents behind in the case of blind writes. But at the same time I'm keeping the benefits of #38668 - eager refreshes and auto-retries.