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

Yu Li commented on FLINK-18242:
-------------------------------

I agree that making `DefaultConfigurableOptionsFactory` final is not a thorough 
solution. After a second thought, we should consider completely separating 
`RocksDBOptionsFactory` and `OptionsFactory`. The only problem would be how to 
make `RocksDBStateBackend#setOptions` backward compatible (accepting an 
`OptionsFactory` and assign to a `RocksDBOptionsFactory` variable) - I think 
another {{OptionsFactory->RocksDBOptionsFactory}} adapter could make it work.

Let me prepare a PR to better Illustrate the idea.

> Custom OptionsFactory settings seem to have no effect on RocksDB
> ----------------------------------------------------------------
>
>                 Key: FLINK-18242
>                 URL: https://issues.apache.org/jira/browse/FLINK-18242
>             Project: Flink
>          Issue Type: Bug
>          Components: Runtime / State Backends
>    Affects Versions: 1.10.0, 1.10.1, 1.11.0
>            Reporter: Nico Kruber
>            Priority: Major
>         Attachments: DefaultConfigurableOptionsFactoryWithLog.java
>
>
>  When I configure a custom {{OptionsFactory}} for RocksDB like this 
> (similarly by specifying it via the {{state.backend.rocksdb.options-factory}} 
> configuration):
> {code:java}
> Configuration globalConfig = GlobalConfiguration.loadConfiguration();
> String checkpointDataUri = 
> globalConfig.getString(CheckpointingOptions.CHECKPOINTS_DIRECTORY);
> RocksDBStateBackend stateBackend = new RocksDBStateBackend(checkpointDataUri);
> stateBackend.setOptions(new DefaultConfigurableOptionsFactoryWithLog());
> env.setStateBackend((StateBackend) stateBackend);{code}
> it seems to be loaded
> {code:java}
> 2020-06-10 12:54:20,720 INFO  
> org.apache.flink.contrib.streaming.state.RocksDBStateBackend  - Using 
> predefined options: DEFAULT.
> 2020-06-10 12:54:20,721 INFO  
> org.apache.flink.contrib.streaming.state.RocksDBStateBackend  - Using 
> application-defined options factory: 
> DefaultConfigurableOptionsFactoryWithLog{DefaultConfigurableOptionsFactory{configuredOptions={}}}.
>  {code}
> but it seems like none of the options defined in there is actually used. Just 
> as an example, my factory does set the info log level to {{INFO_LEVEL}} but 
> this is what you will see in the created RocksDB instance:
> {code:java}
> > cat /tmp/flink-io-c95e8f48-0daa-4fb9-a9a7-0e4fb42e9135/*/db/OPTIONS*|grep 
> > info_log_level
>   info_log_level=HEADER_LEVEL
>   info_log_level=HEADER_LEVEL{code}
> Together with the bug from FLINK-18241, it seems I cannot re-activate the 
> RocksDB log that we disabled in FLINK-15068. FLINK-15747 was aiming at 
> changing that particular configuration, but the problem seems broader since 
> {{setDbLogDir()}} was actually also ignored and Flink itself does not change 
> that setting.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to