The contract for updates on a key in WiredTiger with durable history is
- The first insert of a value may use timestamp 0
- Every update must have a timestamp >= the previous update's timestamp
- An update may use timestamp 0; WT will delete existing history on that key. (aka mixed-mode timestamp)
My observation is that the table setting assert=(durable_timestamp=key_consistent)) does not currently map to this contract. I've specifically observed this check to be disallowing mixed-mode timestamps. In lieu of creating a new assertion type, I'd like to see key_consistent become the setting MongoDB can set to be sure it's obeying the contract.