New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
KAFKA-15083: add config with "remote.log.metadata" prefix #14151
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, okay, this pull request makes sense to me. To summarise, you are saying that configurations starting with remote.log.metadata
need to be passed to implementations of the RemoteLogMetadataManager as part of the rlmmProps, however, they are never put in the rlmmProps by the RemoteLogManagerConfig?
Test failures appear to be unrelated.
Correct! Thanks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, I noticed the same while working on the test framework. Thanks for adding it!
@@ -134,6 +134,8 @@ public final class RemoteLogManagerConfig { | |||
"less than or equal to `log.retention.bytes` value."; | |||
public static final Long DEFAULT_LOG_LOCAL_RETENTION_BYTES = -2L; | |||
|
|||
public static final String REMOTE_LOG_METADATA_PREFIX = "remote.log.metadata"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we have append the _PROP
(or) _CONFIG
suffix to it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We already have REMOTE_LOG_METADATA_MANAGER_CONFIG_PREFIX_PROP
. Configs that are prefixed with this value will be supplied to remote log metadata manager.
To configure the values in the JIRA ticket:
remote.log.storage.manager.impl.prefix=remote.log.storage.
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
rlmm.config.remote.log.metadata.topic.retention.ms=2592000000
remote.log.storage.s3...
Let's avoid one more Map
(remoteLogMetadataProps) in RemoteLogManagerConfig.
Also, we can define the default values for the config prefix
in this PR:
public static final String DEFAULT_REMOTE_STORAGE_MANAGER_CONFIG_PREFIX = "rsm.config.";
public static final String DEFAULT_REMOTE_LOG_METADATA_MANAGER_CONFIG_PREFIX = "rlmm.config.";
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the good suggestion! PR updated.
Not clear on this patch, will go another round of review. |
@@ -134,6 +134,8 @@ public final class RemoteLogManagerConfig { | |||
"less than or equal to `log.retention.bytes` value."; | |||
public static final Long DEFAULT_LOG_LOCAL_RETENTION_BYTES = -2L; | |||
|
|||
public static final String REMOTE_LOG_METADATA_PREFIX = "remote.log.metadata"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We already have REMOTE_LOG_METADATA_MANAGER_CONFIG_PREFIX_PROP
. Configs that are prefixed with this value will be supplied to remote log metadata manager.
To configure the values in the JIRA ticket:
remote.log.storage.manager.impl.prefix=remote.log.storage.
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
rlmm.config.remote.log.metadata.topic.retention.ms=2592000000
remote.log.storage.s3...
Let's avoid one more Map
(remoteLogMetadataProps) in RemoteLogManagerConfig.
Also, we can define the default values for the config prefix
in this PR:
public static final String DEFAULT_REMOTE_STORAGE_MANAGER_CONFIG_PREFIX = "rsm.config.";
public static final String DEFAULT_REMOTE_LOG_METADATA_MANAGER_CONFIG_PREFIX = "rlmm.config.";
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Failed tests are unrelated:
|
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: rlmm.config.remote.log.metadata.topic.num.partitions=50 rlmm.config.remote.log.metadata.topic.replication.factor=4 rsm.config.test=value Reviewers: Christo Lolov <christololov@gmail.com>, Kamal Chandraprakash <kchandraprakash@uber.com>, Divij Vaidya <diviv@amazon.com>
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 Reviewers: Christo Lolov <christololov@gmail.com>, Kamal Chandraprakash <kchandraprakash@uber.com>, Divij Vaidya <diviv@amazon.com>
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 Reviewers: Christo Lolov <christololov@gmail.com>, Kamal Chandraprakash <kchandraprakash@uber.com>, Divij Vaidya <diviv@amazon.com>
When configuring RLMM, the configs passed into
configure
method is theRemoteLogManagerConfig
. But inRemoteLogManagerConfig
, there's no configs related toremote.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 isrlmm.config.
), and then, appending the desiredremote.log.metadata.*
configs, it'll pass into RLMM, includingremote.log.metadata.common.client.
/remote.log.metadata.producer.
/remote.log.metadata.consumer.
prefixes.Ex:
Committer Checklist (excluded from commit message)