...
Collaborators: Karthik Rajagopalan, Nagarjuna Koduru
Status
Current state:"Draft"Under Discussion
Discussion thread: here [Change the link from the KIP proposal email archive to your own email thread]
JIRA: KAFKA-7739
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
...
Code Block |
---|
# Defaults to remote.log.disable.policy=retain bin/kafka-configs.sh --bootstrap-server {bootstrap-string} \ --alter --entity-type topics --entity-name {topic-name} \ --add-config 'remote.storage.enable=false' #Disable with remote.log.disable.policy=retain bin/kafka-configs.sh --bootstrap-server {bootstrap-string} \ --alter --entity-type topics --entity-name {topic-name} \ --add-config 'remote.log.disable.policy=retain, remote.storage.enable=false' #Disable with remote.log.disable.policy=delete bin/kafka-configs.sh --bootstrap-server {bootstrap-string} \ --alter --entity-type topics --entity-name {topic-name} \ --add-config 'remote.log.disable.policy=delete, remote.storage.enable=false' |
Metrics
Further
...
details
...
to
...
follow
...
as
...
the
...
design
...
progresses.
Compatibility, Deprecation, and Migration Plan
- This feature will be compatible with all Kafka versions that support Tiered Storage.
- This feature will be compatible with both Kraft-based and ZooKeeper-based clusters.
Test Plan
The
...
test
...
plan
...
for
...
this
...
feature
...
includes
...
the
...
following:
- Integration Tests:For integration tests, we will utilize a file-based tiering (LocalTieredStorage) to test the disablement code path.
- Unit Tests: Comprehensive unit test coverage will be provided to ensure the functionality of individual components involved in the disablement process.
- System Tests: System tests will be conducted for both ZooKeeper-based and Kraft-based clusters.
Rejected Alternatives
The
...
following
...
alternatives
...
were
...
considered
...
but
...
ultimately
...
rejected:
- Introducing a new API from the broker to the controller mode to notify the controller when the disablement process is completed. This alternative was not pursued as it represents a shift in the paradigm, where a broker initiates a call to the controller. It was deemed less suitable for the desired design approach.
- Reuse the existing API
StopReplicaRequest
instead of creating a new APIDisableRemoteTopic
to notify brokers the disablement of tiered storage on a topic. This approach would function from a technical standpoint by simply adding an additional flag to indicate that the StopReplicaRequest is for the disablement of tiered storage. However, for the sake of clarity in intent, it is recommended to opt for the creation of the new API, DisableRemoteTopic. This choice ensures clear and unambiguous communication of the operation's purpose. - Introducing a temporary ZNode in
/{$AdminZNode.path}/remote_storage_topic_disablements/{$topic}
in ZooKeeper (ZK) mode to serve as a lock while the disablement process is in progress. This alternative was rejected because maintaining the state within the Topics ZNode is more intuitive and consolidates topic-related state in a single location.
...
- .