Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-30804

LogicalSessionCollection must tolerate clock drift

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major - P3 Major - P3
    • None
    • None
    • Internal Code
    • None
    • Fully Compatible
    • ALL
    • Platforms 2017-09-11, Platforms 2017-10-02

    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)

      Attachments

        Activity

          People

            mira.carey@mongodb.com Mira Carey
            mira.carey@mongodb.com Mira Carey
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: