Materialized views speed up query evaluation by storing the results of specified queries. One problem of materialized view is its maintenance. Materialized views have to be brought up to date when the underling base relations are updated.
See also: Datalog
- Compute difference in facts between two points
- Delete all derivations that rely on deleted facts
- Rederive all facts with alternative derivations
A materialized view is a cache.
By reasoning about every cache as a partially materialized view (assume it can be explicitly defined), it means if we can cache partially materialized views consistently, we solve the cache invalidation problem.
The Noria paper from OSDI’18 introduced a new concept called partially-stateful data-flow to solve the consistency problem for partially materialized views.
Noria will internally compile the materialized view into a DAG of partially-stateful and stateless operators.
If the underlying data store supports ordering primitives such as Hybrid Logical Clock, we can probably apply the techniques described in the OSDI’20 FlightTracker paper to provide Causal Consistency in Noria – a big improvement over Eventual Consistency.