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

Henry Cai commented on KAFKA-3740:
----------------------------------

Looks like you want two sets of RocksDB settings, one for K/V store, one for 
range scan store.  I think for most of the small RocksDB (size < 5GB), those 
settings (target file size, or bloom filter) probably won't matter.

To make it really flexible, you would need to provide per store rocksdb 
settings.  E.g. for A join B, if A has small-size records and B has big-size 
records you would want to set the targeFileSize smaller for RocksDB A and 
targetFileSize bigger for RocksDB B.  It seems it would have the following 
overlay config structures in StreamConfig:

rocksdb.default.target_file_size_mb=16
rocksdb.default.use_bloom_filter=true
...
rocksdb.aggregation_style.target_file_size_mb=8
...
rocksdb.join_style.target_file_size_mb=32
...
rocksdb.custom1_style.target_file_size_mb=128

System understands 'default', 'aggregation_style', 'join_style' and will choose 
different style accordingly based on the context.

Application can optionally associate a RocksDB with customer style e.g. 
custom1_style (need some API enhancement).

This might get more complicated, I think for the initial version, as long as we 
can provide rocksdb.default.property this would be a big enhancement.


> Add configs for RocksDBStores
> -----------------------------
>
>                 Key: KAFKA-3740
>                 URL: https://issues.apache.org/jira/browse/KAFKA-3740
>             Project: Kafka
>          Issue Type: Bug
>          Components: streams
>            Reporter: Guozhang Wang
>            Assignee: Henry Cai
>              Labels: api, newbie
>
> Today most of the rocksDB configs are hard written inside {{RocksDBStore}}, 
> or the default values are directly used. We need to make them configurable 
> for advanced users. For example, some default values may not work perfectly 
> for some scenarios: 
> https://github.com/HenryCaiHaiying/kafka/commit/ccc4e25b110cd33eea47b40a2f6bf17ba0924576
>  
> One way of doing that is to introduce a "RocksDBStoreConfigs" objects similar 
> to "StreamsConfig", which defines all related rocksDB options configs, that 
> can be passed as key-value pairs to "StreamsConfig".



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to