LogicalSessionCollection must tolerate clock drift

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Duplicate
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Internal Code
    • None
    • Fully Compatible
    • ALL
    • Platforms 2017-09-11, Platforms 2017-10-02
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      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)

            Assignee:
            Mira Carey
            Reporter:
            Mira Carey
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: