[SERVER-30804] LogicalSessionCollection must tolerate clock drift Created: 23/Aug/17  Updated: 29/Jan/18  Resolved: 21/Sep/17

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

Type: Bug Priority: Major - P3
Reporter: Mira Carey Assignee: Mira Carey
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to SERVER-28336 Implement endSessions command Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Platforms 2017-09-11, Platforms 2017-10-02
Participants:

 Description   

The logical session collection can't rely on lastUse as the ttl field for keep alive (because different nodes can have different clocks and you don't want a node far out of sync to kill running cursors).

Instead, use in the cache should be use based (so that only records used since last refresh are pushed), and the update should set $currentDate on a new field which we actually use for ttl expiration. This will restrict clock skew issues to chunk migration only (and in a way that theoretically could be handled sensibly in sharding)

On the other side, cache's pulling session entries should only care if a record exists upstream (not if it's expired). If it does exist, they should update their last use (but not push it unless they see a local activation)


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