[SERVER-44128] Wrap dbHash in writeConflictRetry loop Created: 21/Oct/19  Updated: 24/Oct/19  Resolved: 24/Oct/19

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

Type: Task Priority: Major - P3
Reporter: Lingzhi Deng Assignee: Louis Williams
Resolution: Won't Do Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-43060 CheckReplDBHashInBackground should re... Closed
Sprint: Execution Team 2019-11-04
Participants:

 Description   

dbHash can throw a WriteConflict error for the same reason described in SERVER-43066 at _getNextImpl as part of _hashCollection. And dbHash also uses PlanExecutor::NO_YIELD, which makes it more likely.

This is a problem for the dbHash background hook. And I think it is reasonable to fix this at the command-level to make it more resilient to errors.



 Comments   
Comment by Louis Williams [ 24/Oct/19 ]

SERVER-43060 is already open to address the same problem. We don't want to wrap the entire dbHash command in a writeConflictRetry loop, considering the WriteConflicts are generated due to high cache pressure, and the application should be responsible for retrying.

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