[ 
https://issues.apache.org/jira/browse/KAFKA-15083?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Luke Chen updated KAFKA-15083:
------------------------------
    Description: 
Based on the 
[KIP-405|https://cwiki.apache.org/confluence/display/KAFKA/KIP-405%3A+Kafka+Tiered+Storage#KIP405:KafkaTieredStorage-Configs]:
|_{color:#000000}remote.log.metadata.*{color}_|{color:#000000}Default RLMM 
implementation creates producer and consumer instances. Common client 
propoerties can be configured with `remote.log.metadata.common.client.` prefix. 
 User can also pass properties specific to 
{color}{color:#000000}producer/consumer with `remote.log.metadata.producer.` 
and `remote.log.metadata.consumer.` prefixes. These will override properties 
with `remote.log.metadata.common.client.` prefix.{color}
{color:#000000}Any other properties should be prefixed with 
"remote.log.metadata." and these will be passed to 
RemoteLogMetadataManager#configure(Map<String, ?> props).{color}
{color:#000000}For ex: Security configuration to connect to the local broker 
for the listener name configured are passed with props.{color}|

 

This is missed from current implementation.

 

When configuring RLMM, the configs passed into {{configure}} method is the 
{{{}RemoteLogManagerConfig{}}}. But in {{{}RemoteLogManagerConfig{}}}, there's 
no configs related to {{{}remote.log.metadata.*{}}}, ex: 
{{{}remote.log.metadata.topic.replication.factor{}}}. So, even if users have 
set the config in broker, it'll never be applied.

This PR fixed the issue to allow users setting RLMM prefix: 
{{remote.log.metadata.manager.impl.prefix}} (default is {{{}rlmm.config.{}}}), 
and then, appending the desired {{remote.log.metadata.*}} configs, it'll pass 
into RLMM, including 
{{{}remote.log.metadata.common.client.{}}}/{{{}remote.log.metadata.producer.{}}}/
 {{remote.log.metadata.consumer.}} prefixes.

Ex:
# default value
# remote.log.storage.manager.impl.prefix=rsm.config.
# remote.log.metadata.manager.impl.prefix=rlmm.config.

rlmm.config.remote.log.metadata.topic.num.partitions=50
rlmm.config.remote.log.metadata.topic.replication.factor=4

rsm.config.test=value

  was:
Based on the 
[KIP-405|https://cwiki.apache.org/confluence/display/KAFKA/KIP-405%3A+Kafka+Tiered+Storage#KIP405:KafkaTieredStorage-Configs]:
|_{color:#000000}remote.log.metadata.*{color}_|{color:#000000}Default RLMM 
implementation creates producer and consumer instances. Common client 
propoerties can be configured with `remote.log.metadata.common.client.` prefix. 
 User can also pass properties specific to 
{color}{color:#000000}producer/consumer with `remote.log.metadata.producer.` 
and `remote.log.metadata.consumer.` prefixes. These will override properties 
with `remote.log.metadata.common.client.` prefix.{color}
{color:#000000}Any other properties should be prefixed with 
"remote.log.metadata." and these will be passed to 
RemoteLogMetadataManager#configure(Map<String, ?> props).{color}
{color:#000000}For ex: Security configuration to connect to the local broker 
for the listener name configured are passed with props.{color}|

 

This is missed from current implementation.


> Passing "remote.log.metadata.*" configs into RLMM
> -------------------------------------------------
>
>                 Key: KAFKA-15083
>                 URL: https://issues.apache.org/jira/browse/KAFKA-15083
>             Project: Kafka
>          Issue Type: Sub-task
>            Reporter: Luke Chen
>            Assignee: Luke Chen
>            Priority: Major
>
> Based on the 
> [KIP-405|https://cwiki.apache.org/confluence/display/KAFKA/KIP-405%3A+Kafka+Tiered+Storage#KIP405:KafkaTieredStorage-Configs]:
> |_{color:#000000}remote.log.metadata.*{color}_|{color:#000000}Default RLMM 
> implementation creates producer and consumer instances. Common client 
> propoerties can be configured with `remote.log.metadata.common.client.` 
> prefix.  User can also pass properties specific to 
> {color}{color:#000000}producer/consumer with `remote.log.metadata.producer.` 
> and `remote.log.metadata.consumer.` prefixes. These will override properties 
> with `remote.log.metadata.common.client.` prefix.{color}
> {color:#000000}Any other properties should be prefixed with 
> "remote.log.metadata." and these will be passed to 
> RemoteLogMetadataManager#configure(Map<String, ?> props).{color}
> {color:#000000}For ex: Security configuration to connect to the local broker 
> for the listener name configured are passed with props.{color}|
>  
> This is missed from current implementation.
>  
> When configuring RLMM, the configs passed into {{configure}} method is the 
> {{{}RemoteLogManagerConfig{}}}. But in {{{}RemoteLogManagerConfig{}}}, 
> there's no configs related to {{{}remote.log.metadata.*{}}}, ex: 
> {{{}remote.log.metadata.topic.replication.factor{}}}. So, even if users have 
> set the config in broker, it'll never be applied.
> This PR fixed the issue to allow users setting RLMM prefix: 
> {{remote.log.metadata.manager.impl.prefix}} (default is 
> {{{}rlmm.config.{}}}), and then, appending the desired 
> {{remote.log.metadata.*}} configs, it'll pass into RLMM, including 
> {{{}remote.log.metadata.common.client.{}}}/{{{}remote.log.metadata.producer.{}}}/
>  {{remote.log.metadata.consumer.}} prefixes.
> Ex:
> # default value
> # remote.log.storage.manager.impl.prefix=rsm.config.
> # remote.log.metadata.manager.impl.prefix=rlmm.config.
> rlmm.config.remote.log.metadata.topic.num.partitions=50
> rlmm.config.remote.log.metadata.topic.replication.factor=4
> rsm.config.test=value



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to