[
https://issues.apache.org/jira/browse/FLINK-3435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15163579#comment-15163579
]
ASF GitHub Bot commented on FLINK-3435:
---------------------------------------
Github user StephanEwen commented on a diff in the pull request:
https://github.com/apache/flink/pull/1699#discussion_r53994466
--- Diff:
flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operators/TimestampedCollector.java
---
@@ -51,17 +48,19 @@ public TimestampedCollector(Output<StreamRecord<T>>
output) {
@Override
public void collect(T record) {
- output.collect(reuse.replace(record, timestamp));
+ output.collect(reuse.replace(record));
+ }
+
+ public void setTimestamp(StreamRecord<?> timestampBase) {
+ if (timestampBase.hasTimestamp()) {
+ reuse.setTimestamp(timestampBase.getTimestamp());
+ } else {
+ reuse.eraseTimestamp();
+ }
}
- /**
- * Sets the timestamp (long milliseconds) that is attached to elements
that get emitted using
- * {@link #collect(Object)}
- *
- * @param timestamp The timestamp in milliseconds
- */
- public void setTimestamp(long timestamp) {
- this.timestamp = timestamp;
+ public void setAbsoluteTimestamp(long timestamp) {
--- End diff --
I renamed that to make sure I do not overlook any places where the better
method would have been `setTimestamp(StreamRecord)`. Ideally, we'd not have the
`setAbsoluteTimestamp(long)` method at all. But that would need changes in the
window operators.
> Change interplay of Ingestion Time and Event Time
> -------------------------------------------------
>
> Key: FLINK-3435
> URL: https://issues.apache.org/jira/browse/FLINK-3435
> Project: Flink
> Issue Type: Improvement
> Components: Streaming
> Affects Versions: 0.10.2
> Reporter: Stephan Ewen
> Assignee: Stephan Ewen
> Priority: Blocker
> Fix For: 1.0.0
>
>
> Currently, "EventTime" and "IngestionTime" are completely the same.
> For both happens the following:
> - Sources generate ingestion time timestamps and watermarks
> - If a user adds a manual timestamp extractor / watermark generator, then
> those override the ingestion time timestamps and watermarks
> - That implies that event time on a certain input falls back to ingestion
> time, if one forgets (or incorrectly uses) the timestamp extractors
> - Also, Ingestion Time and Event Time simply mix if some inputs have
> timestamp assigners, and others have not.
> This behavior is quite tricky to understand. After some discussions with
> [~aljoscha] and [~rmetzger], we suggest to change it the following way.
> 1. On Ingestion Time, the timestamps and watermarks are generated as they
> are now.
> 2. On event time, no default timestamps and watermarks are generated. If a
> user does not implement a timestamp extractor / watermark generator, then the
> event time operations will fail fast.
> 3. If one wants to use ingestion time on event time settings (mix), one can
> use an explicit "WallClockTimetampsAndWatermark" generator.
> 4. Later, the "Ingestion Time" settings should automatically disable and
> user-defined timestamp extractors / assigners.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)