[SERVER-69101] Remove WTPrepareConflictForReads fail point Created: 23/Aug/22  Updated: 29/Oct/23  Resolved: 28/Feb/23

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 7.0.0-rc0

Type: Improvement Priority: Major - P3
Reporter: Ian Boros Assignee: Yuhong Zhang
Resolution: Fixed Votes: 0
Labels: storex-perf
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-69105 Achieve column index performance acce... Closed
Assigned Teams:
Storage Execution
Backwards Compatibility: Fully Compatible
Sprint: Execution Team 2023-02-20, Execution Team 2023-03-06
Participants:

 Description   

The WTPrepareConflictForReads is checked within wiredTigerPrepareConflictRetry which is an especially hot path. Some storage intensive queries spend more than one percent of their time just checking this fail point.

Furthermore, the fail point is only used in one test which the storage exec team has agreed is of little value, and can be replaced with a unit test.

This task is to:
a) Remove WTPrepareConflictForReads and associated test.
b) Add a unit test for wiredTigerPrepareConflictRetry which provides a special callback that will simulate prepare conflicts.



 Comments   
Comment by Githook User [ 28/Feb/23 ]

Author:

{'name': 'Yuhong Zhang', 'email': 'yuhong.zhang@mongodb.com', 'username': 'YuhongZhang98'}

Message: SERVER-69101 Remove WTPrepareConflictForReads fail point
Branch: master
https://github.com/mongodb/mongo/commit/2309eaed5e2ab1a74edcdf1d202a0e4339689e1a

Comment by Ian Boros [ 23/Aug/22 ]

For future reference, the query I was using to measure this change was on the bestbuy dataset using a column index:

db.products.aggregate([{$match:{'type': 'asdf'}}, {$group:{_id:'$type', count: {$sum:1}}}]). 

Generated at Thu Feb 08 06:12:34 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.