RocksDB based timers

Even if you set RocksDB as a state backend, Flink timers, registered by the window operator or defined by the user, are stored on-heap by default. You can change this by setting the timer service property to RocksDB to reduce the heap consumption.

Timers can be user-defined or registered by the system for window operators. While heap based timers are very quick, they might require too large container sizes.

By setting the state-backend-rocksdb-timer-service-factory configuration property to ROCKSDB, Flink stores all timers in the state backend. This has a severe impact on timer performance, but also greatly reduces the heap consumption.