Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

When explicitly set to true, MirrorMaker will use incrementalAlterConfigs API for syncing topic configurations. If it receives an error from an incompatible broker, the MirrorMaker will report this to the user and fail the connector. 


3) Update `syncTopicConfigs` syncTopicConfigs()  in MirrorSourceConnector.java to call the updateTopicConfigsUsingIncrementalAlterConfigs() instead of updateTopicConfigs() if enable.incremental.alter.configs is set to true.


4) From Kafka 4.0, syncTopicConfigs() will only call  updateTopicConfigsUsingIncrementalAlterConfigs() by default. The existing updateTopicConfigs() will be removed.


Compatibility, Deprecation, and Migration Plan

  • What impact (if any) will there be on existing users?
  • If we are changing behavior how will we phase out the older behavior?
  • If we need special migration tools, describe them here.
  • When will we remove the existing behavior?

Test Plan

By default, the new setting will be set to false so it does not change the current behaviour. This setting will be marked as deprecated immediately. 

In the next major version:

  • enable.incremental.alter.configs will be removed 
  • MirrorMaker will use the incrementalAlterConfigs API to sync topic configurations. 

Users running the latest MirrorMaker connector against a target cluster with brokers older than Kafka 2.3.0, will have to upgrade.

Test Plan

Currently, the integration tests for MirrorMaker do not check if the target topic have the expected configurations after applying configuration filters, hence this bug was not caught. We will add a new integration test that checks target topic configurations once they have been synced. 

(Is it necessary to add system tests)Describe in few sentences how the KIP will be tested. We are mostly interested in system tests (since unit-tests are specific to implementation details). How will we know that the implementation works as expected? How will we know nothing broke?

Rejected Alternatives

If there are alternative ways of accomplishing the same thing, what were they? The purpose of this section is to motivate why the design is the way it is and not some other way.