Trait persist::operators::stream::AllowPersistCompaction [−][src]
pub trait AllowPersistCompaction<G: Scope<Timestamp = u64>, D: TimelyData> {
fn allow_compaction<K, V>(
&self,
name: &str,
write: StreamWriteHandle<K, V>,
allowed_compaction_frontier: Rc<RefCell<Antichain<u64>>>
) -> Stream<G, (D, u64, isize)>
where
K: Codec,
V: Codec;
}
Expand description
Extension trait for Stream
.
Required methods
Passes through each element of the stream and allows compaction on the given collection
(the write
handle) when the input frontier combined with the allowed compaction frontier
(the effective input frontier) advance.
NOTE: This does not allow compaction right up to the effective input frontier. Instead,
when the frontier advances, we allow compaction up to the latest previous frontier that is
strictly dominated (PartialOrder::less()
), than the effective input frontier. We do this,
because the input frontier is most likely a proxy for an upstream persist or seal frontier
and we don’t want to advance up to the seal, so that we can still distinguish between
updates that are in front of or beyond the seal frontier.