...
Current state: "Under Discussion"
Discussion thread: here
JIRA: here
Released: ...
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
...
See below
Proposed Changes
The proposal is to leave the current punctuate() method with the semantics as-is for backward compatibility and add a new overloaded variant that takes an enum value as parameter:
Code Block | ||
---|---|---|
| ||
void punctuate(long timestamp); // current
void punctuate(long timestamp, PunctuationType type); // new |
where PunctuationType is
Code Block | ||
---|---|---|
| ||
enum PunctuationType {
EVENT_TIME,
SYSTEM_TIME,
}
|
then on ProcessorContext the schedule method would also be overloaded:
Code Block | ||
---|---|---|
| ||
void schedule(long interval); //current
void schedule(long interval, PunctuationType type); //new
// We could allow this to be called once for each value of PunctuationType to mix approaches. |
Other alternative under discussion:
(A) Change (A) The proposal is to change the semantics of punctuate()
to be purely "time driven", instead of "part time driven, and part data-driven". That is, the punctuate function triggering will no longer be dependent whether there are new data arriving, and hence not on the timestamps of the arriving data either. Instead it will be triggered only by system wall-clock time.
...