-
Type: New Feature
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Catalog and Routing
Currently, view definitions are cached in memory without any concept of a timestamp when they were created. When performing reads on views we resolve the view to a read on a collection with an aggregation pipeline. This view resolve step always uses the latest version of that view.
A read on a specific timestamp can, as a result of the above, use a view before it was created or use a view definition that does not match with how it was persisted at the read timestamp if the view has been dropped and recreated with a new aggregation pipeline.
To complicate the matter further, the resolve step of a view is currently performed before the storage snapshot is opened (and the read timestamp determined) for the read on the underlying collection. Between resolving the view and executing the resolved pipeline storage snapshot and locks are released and then re-acquired for the read on the collection.
We should fix this so that view definitions used for point-in-time reads match their persisted definition/pipeline in the storage snapshot used when reading on the underlying collection.
- is depended on by
-
SERVER-85988 View definitions do not have point-in-time support
- Closed
- related to
-
SERVER-85988 View definitions do not have point-in-time support
- Closed