[SERVER-64461] Replace WT_CACHE_FULL error with WT_ROLLBACK for durable engine Created: 14/Mar/22  Updated: 29/Oct/23  Resolved: 18/May/22

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

Type: New Feature Priority: Major - P3
Reporter: Sulabh Mahajan Assignee: Yujin Kang Park
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on WT-8767 Return rollback instead of cache full... Closed
Related
is related to SERVER-64498 Check for both cache-full and rollbac... Closed
Backwards Compatibility: Fully Compatible
Sprint: Execution Team 2022-05-30
Participants:

 Description   

There is only one place WiredTiger returns a WT_CACHE_FULL error for the durable storage engine. The error is returned when a session is configured to not wait for more than a certain duration, cache_max_wait_ms, if the application thread is pulled into eviction. Instead, the operation fails, and the application is forced to rollback. The error WiredTiger returns is WT_CACHE_FULL.

WT-8767 is changing that return to a WT_ROLLBACK error, with a rollback reason set that can be queried by WT_SESSION.get_rollback_reason(). This will make the behaviour consistent with other places in WiredTiger, where the application is asked to roll back for other reasons.

A server change will be needed wherever a WT_CACHE_FULL error is processed. Also, a new rollback reason will be added by WT-8767, which will need to be captured and processed by the execution layer.



 Comments   
Comment by Githook User [ 18/May/22 ]

Author:

{'name': 'Yu Jin Kang Park', 'email': 'yujin.kang@mongodb.com', 'username': 'ykangpark'}

Message: SERVER-64461: Replace WT_CACHE_FULL error with WT_ROLLBACK for durable engine
Branch: master
https://github.com/mongodb/mongo/commit/6d7e4ea84316181578b9e78981f4adc1b0e9838d

Comment by Sulabh Mahajan [ 14/Mar/22 ]

louis.williams, that sounds right to me. I was about to send you a note asking if that is how we want to proceed. I will create a ticket and tag you there.

Comment by Louis Williams [ 14/Mar/22 ]

sulabh.mahajan, I think we first need to commit a change in MongoDB so that you can merge WT-8767 without breaking any tests or changing behavior. I'm thinking we can change this line to check for either WT_ROLLBACK to WT_CACHE_FULL, then file a follow-up to remove the check for WT_CACHE_FULL. Does that sound right to you?

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