[ 
https://issues.apache.org/jira/browse/FLINK-6719?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16458487#comment-16458487
 ] 

ASF GitHub Bot commented on FLINK-6719:
---------------------------------------

Github user alpinegizmo commented on a diff in the pull request:

    https://github.com/apache/flink/pull/5887#discussion_r184960782
  
    --- Diff: docs/dev/stream/operators/process_function.md ---
    @@ -271,16 +271,39 @@ override def onTimer(timestamp: Long, ctx: 
OnTimerContext, out: Collector[OUT]):
     </div>
     </div>
     
    -## Optimizations
    +## Timers
     
    -### Timer Coalescing
    +Every timer registered via `registerEventTimeTimer()` or 
`registerProcessingTimeTimer()` will be stored on `TimerService`
    +and enqueued for execution.
     
    -Every timer registered at the `TimerService` via 
`registerEventTimeTimer()` or
    -`registerProcessingTimeTimer()` will be stored on the Java heap and 
enqueued for execution. There is,
    -however, a maximum of one timer per key and timestamp at a millisecond 
resolution and thus, in the
    -worst case, every key may have a timer for each upcoming millisecond. Even 
if you do not do any
    -processing for outdated timers in `onTimer`, this may put a significant 
burden on the
    -Flink runtime.
    +Invocations of `onTimer()` and `processElement()` are always synchronized, 
so that users don't have to worry about
    +concurrent modification of state.
    +
    +Note that there is a maximum of one timer per key and timestamp at a 
millisecond resolution and thus, in the worst case,
    +every key may have a timer for each upcoming millisecond. Even if you do 
not do any processing for outdated timers in `onTimer`,
    +this may put a significant burden on the Flink runtime.
    +
    +### Fault Tolerance
    +
    +Timers registered within `ProcessFunction` are fault tolerant. They are 
synchronously checkpointed by Flink, regardless of
    +configurations of state backends. (Therefore, a large number of timers can 
significantly increase checkpointing time. See optimizations
    +section for advice to reduce the number of timers.)
    --- End diff --
    
    See the optimizations section for advice on how to reduce the number of 
timers.


> Add details about fault-tolerance of timers to ProcessFunction docs
> -------------------------------------------------------------------
>
>                 Key: FLINK-6719
>                 URL: https://issues.apache.org/jira/browse/FLINK-6719
>             Project: Flink
>          Issue Type: Improvement
>          Components: DataStream API, Documentation
>    Affects Versions: 1.5.0
>            Reporter: Tzu-Li (Gordon) Tai
>            Assignee: Bowen Li
>            Priority: Major
>             Fix For: 1.6.0, 1.5.1
>
>
> The fault-tolerance of timers is a frequently asked questions on the mailing 
> lists. We should add details about the topic in the {{ProcessFunction}} docs.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to