Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Current state: "Under Discussion"

Discussion threadhere

JIRAhere

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
titleProcessor<K,V>
void punctuate(long timestamp); // current

void punctuate(long timestamp, PunctuationType type); // new

where PunctuationType is

Code Block
titlePunctuationType
enum PunctuationType {
  EVENT_TIME,
  SYSTEM_TIME,
}

then on ProcessorContext the schedule method would also be overloaded:

Code Block
titleProcessorContext
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.

...