[
https://issues.apache.org/jira/browse/KAFKA-21110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Lucy Liu reassigned KAFKA-21110:
--------------------------------
Assignee: Lucy Liu (was: Chia-Ping Tsai)
> Document that min.insync.replicas is bounded by the replica count
> -----------------------------------------------------------------
>
> Key: KAFKA-21110
> URL: https://issues.apache.org/jira/browse/KAFKA-21110
> Project: Kafka
> Issue Type: Improvement
> Reporter: Chia-Ping Tsai
> Assignee: Lucy Liu
> Priority: Minor
>
> {code:java}
> public static final String MIN_IN_SYNC_REPLICAS_CONFIG =
> "min.insync.replicas";
> public static final String MIN_IN_SYNC_REPLICAS_DOC = "Specifies the
> <i>minimum</i> number of in-sync replicas (including the leader) " +
> "required for a write to succeed when a producer sets
> <code>acks</code> to \"all\" (or \"-1\"). In the <code>acks=all</code> " +
> "case, every in-sync replica must acknowledge a write for it to be
> considered successful. E.g., if a topic has " +
> "<code>replication.factor</code> of 3 and the ISR set includes all
> three replicas, then all three replicas must acknowledge an " +
> "<code>acks=all</code> write for it to succeed, even if
> <code>min.insync.replicas</code> happens to be less than 3. " +
> "If <code>acks=all</code> and the current ISR set contains fewer than
> <code>min.insync.replicas</code> members, then the producer " +
> "will raise an exception (either <code>NotEnoughReplicas</code> or
> <code>NotEnoughReplicasAfterAppend</code>).<br> " +
> "Regardless of the <code>acks</code> setting, the messages will not
> be visible to the consumers until " +
> "they are replicated to all in-sync replicas and the
> <code>min.insync.replicas</code> condition is met.<br> " +
> "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 ensures 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 changes. Please refer to <a
> href=\"https://kafka.apache.org/documentation/#eligible_leader_replicas\">the
> ELR section</a> for more info.</p>";
> {code}
> Since 3.7.0 (#14594, part of KIP-966), the broker uses
> {{min(min.insync.replicas, replica count)}} as the effective min ISR. This
> applies to both {{acks=all}} produce requests and the high watermark
> advancement, and it is not related to whether ELR is enabled.
> The current doc does not mention this, and it still says the producer gets
> {{NotEnoughReplicas}} when the ISR is smaller than
> {{{}min.insync.replicas{}}}. The ELR note also implies the semantics change
> with ELR, but the ELR section only covers config management rules ...
--
This message was sent by Atlassian Jira
(v8.20.10#820010)