You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by Nag Y <an...@gmail.com> on 2020/07/07 07:39:18 UTC

NotEnoughReplicasException: The size of the current ISR Set(2) is insufficient to satisfy the min.isr requirement of 3

I had the following setup Brokers : 3 - all are up and running with
min.insync.replicas=3.

I created a topic with the following configuration

bin\windows\kafka-topics --zookeeper 127.0.0.1:2181 --topic topic-ack-all
--create --partitions 4 --replication-factor 3

I triggered the producer with "ack = all" and producer is able to send the
message. However, the problem starts when i start the consumer

bin\windows\kafka-console-consumer --bootstrap-server
localhost:9094,localhost:9092 --topic topic-ack-all --from-beginning

The error is

NotEnoughReplicasException: The size of the current ISR Set(2) is
insufficient to satisfy the min.isr requirement of 3
NotEnoughReplicasException:The size of the current ISR Set(3) is
insufficient to satisfy the min.isr requirement of 3 for partition __con

I see two kinds of errors here . I went though the documentation and had
also understaning about "min.isr", However, these error messages are not
clear .

   1. What does it mean by current ISR set ? Is it different for each topic
   and what it signifies ?
   2. I guess min.isr is same as min.insync.replicas . I hope is should
   have value at least same as "replication factor" ?

Re: NotEnoughReplicasException: The size of the current ISR Set(2) is insufficient to satisfy the min.isr requirement of 3

Posted by Nag Y <an...@gmail.com>.
Thanks Liam, so the phrase "  current ISR set " in the warning refers to
ISR set that is being shown as kafka-topics describe command ?
And also, should the "maximum" value of " min.insync.replicas" be
(replication factor - 1 ) - I mean min.insync.replicas should not be same
as " replication factor" .

Please confirm

On Tue, Jul 7, 2020 at 1:22 PM Liam Clarke-Hutchinson <
liam.clarke@adscale.co.nz> wrote:

> Hi Nag,
>
> ISR is the replicas that are in sync with the leader, and there's a
> different ISR set for each partition of a given topic. If you use
> `kafka/bin/kafka-topics --describe --topic <X>` it'll show you the replicas
> and ISR for each partition.
>
> min.insync.replicas and replication factor are all about preventing data
> loss. Generally I set min ISR to 2 for a topic with a replication factor of
> 3 so that one down or struggling broker doesn't prevent producers writing
> to topics, but I still have a replica of the data in case the broker acting
> as leader goes down - a new partition leader can only be elected from the
> insync replicas.
>
> On Tue, Jul 7, 2020 at 7:39 PM Nag Y <an...@gmail.com> wrote:
>
> > I had the following setup Brokers : 3 - all are up and running with
> > min.insync.replicas=3.
> >
> > I created a topic with the following configuration
> >
> > bin\windows\kafka-topics --zookeeper 127.0.0.1:2181 --topic
> topic-ack-all
> > --create --partitions 4 --replication-factor 3
> >
> > I triggered the producer with "ack = all" and producer is able to send
> the
> > message. However, the problem starts when i start the consumer
> >
> > bin\windows\kafka-console-consumer --bootstrap-server
> > localhost:9094,localhost:9092 --topic topic-ack-all --from-beginning
> >
> > The error is
> >
> > NotEnoughReplicasException: The size of the current ISR Set(2) is
> > insufficient to satisfy the min.isr requirement of 3
> > NotEnoughReplicasException:The size of the current ISR Set(3) is
> > insufficient to satisfy the min.isr requirement of 3 for partition __con
> >
> > I see two kinds of errors here . I went though the documentation and had
> > also understaning about "min.isr", However, these error messages are not
> > clear .
> >
> >    1. What does it mean by current ISR set ? Is it different for each
> topic
> >    and what it signifies ?
> >    2. I guess min.isr is same as min.insync.replicas . I hope is should
> >    have value at least same as "replication factor" ?
> >
>

Re: NotEnoughReplicasException: The size of the current ISR Set(2) is insufficient to satisfy the min.isr requirement of 3

Posted by Nag Y <an...@gmail.com>.
Thanks Liam, so the phrase "  current ISR set " in the warning refers to
ISR set that is being shown as kafka-topics describe command ?
And also, should the "maximum" value of " min.insync.replicas" be
(replication factor - 1 ) - I mean min.insync.replicas should not be same
as " replication factor" .

Please confirm

On Tue, Jul 7, 2020 at 1:22 PM Liam Clarke-Hutchinson <
liam.clarke@adscale.co.nz> wrote:

> Hi Nag,
>
> ISR is the replicas that are in sync with the leader, and there's a
> different ISR set for each partition of a given topic. If you use
> `kafka/bin/kafka-topics --describe --topic <X>` it'll show you the replicas
> and ISR for each partition.
>
> min.insync.replicas and replication factor are all about preventing data
> loss. Generally I set min ISR to 2 for a topic with a replication factor of
> 3 so that one down or struggling broker doesn't prevent producers writing
> to topics, but I still have a replica of the data in case the broker acting
> as leader goes down - a new partition leader can only be elected from the
> insync replicas.
>
> On Tue, Jul 7, 2020 at 7:39 PM Nag Y <an...@gmail.com> wrote:
>
> > I had the following setup Brokers : 3 - all are up and running with
> > min.insync.replicas=3.
> >
> > I created a topic with the following configuration
> >
> > bin\windows\kafka-topics --zookeeper 127.0.0.1:2181 --topic
> topic-ack-all
> > --create --partitions 4 --replication-factor 3
> >
> > I triggered the producer with "ack = all" and producer is able to send
> the
> > message. However, the problem starts when i start the consumer
> >
> > bin\windows\kafka-console-consumer --bootstrap-server
> > localhost:9094,localhost:9092 --topic topic-ack-all --from-beginning
> >
> > The error is
> >
> > NotEnoughReplicasException: The size of the current ISR Set(2) is
> > insufficient to satisfy the min.isr requirement of 3
> > NotEnoughReplicasException:The size of the current ISR Set(3) is
> > insufficient to satisfy the min.isr requirement of 3 for partition __con
> >
> > I see two kinds of errors here . I went though the documentation and had
> > also understaning about "min.isr", However, these error messages are not
> > clear .
> >
> >    1. What does it mean by current ISR set ? Is it different for each
> topic
> >    and what it signifies ?
> >    2. I guess min.isr is same as min.insync.replicas . I hope is should
> >    have value at least same as "replication factor" ?
> >
>

Re: NotEnoughReplicasException: The size of the current ISR Set(2) is insufficient to satisfy the min.isr requirement of 3

Posted by Liam Clarke-Hutchinson <li...@adscale.co.nz>.
Hi Nag,

ISR is the replicas that are in sync with the leader, and there's a
different ISR set for each partition of a given topic. If you use
`kafka/bin/kafka-topics --describe --topic <X>` it'll show you the replicas
and ISR for each partition.

min.insync.replicas and replication factor are all about preventing data
loss. Generally I set min ISR to 2 for a topic with a replication factor of
3 so that one down or struggling broker doesn't prevent producers writing
to topics, but I still have a replica of the data in case the broker acting
as leader goes down - a new partition leader can only be elected from the
insync replicas.

On Tue, Jul 7, 2020 at 7:39 PM Nag Y <an...@gmail.com> wrote:

> I had the following setup Brokers : 3 - all are up and running with
> min.insync.replicas=3.
>
> I created a topic with the following configuration
>
> bin\windows\kafka-topics --zookeeper 127.0.0.1:2181 --topic topic-ack-all
> --create --partitions 4 --replication-factor 3
>
> I triggered the producer with "ack = all" and producer is able to send the
> message. However, the problem starts when i start the consumer
>
> bin\windows\kafka-console-consumer --bootstrap-server
> localhost:9094,localhost:9092 --topic topic-ack-all --from-beginning
>
> The error is
>
> NotEnoughReplicasException: The size of the current ISR Set(2) is
> insufficient to satisfy the min.isr requirement of 3
> NotEnoughReplicasException:The size of the current ISR Set(3) is
> insufficient to satisfy the min.isr requirement of 3 for partition __con
>
> I see two kinds of errors here . I went though the documentation and had
> also understaning about "min.isr", However, these error messages are not
> clear .
>
>    1. What does it mean by current ISR set ? Is it different for each topic
>    and what it signifies ?
>    2. I guess min.isr is same as min.insync.replicas . I hope is should
>    have value at least same as "replication factor" ?
>