[SERVER-40103] Improve retry behavior of non-txn writes conflicting with txns Created: 13/Mar/19 Updated: 22/Aug/23 Resolved: 03/May/19 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Concurrency, Storage |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Question | Priority: | Major - P3 |
| Reporter: | Geert Bosch | Assignee: | Geert Bosch |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||
| Sprint: | Storage NYC 2019-03-25, Storage NYC 2019-04-08, Storage NYC 2019-05-06 | ||||||||||||
| Participants: | |||||||||||||
| Description |
|
Currently client applications that use transactions may have conflicting non-transactional writes that keep retrying even when no transactions have committed, potentially leading to starvation of the in-progress transaction. For prepare conflicts, we at least block until a prepared transaction has been committed, ensuring forward progress, but for regular conflicts with in-progress transactions we don't. This ticket is to improve this behavior by having threads with write conflicts wait until they can get a newer snapshot. |
| Comments |
| Comment by Geert Bosch [ 03/May/19 ] |
|
We're closing this ticket until we have evidence that this actually significantly affects performance: we'll gradually back off to retrying every 100ms and that may be OK for now. |