[
https://issues.apache.org/jira/browse/KAFKA-6323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16300584#comment-16300584
]
Matthias J. Sax commented on KAFKA-6323:
----------------------------------------
I don't think so -- we only align the schedule, but not the timestamp we pass
into the `punctuate()` call itself. Ie, atm we would do the following In
practice, I would assume that punctuation are actually never called at the
actual scheduled time, but always a couple of milliseconds late, taking this
into account, without alignment we even shift without a long GC pause:
{noformat}
interval 10000
old:
scheduled punctuation: 10000 20003 30005 40010 50012
calling punctuation: 10003 20005 30010 40012
new:
scheduled punctuation: 10000 20000 30000 40000 50000
calling punctuation: 10003 20002 30005 40002
{noformat}
Thus, the delays to the schedule do not add up over time with the alignment.
Note, that the timestamp we pass into the punctuation call is never the
timestamp of the schedule but `NOW`. For example, in the first example, we
might be able to call punctuate at 40002 but we scheduled at 40010 and thus
cannot call before the schedule.
> punctuate with WALL_CLOCK_TIME triggered immediately
> ----------------------------------------------------
>
> Key: KAFKA-6323
> URL: https://issues.apache.org/jira/browse/KAFKA-6323
> Project: Kafka
> Issue Type: Bug
> Components: streams
> Affects Versions: 1.0.0
> Reporter: Frederic Arno
> Assignee: Frederic Arno
> Fix For: 1.1.0, 1.0.1
>
>
> When working on a custom Processor from which I am scheduling a punctuation
> using WALL_CLOCK_TIME. I've noticed that whatever the punctuation interval I
> set, a call to my Punctuator is always triggered immediately.
> Having a quick look at kafka-streams' code, I could find that all
> PunctuationSchedule's timestamps are matched against the current time in
> order to decide whether or not to trigger the punctuator
> (org.apache.kafka.streams.processor.internals.PunctuationQueue#mayPunctuate).
> However, I've only seen code that initializes PunctuationSchedule's timestamp
> to 0, which I guess is what is causing an immediate punctuation.
> At least when using WALL_CLOCK_TIME, shouldn't the PunctuationSchedule's
> timestamp be initialized to current time + interval?
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)