Skip to content
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

docs: improve multiset_delta() docs #830

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

MingweiSamuel
Copy link
Member

No description provided.

Copy link
Contributor

@jhellerstein jhellerstein left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please revise, as I'm still finding it ambigous

/// released out. Conversely, `unique` take repeated items in, and only releases the new ones out.
///
/// This operator does a similar inversion but for multiset semantics, with some caveats. When it
/// receives duplicate items, instead of ignoring them, it "subtracts" them from the items received
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"subtracts" is confusing. Why not say "if we received k copies of an item in the previous tick, and we receive l > k copies in the current tick, we output l - k copies of the item."

/// This operator does a similar inversion but for multiset semantics, with some caveats. When it
/// receives duplicate items, instead of ignoring them, it "subtracts" them from the items received
/// in the previous tick, and only releases new items if there are more than in the previous tick.
/// However unlike `unique`, this count is only maintained for the previous tick, not over all time.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given the proposed rewording above, maybe rephrase to match.

I'm actually confused as to whether it remembers the MAX number of copies over time, or just the last tick number? If it's MAX, then we should probably implement a generic lattice_delta, where this is a specific one for multiset lattices. If it's not MAX, then I'd like to discuss semantics --- it'd be weird for this to be the only 1-tick windowed operator (other than next_tick).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is only the previous tick. The semantics become weird if it's not somewhere after a persist operator

/// // 5, 3
/// // First two "3"s are removed due to previous tick.
/// // 'c', 'a'
/// // First two 'a's are removed due to previous tick.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Give an example of the 3rd tick to clarify what confuses me above about MAX over all time vs last tick?

@jhellerstein
Copy link
Contributor

jhellerstein commented Jul 11, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants