[SERVER-77988] Split wiredTigerPrepareConflictRetry into fast and slow paths Created: 12/Jun/23 Updated: 29/Oct/23 Resolved: 22/Jun/23 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 7.1.0-rc0 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Mark Benvenuto | Assignee: | Mark Benvenuto |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||
| Backwards Compatibility: | Fully Compatible | ||||
| Sprint: | Security 2023-06-26 | ||||
| Participants: | |||||
| Linked BF Score: | 4 | ||||
| Description |
|
wiredTigerPrepareConflictRetry is a 87 line function that is used twice in WiredTigerRecordStoreCursorBase::next. This function consists of a fast and slow path. The fast path is called when there are no errors and the function exits early. The slow path waits for other transactions to be committed. This function can be split into a part that can be inlined and a separate function that calls a lambda in the slow case. This will save code duplication and shrink function size. |
| Comments |
| Comment by Githook User [ 22/Jun/23 ] |
|
Author: {'name': 'Mark Benvenuto', 'email': 'mark.benvenuto@mongodb.com', 'username': 'markbenvenuto'}Message: |