Question about both using managed memory with RocksDB and tuning other options

2022-02-09 Thread LM Kang
Hi community,


According to the docs of Flink and RocksDB, if we set 
`state.backend.rocksdb.memory.managed` option to `true`, the memory budget of 
memtable and block cache will be controlled by WriteBufferManager and Cache, 
according to the given ratios.

Based on this premise, how will the other related parameters (e.g. block size / 
block cache size / write buffer count / write buffer size) be set? Do they just 
keep their own default values, or actively set new values by WriteBufferManager?

Furthermore, if we arbitrarily set these parameters or configure 
PredefinedOptions (e.g. in SPINNING_DISK_OPTIMIZED_HIGH_MEM, the block cache 
size is 256MB), will these parameters take effect? If they do, how can we 
ensure that they agree with WriteBufferManager?

Many thanks.



Question about object reusing in Flink SQL

2022-02-01 Thread LM Kang
Hi community,


I have read a blog named <> [1], 
which says enabling object reuse can greatly improve performance of Blink 
Planner. 

But as I see in the code (v1.14), there’s few occurrences of controllable 
object reusing in Flink SQL-related modules. 

What’s more, when enabling object reuse, the planner deep-copies the objects 
(e.g. in `CommonExecLookupJoin`), which is just opposite to the shallow-copy 
behavior in DataStream API. The generated code is always the same, regardless 
of the setting.

Am I missing something? Or the behavior changed during version update?

Many thanks.


[1] https://www.ververica.com/blog/a-journey-to-beating-flinks-sql-performance