This repository has been archived by the owner on Mar 3, 2023. It is now read-only.
Renamed Exactly Once to Effectively Once #2254
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The stateful processing in Heron relies on Distributed snapshotting method where state is periodically check pointed and restored when a failure occurs. However once a failure occurs and the last globally consistent checkpoint is restored, tuples which were already processed(but not check pointed) could be replayed. Thus it is possible that a tuple is processed more than once, however because all state information is stored in the state variable, the effects are applied once once. In other words, this mechanism is effectively once.
To achieve true exactly once processing where one needs to guarantee that every tuple is processed only once, one needs to adopt MillWheel Style approach where each incoming and outgoing tuple is stored and deduped.
This pr thus renames exactly once wordings with effectively once to reflect the thought above.