This is one of those "pick two of the three properties" except it's pick "X of the Y properties" for unknown values of X and Y.
The properties:
- Allow lazy accessing of collections (i.e: not known ahead of time) after acquiring a storage engine snapshot.
- Have instances of ghost timestamping catalog operations.
- Not maintaining a versioned catalog.
- Reacquire snapshots with different locks on a catalog conflict.
- Ensure user operations don't fail due to a catalog conflicts.
It might be easiest to uassert when an operation cannot easily get a snapshot that is allowed to read from all necessary collections.