Github user GJL commented on a diff in the pull request:
https://github.com/apache/flink/pull/5236#discussion_r159464428
--- Diff:
flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operators/HeapInternalTimerService.java
---
@@ -475,4 +483,38 @@ public int getLocalKeyGroupRangeStartIdx() {
public Set<InternalTimer<K, N>>[] getProcessingTimeTimersPerKeyGroup() {
return this.processingTimeTimersByKeyGroup;
}
+
+ private void incrementProcessingTimeTimer(K key, N namespace) {
+ incrementTimeTimer(processingTimeNumberTimers, key, namespace);
+ }
+
+ private void incrementEventTimeTimer(K key, N namespace) {
+ incrementTimeTimer(eventTimeNumberTimers, key, namespace);
+ }
+
+ private void incrementTimeTimer(Table<K, N, Integer> table, K key, N
namespace) {
+ if (table.contains(key, namespace)) {
+ table.put(key, namespace, table.get(key, namespace) +
1);
+ } else {
+ table.put(key, namespace, 1);
+ }
+ }
+
+ private void decrementProcessingTimeTimer(K key, N namespace) {
+ decrementTimeTimer(processingTimeNumberTimers, key, namespace);
+ }
+
+ private void decrementEventTimeTimer(K key, N namespace) {
+ decrementTimeTimer(eventTimeNumberTimers, key, namespace);
+ }
+
+ private void decrementTimeTimer(Table<K, N, Integer> table, K key, N
namespace) {
+ if (table.contains(key, namespace)) {
--- End diff --
Can it actually happen that the `(key, namespace)` is not in the table? If
it should not happen, maybe
a `checkState` is better.
---