Guozhang, thanks for the super clear answer. Yes, that's the scenario I was wondering.
On Mon, Dec 8, 2014 at 1:01 PM, Guozhang Wang <wangg...@gmail.com> wrote: > Xiaoyu, > > I think your question is whether the following sequence can happen? > > 1. A received becomes-leader, stop fetching from B. > 2. B received a producer request, and accepts it and append to log. > 3. B received becomes-follower, cap its log and start fetching from A, and > hence the message sent on step 2) will be lost even the producer gets acked > from B. > > Since controller sends the leaderAndIsr request to all the replicas (both > leader and followers) at the same time this is possible to happen with ack > <=1. With ack > 1 since the produce request will not be returned to the > producer until it has been replicated the above scenario will not happen. > > Guozhang > > On Mon, Dec 8, 2014 at 11:29 AM, Gwen Shapira <gshap...@cloudera.com> > wrote: > > > I think that A will not be able to become a follower until B becomes a > > leader. > > > > On Sun, Dec 7, 2014 at 11:07 AM, Xiaoyu Wang <xw...@rocketfuel.com> > wrote: > > > On preferred replica election, controller sends LeaderAndIsr requests > to > > > brokers. Broker will handle the LeaderAndIsr request by either become a > > > leader or become a follower. > > > > > > In the previous case, when A receive the call, it will try to become > the > > > leader and stop fetching from B; when B receive the call, it will try > to > > > become a follower and stop receiving new requests. Is it possible that > A > > > stops fetching before B stops receiving new requests? If this is > > possible, > > > there still may be messages goes to B but not A, right? > > > > > > On Sun, Dec 7, 2014 at 7:20 AM, Thunder Stumpges <tstump...@ntent.com> > > > wrote: > > > > > >> In this case B will return "not leader for partition" error as soon as > > the > > >> leader is re-elected and I imagine the producer will correct itself. > > >> > > >> -Thunder > > >> > > >> > > >> -----Original Message----- > > >> From: Xiaoyu Wang [xw...@rocketfuel.com] > > >> Received: Saturday, 06 Dec 2014, 6:49PM > > >> To: users@kafka.apache.org [users@kafka.apache.org] > > >> Subject: Producer can writes to a follower during preferred lead > > election? > > >> > > >> Hello, > > >> > > >> I am looking at producer code and found that producer updates its > > >> broker/partition info under the two conditions > > >> > > >> 1. has reached the topicMetadataRefreshInterval > > >> 2. failed sending message, before retry > > >> > > >> So, assume we have broker A and B, B is the current lead and A is the > > >> preferred lead and a producer is publishing to B. If someone execute > > >> preferred lead election command now, A will become the new lead and > the > > >> producer won't know the lead is now A and will still writes to B until > > the > > >> metadata refresh interval has been reached. Is this correct? Or did I > > did > > >> miss anything. > > >> > > >> > > >> Thanks. > > >> > > > > > > -- > -- Guozhang >