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

A RecoveryUnit::ReadSource of "no timestamp" should be distinguishable from the default of kNone

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.0.0-rc6, 4.1.1
    • Component/s: Storage
    • Labels:
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Backport Requested:
      v4.0
    • Sprint:
      Storage NYC 2018-06-18

      Description

      The default ReadSource on a RecoveryUnit is kNone, which implies reads occur without a timestamp. In some cases, specifically for readers like FTDC which read without a timestamp, it is unknowable whether the ReadSource was left unset or set explicitly to kNone.

      This would be useful in AutoGetCollectionForRead, where we check if ShouldNotConflictWithSecondaryBatchApplicationBlock is set. If it is, we implicitly assume the reader was willing to read without a timestamp, but this block can also get set when acquiring multiple different collection locks in the same scope. We should depend on information in the RecoveryUnit, not the Locker for whether or not to read with a timestamp.

      This work can be either

      • add a default enumeration state that is distinguishable from kNone
      • make the field a boost::optional

      Both options should read without a timestamp in WiredTigerRecoveryUnit.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              xiangyu.yao Xiangyu Yao (Inactive)
              Reporter:
              louis.williams Louis Williams
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: