[SERVER-79875] WiredTigerRecordStore::doUpdateRecord breaks RecordStore::updateRecord contract Created: 09/Aug/23 Updated: 06/Feb/24 |
|
| Status: | Open |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Yujin Kang Park | Assignee: | Backlog - Storage Execution Team |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | storex-ranked | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Assigned Teams: |
Storage Execution
|
||||||||
| Participants: | |||||||||
| Description |
|
The RecordStore provides two methods to update a record, full update (updateRecord) and incremental update (updateWithDamages). However, WiredTigerRecordStore::doUpdateRecord under some conditions, might try to do an incremental update. This breaks the expectations of RecordStore::updateRecord callers. I.e. updateStage has its own logic to decide whether to compute damages and do incremental updates or full updates. Maybe we should be push this logic outside WiredTigerRecordStore::doUpdateRecord, and call RecordStore::updateWithDamages as required.
|