In our case, the minimum in-sync replicas is set to 2. Given that, what will be expected behavior for the scenario I outlined?
Sincerely, Anindya Haldar Oracle Responsys > On Jan 15, 2020, at 6:38 AM, Ismael Juma <ism...@juma.me.uk> wrote: > > To all the in-sync replicas. You can set the minimum number of in-sync > replicas via the min.insync.replicas topic/broker config. > > Ismael > > On Tue, Jan 14, 2020 at 11:11 AM Anindya Haldar <anindya.hal...@oracle.com> > wrote: > >> I have a question related to the semantics of a producer send and the get >> calls on the future returned by the send call. >> >> - It is a Java application, using the Kafka Java client library >> - The application is set up to use 3 replicas and using acks=all for the >> producer >> - the application is using a non-zero value for linger.ms and batch.size >> parameters >> - The application is using a single non-transactional Kafka producer >> instance, shared across a number of threads >> >> With that, >> >> - Any application thread makes a send() call on the producer. >> - Then the same thread calls get() on the future returned by the last >> send() call >> - The get() call on the future returns after it gets the acknowledgement >> from the system for the message send >> >> At this point, is it guaranteed that the message has actually been written >> (but may not be committed by calling fsync) to ALL of the replicas’ >> filesystems? >> >> Sincerely, >> Anindya Haldar >> Oracle Responsys >> >>