Потоковое
При использовании RocksDBStatebackend все KeyedState (ValueState, MapState, ... и Timers) сохраняются в RocksDB. OperatorState хранится в куче. OperatorState обычно очень маленький и редко используется напрямую разработчиком Flink.
Для Flink 1.10+ управляемая память включает в себя всю память, используемую RocksDB. Flink гарантирует, что использование памяти RocksDB остается в пределах назначенной управляемой памяти. Используйте taskmanager.memory.managed.fraction
, чтобы настроить объем памяти, выделяемый RocksDB. Обычно вы можете отдать всю память, кроме 500 МБ, RockSDB.
Пакетная обработка
Пакетные программы не используют Statebackend. Управляемая память используется для соединений вне кучи, сортировки и т. Д. c. Конфигурации памяти, такие как taskmanager.memory.managed.fraction
, одинаковы для пакетной и потоковой передачи.