-
Notifications
You must be signed in to change notification settings - Fork 482
Update columnar, timely, differential #33938
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
76e19c9 to
af8b4ed
Compare
| if let Some(frontier) = &ts_rewrite { | ||
| h.write_usize(frontier.len()); | ||
| frontier.iter().for_each(|t| t.encode().hash(&mut h)); | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bkirwi Do you think this change is correct? We don't require Timestamp to be Hash, so instead of requiring it, I'm pivoting to hasing the codec.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, this is fine! Codec64 guarantees that it's equally unique, and since this is just a debug assert helper we don't have to worry too much about the (probably very small number of) extra cycles.
26058c6 to
2f8d051
Compare
def-
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
test change lgtm, thanks for triggering nightly
teskje
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Made it through the compute parts, but not the storage parts yet.
2f8d051 to
95c516c
Compare
teskje
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
src/storage/src/render/sinks.rs
Outdated
| use crate::storage_state::StorageState; | ||
|
|
||
| /// _Renders_ complete _differential_ [`Collection`]s | ||
| /// _Renders_ complete _differential_ Collections |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: I'd lower-case these (here and in src/storage/src/render/sources.rs) to make it more obvious that this refers to the concept, not a specific type.
| if let Some(capability) = &self.capability | ||
| && cap.time() != capability.time() | ||
| { | ||
| self.flush(); | ||
| self.capability = None; | ||
| } | ||
| if self.capability.is_none() { | ||
| self.capability = Some(cap.clone()); | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This leaves the opportunity to "upgrade" the capability, right? Also you can re-activate an output after it has been ceased. Seems safer to never drop the existing capability and downgrade it instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can't downgrade the capability if we're in partially-ordered time though, so I'd rather drop it. It shouldn't make a performance difference as a downgrade is a retract and insert under the hood.
Signed-off-by: Moritz Hoffmann <[email protected]>
Signed-off-by: Moritz Hoffmann <[email protected]>
95c516c to
1405be4
Compare
Update Columnar, Timely and Differential.
TODO:
The async operator builder in its current form will emit single-record containers.✔️ Also removed unsafe code.