You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We can do this by passing along the index of the item of the sorted set and using that for equality and ordering in all downstream calculations. This'll make ordering of the view equivalent to ordering of the source.
Problems come in when joins and reductions happen. We could just concatenate keys in those cases.
Users of course may want to apply a custom ordering. For those cases we can still allow a comparator to be provided to materialize
Removing the need for a comparator as an argument to materialize reduces the error surface for when users are trying to hoist operations into the backend since we cannot hoist operators if the ordering of the view and source are different. We currently detect if the ordering of source and view are the same if the comparators for each are equal by reference. Meaning users could pass semantically equivalent but referentially unequal comparators and end up with performance degradations due to lack of hoisting.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Materialite is based on the concepts of a source collection and materialized collection (view).
E.g.,
Both of these require a comparator.
It is possible to only require a comparator on the source and not on the views:
We can do this by passing along the index of the item of the sorted set and using that for equality and ordering in all downstream calculations. This'll make ordering of the view equivalent to ordering of the source.
Problems come in when joins and reductions happen. We could just concatenate keys in those cases.
Users of course may want to apply a custom ordering. For those cases we can still allow a comparator to be provided to
materialize
Removing the need for a
comparator
as an argument tomaterialize
reduces the error surface for when users are trying to hoist operations into the backend since we cannot hoist operators if the ordering of the view and source are different. We currently detect if the ordering of source and view are the same if the comparators for each are equal by reference. Meaning users could pass semantically equivalent but referentially unequal comparators and end up with performance degradations due to lack of hoisting.Beta Was this translation helpful? Give feedback.
All reactions