[SERVER-19892] Cursor idle time should be calculated based on time that results were returned, instead of time that request was made Created: 12/Aug/15  Updated: 26/Apr/18  Resolved: 03/May/17

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

Type: Improvement Priority: Major - P3
Reporter: J Rassi Assignee: Charlie Swanson
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates SERVER-28327 ClientCursorMonitor can timeout curso... Closed
is duplicated by SERVER-28410 ClientCursor timeout period should no... Closed
Related
related to SERVER-28327 ClientCursorMonitor can timeout curso... Closed
Backwards Compatibility: Minor Change
Participants:

 Description   

The server calculates the "idle time" for a cursor based on how long has passed since the last request was received on the cursor. Instead, the server should calculate idle time for cursors based on how long has been since results were last returned.

For example, suppose that a cursor is created on a server with a 1-minute idle cursor timeout. If it takes 45 seconds to generate a batch of results for this cursor, then the current implementation will time out the cursor only 15 seconds after these results are received. Instead, the cursor should be timed out 1 minute after results are received.

The scope of the work for this ticket includes updating the mongod and mongos cursor management code to 1) not time out pinned cursors, and 2) updating the "last active" time on the cursor when it is returned to the manager, instead of when it is checked out from the manager.



 Comments   
Comment by J Rassi [ 13/Aug/15 ]

Yes.

Comment by Andy Schwerin [ 13/Aug/15 ]

Does this affect both mongos and mongod?

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