Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,8 @@
"When used together, <code>min.insync.replicas</code> and <code>acks</code> allow you to enforce greater durability guarantees. " +
"A typical scenario would be to create a topic with a replication factor of 3, " +
"set <code>min.insync.replicas</code> to 2, and produce with <code>acks</code> of \"all\". " +
"This will ensure that a majority of replicas must persist a write before it's considered successful by the producer and it's visible to consumers.";
"This will ensure that a majority of replicas must persist a write before it's considered successful by the producer and it's visible to consumers." +
"<p> Note that when the Eligible Leader Replicas feature is enabled, the semantics of this config has small changes. Please refer to <a href=\"#eligible_leader_replicas\">the ELR section</a> for more info.</p>" ;

Check notice on line 185 in clients/src/main/java/org/apache/kafka/common/config/TopicConfig.java

View workflow job for this annotation

GitHub Actions / build / Compile and Check (Merge Ref)

Checkstyle error

';' is preceded with whitespace.

public static final String COMPRESSION_TYPE_CONFIG = "compression.type";
public static final String COMPRESSION_TYPE_DOC = "Specify the final compression type for a given topic. " +
Expand Down
11 changes: 9 additions & 2 deletions docs/ops.html
Original file line number Diff line number Diff line change
Expand Up @@ -4499,8 +4499,15 @@ <h4 class="anchor-heading"><a id="eligible_leader_replicas_upgrade" class="ancho

<h4 class="anchor-heading"><a id="eligible_leader_replicas_tool" class="anchor-link"></a><a href="#eligible_leader_replicas_tool">Tool</a></h4>
<p>The ELR fields can be checked through the API DescribeTopicPartitions. The admin client can fetch the ELR info by describing the topics.
Also note that, if <code>min.insync.replicas</code> is updated for a topic, the ELR field will be cleaned. If cluster default min ISR is updated,
all the ELR fields will be cleaned.</p>
Note that when the ELR feature is enabled:
<ul>
<li>The override of <code>min.insync.replicas</code> in broker-level will be removed.</li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will be removed -> is removed

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We probably also want to warn the users that if they previously only set min.insync.replicas at the broker level, once they enable ELR, this info will be lost and they need to reset that at the cluster level.

Is the above correct @CalvinConfluent ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added
The previously set <code>min.insync.replicas</code> value at the broker-level config will be removed.

<li>The alter of <code>min.insync.replicas</code> config in broker-level is not allowed.</li>
<li>The removal of <code>min.insync.replicas</code> config in cluster-level is not allowed.</li>
<li>If <code>min.insync.replicas</code> is updated for a topic, the ELR field will be cleaned.</li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we switch to present tense? Also what does will be cleaned means exactly?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It means the ELR state in the controller side will be empty(reset) because the new updated min ISR makes the existing ELR state invalid. @CalvinConfluent , is my understanding correct?

Is it hard to understand for users? Maybe change to
If <code>min.insync.replicas</code> is updated for a topic, the ELR state will be reset.?

<li>If the cluster default <code>min.insync.replicas</code> is updated, all the ELR fields will be cleaned.</li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto

</ul>
</p>

</script>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -611,7 +611,7 @@ int getStaticallyConfiguredMinInsyncReplicas() {

/**
* Generate any configuration records that are needed to make it safe to enable ELR.
* Specifically, we need to remove all cluster-level configurations for min.insync.replicas,
* Specifically, we need to remove all broker-level configurations for min.insync.replicas,
* and create a cluster-level configuration for min.insync.replicas. It is always safe to call
* this function if ELR is already enabled; it will simply do nothing if the necessary
* configurations already exist.
Expand Down
Loading