flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From StefanRRichter <...@git.apache.org>
Subject [GitHub] flink pull request #3359: [FLINK-5544][streaming] Add InternalTimerService i...
Date Fri, 17 Mar 2017 15:46:00 GMT
Github user StefanRRichter commented on a diff in the pull request:

    https://github.com/apache/flink/pull/3359#discussion_r106669974
  
    --- Diff: flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operators/InternalTimerService.java
---
    @@ -18,43 +18,306 @@
     package org.apache.flink.streaming.api.operators;
     
     import org.apache.flink.annotation.Internal;
    +import org.apache.flink.annotation.VisibleForTesting;
    +import org.apache.flink.api.common.typeutils.TypeSerializer;
    +import org.apache.flink.core.memory.DataInputViewStreamWrapper;
    +import org.apache.flink.core.memory.DataOutputViewStreamWrapper;
    +import org.apache.flink.runtime.state.KeyGroupRange;
    +import org.apache.flink.streaming.runtime.tasks.EventTimeCallback;
    +import org.apache.flink.streaming.runtime.tasks.ProcessingTimeCallback;
    +import org.apache.flink.streaming.runtime.tasks.ProcessingTimeService;
    +import org.apache.flink.util.InstantiationUtil;
    +import org.apache.flink.util.Preconditions;
    +
    +import java.io.IOException;
    +import java.util.ArrayList;
    +import java.util.Collection;
    +import java.util.List;
    +import java.util.Set;
    +import java.util.concurrent.ScheduledFuture;
    +
    +import static org.apache.flink.util.Preconditions.checkArgument;
    +import static org.apache.flink.util.Preconditions.checkNotNull;
     
     /**
      * Interface for working with time and timers.
      *
      * <p>This is the internal version of {@link org.apache.flink.streaming.api.TimerService}
      * that allows to specify a key and a namespace to which timers should be scoped.
      *
    + * All d
    + * 
    + * @param <K> Type of the keys in the stream
      * @param <N> Type of the namespace to which timers are scoped.
      */
     @Internal
    -public interface InternalTimerService<N> {
    +public abstract class InternalTimerService<K, N> implements ProcessingTimeCallback,
EventTimeCallback {
    --- End diff --
    
    I would suggest to still keep the old interface and rename this to `AbstractInternalTimerService<K,
N> implements InternalTimerService<N>`. Like that, we don't need to introduce the
generic parameter K in all places, which is actually giving away some implementation detail
(K is used only for a member, not for the interface methods). I also like to keep the interface
slim, and probably not every code that deals with `InternalTimerService` has to see all the
methods, e.g. for snapshots.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message