[
https://issues.apache.org/jira/browse/KAFKA-18190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
A. Sophie Blee-Goldman updated KAFKA-18190:
-------------------------------------------
Description:
If a user does not provide explicit timestamps for records piped into the TTD
via a TestInputTopic, the test topic will inject a timestamp based on its own
internal clock. A user can opt to specify a starting time and an auto-advance
when creating the TestInputTopic, in which case the timestamp will advance from
the starting point after each piped record.
However, a user can also opt to create the TestInputTopic without a start
timestamp or auto-advance, in which case the start timestamp is initialized to
that of the TTD (see [https://github.com/apache/kafka/pull/17702] and the
auto-advance is set to 0.
Instead of fixing the auto-advance to 0 and therefore using the same timestamp
for every record, if would make more sense for the TestInputTopic to
synchronize with the internal clock of the TTD. It's confusing to users that
the TopologyTestDriver#advanceWallClockTime API only advances time for the
driver itself, but none of the topics that were created for it.
So in the case where the user doesn't specify a start timestamp or
auto-advance, we should not only set the start timestamp to be equal to that of
the driver's internal clock, but also use the driver's current time for records
that are piped into the TestInputTopic without an explicit timestamp
was:
If a user does not provide explicit timestamps for records piped into the TTD
via a TestInputTopic, the test topic will inject a timestamp based on its own
internal clock. A user can opt to specify a starting time and an auto-advance
when creating the TestInputTopic, in which case the timestamp will advance from
the starting point after each piped record.
However, a user can also opt to create the TestInputTopic without a start
timestamp or auto-advance, in which case the start timestamp is initialized to
that of the TTD (see
[https://github.com/apache/kafka/pull/17702|[https://github.com/apache/kafka/pull/17702])]
and the auto-advance is set to 0.
Instead of fixing the auto-advance to 0 and therefore using the same timestamp
for every record, if would make more sense for the TestInputTopic to
synchronize with the internal clock of the TTD. It's confusing to users that
the TopologyTestDriver#advanceWallClockTime API only advances time for the
driver itself, but none of the topics that were created for it.
So in the case where the user doesn't specify a start timestamp or
auto-advance, we should not only set the start timestamp to be equal to that of
the driver's internal clock, but also use the driver's current time for records
that are piped into the TestInputTopic without an explicit timestamp
> TopologyTestDriver time is not synchronized with test topics
> ------------------------------------------------------------
>
> Key: KAFKA-18190
> URL: https://issues.apache.org/jira/browse/KAFKA-18190
> Project: Kafka
> Issue Type: Bug
> Components: streams
> Reporter: A. Sophie Blee-Goldman
> Priority: Major
>
> If a user does not provide explicit timestamps for records piped into the TTD
> via a TestInputTopic, the test topic will inject a timestamp based on its own
> internal clock. A user can opt to specify a starting time and an auto-advance
> when creating the TestInputTopic, in which case the timestamp will advance
> from the starting point after each piped record.
> However, a user can also opt to create the TestInputTopic without a start
> timestamp or auto-advance, in which case the start timestamp is initialized
> to that of the TTD (see [https://github.com/apache/kafka/pull/17702] and the
> auto-advance is set to 0.
> Instead of fixing the auto-advance to 0 and therefore using the same
> timestamp for every record, if would make more sense for the TestInputTopic
> to synchronize with the internal clock of the TTD. It's confusing to users
> that the TopologyTestDriver#advanceWallClockTime API only advances time for
> the driver itself, but none of the topics that were created for it.
> So in the case where the user doesn't specify a start timestamp or
> auto-advance, we should not only set the start timestamp to be equal to that
> of the driver's internal clock, but also use the driver's current time for
> records that are piped into the TestInputTopic without an explicit timestamp
--
This message was sent by Atlassian Jira
(v8.20.10#820010)