You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by GitBox <gi...@apache.org> on 2021/12/08 21:04:55 UTC

[GitHub] [kafka] soondenana opened a new pull request #11580: KAFKA-13517. Add ConfigurationKeys to ConfigResource class

soondenana opened a new pull request #11580:
URL: https://github.com/apache/kafka/pull/11580


   A list of `ConfigResource` class is passed as argument to
   `AdminClient::describeConfigs` api to indicate configuration of the
   entities to fetch. The `ConfigResource` class is made up of two fields,
   name and type of entity. Kafka returns all configurations for the
   entities provided to the admin client api.
   
   This admin api in turn uses `DescribeConfigsRequest` kafka api to get the
   configuration for the entities in question. In addition to name and type
   of entity whose configuration to get, Kafka `DescribeConfigsResource`
   structure also lets users provide `ConfigurationKeys` list, which allows
   users to fetch only the configurations that are needed.
   
   However, this field isn't exposed in the `ConfigResource` class that is
   used by `AdminClient`, so users of `AdminClient` have no way to ask for
   specific configuration. The API always returns all configurations. Then
   the user of the `AdminClient::describeConfigs` go over the returned list
   and filter out the config keys that they are interested in.
   
   This results in boilerplate code for all users of
   `AdminClient::describeConfigs` api, in addition to  being wasteful use of
   resource. It becomes painful in large cluster case where to fetch one
   configuration of all topics, we need to fetch all configuration of all
   topics, which can be huge in size.
   
   Creating this Jira to add same field (i.e. `ConfigurationKeys`) to the
   `ConfigResource` structure to bring it to parity to
   `DescribeConfigsResource` Kafka API structure. There should be no backward
   compatibility issue as the field will be optional and will behave same
   way if it is not specified (i.e. by passing null to backend kafka api)
   
   Added unit and integration test to test the behavior.
   
   *More detailed description of your change,
   if necessary. The PR title and PR message become
   the squashed commit message, so use a separate
   comment to ping reviewers.*
   
   *Summary of testing strategy (including rationale)
   for the feature or bug fix. Unit and/or integration
   tests are expected for any behaviour change and
   system tests should be considered for larger changes.*
   
   ### Committer Checklist (excluded from commit message)
   - [ ] Verify design and implementation 
   - [ ] Verify test coverage and CI build status
   - [ ] Verify documentation (including upgrade notes)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscribe@kafka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org