[ 
https://issues.apache.org/jira/browse/BEAM-1394?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aljoscha Krettek closed BEAM-1394.
----------------------------------
       Resolution: Fixed
    Fix Version/s: 0.6.0

> Use Flink InternalTimerService for TimerInternals
> -------------------------------------------------
>
>                 Key: BEAM-1394
>                 URL: https://issues.apache.org/jira/browse/BEAM-1394
>             Project: Beam
>          Issue Type: Improvement
>          Components: runner-flink
>            Reporter: Aljoscha Krettek
>            Assignee: Jingsong Lee
>             Fix For: 0.6.0
>
>
> When updating our Flink version to 1.2 we can use the new internal timer API 
> for both the windowing and for wiring in the Beam user-facing Timer API.
> By using the internal timer API we make operators rescalable, that is, we can 
> change the parallelism of a running Beam on Flink job by performing a 
> savepoint and then restarting with a different parallelism.
> An {{InternalTimerService}} can be retrieved by a Flink operator (mostly in 
> {{open()}} using:
> {code}
> /**
>  * Returns a {@link InternalTimerService} that can be used to query current 
> processing time
>  * and event time and to set timers. An operator can have several timer 
> services, where
>  * each has its own namespace serializer. Timer services are differentiated 
> by the string
>  * key that is given when requesting them, if you call this method with the 
> same key
>  * multiple times you will get the same timer service instance in subsequent 
> requests.
>  *
>  * <p>Timers are always scoped to a key, the currently active key of a keyed 
> stream operation.
>  * When a timer fires, this key will also be set as the currently active key.
>  *
>  * <p>Each timer has attached metadata, the namespace. Different timer 
> services
>  * can have a different namespace type. If you don't need namespace 
> differentiation you
>  * can use {@link VoidNamespaceSerializer} as the namespace serializer.
>  *
>  * @param name The name of the requested timer service. If no service exists 
> under the given
>  *             name a new one will be created and returned.
>  * @param namespaceSerializer {@code TypeSerializer} for the timer namespace.
>  * @param triggerable The {@link Triggerable} that should be invoked when 
> timers fire
>  *
>  * @param <N> The type of the timer namespace.
>  */
> public <N> InternalTimerService<N> getInternalTimerService(
>         String name,
>         TypeSerializer<N> namespaceSerializer,
>         Triggerable<?, N> triggerable);
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to