In streaming, memory is mainly needed for state (key/value state). The exact representation depends on the chosen StateBackend.
State is explicitly released: For windows, state is cleaned up automatically (firing / expiry), for user-defined state, keys have to be explicitly cleared (clear() method) or in the future will have the option to expire. The heavy work horse for streaming state is currently RocksDB, which internally uses native (off-heap) memory to keep the data. Does that help? Stephan On Tue, Aug 30, 2016 at 11:52 PM, Roshan Naik <ros...@hortonworks.com> wrote: > As per the docs, in Batch mode, dynamic memory allocation is avoided by > storing messages being processed in ByteBuffers via Unsafe methods. > > Couldn't find any docs describing mem mgmt in Streamingn mode. So... > > - Am wondering if this is also the case with Streaming ? > > - If so, how does Flink detect that an object is no longer being used and > can be reclaimed for reuse once again ? > > -roshan >