Versions Compared

Key

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

...

Current state: "Under Discussion"

Discussion thread: here

JIRA: KAFKA-19577

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

...

Code Block
languagejava
    public static final String REPLICA_PLACER_CLASS_NAME = "replica.placer.class.name";
    public static final String REPLICA_PLACER_CLASS_NAME_DEFAULT = StripedReplicaPlacer.class.getName();
    public static final String REPLICA_PLACER_CLASS_NAME_DOC = "The fully qualified class name of the ReplicaPlacer implementation. This class is used by the broker to determine the placement of replicas when topics or partitions are created.";

Update the ReplicaPlacer Interface, which need to extend Configurable, Closeable

Code Block
languagejava
package org.apache.kafka.metadata.placement;

import org.apache.kafka.common.annotation.InterfaceStability;
import org.apache.kafka.common.errors.InvalidReplicationFactorException;


/**
 * The interface which a Kafka replica placement policy must implement.
 */
@InterfaceStability.Unstable
public interface ReplicaPlacer extends Configurable, Closeable {
    /**
     * Create a new replica placement.
     *
     * @param placement     What we're trying to place.
     * @param cluster       A description of the cluster we're trying to place in.
     *
     * @return              A topic assignment.
     *
     * @throws InvalidReplicationFactorException    If too many replicas were requested.
     */
    TopicAssignment place(
        PlacementSpec placement,
        ClusterDescriber cluster
    ) throws InvalidReplicationFactorException;
}

Compatibility, Deprecation, and Migration Plan

...