[SERVER-37861] Add writeConflictRetry to wildcard index multikey metadata path extraction Created: 01/Nov/18  Updated: 29/Oct/23  Resolved: 29/Nov/18

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

Type: Improvement Priority: Minor - P4
Reporter: James Wahlin Assignee: Charlie Swanson
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to SERVER-71674 Yield handlers not handling WCE throw... Blocked
Backwards Compatibility: Fully Compatible
Sprint: Query 2018-11-19, Query 2018-12-03, Query 2018-12-17
Participants:

 Description   

Extraction of wildcard index multikey metadata keys is performed outside of a writeConflictRetry wrapper. Without this wrapper any WriteConflictException thrown by a SortedDataInterface::Cursor method will not be retried, resulting in operation failure. We should add writeConflictRetry to allow for retry when this data is being retrieved outside of a WriteUnitOfWork.



 Comments   
Comment by Githook User [ 29/Nov/18 ]

Author:

{'name': 'Charlie Swanson', 'email': 'charlie.swanson@mongodb.com', 'username': 'cswanson310'}

Message: SERVER-37861 Retry WriteConflicts during wildcard multikey scans
Branch: master
https://github.com/mongodb/mongo/commit/e54d65fa8e444dcfd5bba66f1f4c40203e5ebe16

Comment by David Storch [ 09/Nov/18 ]

geert.bosch the query engine has a whole bunch of WCE handling logic. This was introduced for 3.2 in SERVER-17062. Furthermore, the storage API for performing reads outside of a WriteUnitOfWork documents that it can throw WCE (see here, for example). Did the storage engine change something to make this no longer true? If so, there is a substantial opportunity for us to simplify the query layer's WCE retry logic.

Comment by Geert Bosch [ 08/Nov/18 ]

A WriteConflict exception can't be thrown for a read outside a WriteUnitOfWork, so this is not an issue. If the operation is inside a WriteUnitOfWork it must already have retry logic.

Comment by James Wahlin [ 01/Nov/18 ]

Description added.

Comment by Andy Schwerin [ 01/Nov/18 ]

More description, please.

Generated at Thu Feb 08 04:47:14 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.