The current proto representation of timesetamp and durations in Beam is either raw int64s or the well-known Google protobuf types "google.protobuf.timestamp" and "google.protobuf.duration". Apache Beam uses int64 MAX and MIN as sentinel values for an ****inf watermark and -inf watermark. However, the google.protobuf.timestamp is compliant with RFC3339, meaning it can only represent date-times between 0001-01-01 and 9999-12-31. This is not the same as the int64 MAX and MIN representation. The questions remain:
- What should the timestamp and duration representations be?
- What units should the timestamps and duration be? Nanos? Micros?
- What algebra is allowed when dealing with timestamps and durations? What is needed?
See:
Imported from Jira BEAM-8738. Original Jira may contain additional context.
Reported by: rohdesam.
The current proto representation of timesetamp and durations in Beam is either raw int64s or the well-known Google protobuf types "google.protobuf.timestamp" and "google.protobuf.duration". Apache Beam uses int64 MAX and MIN as sentinel values for an ****inf watermark and -inf watermark. However, the google.protobuf.timestamp is compliant with RFC3339, meaning it can only represent date-times between 0001-01-01 and 9999-12-31. This is not the same as the int64 MAX and MIN representation. The questions remain:
See:
Imported from Jira BEAM-8738. Original Jira may contain additional context.
Reported by: rohdesam.