> On March 3, 2014, 7:03 p.m., Guozhang Wang wrote: > > core/src/main/scala/kafka/server/ReplicaFetcherThread.scala, line 86 > > <https://reviews.apache.org/r/17537/diff/3/?file=456708#file456708line86> > > > > I am not sure we need to check the unclean election flag here. If we > > can keep the partition as offline for clients in the controller phase, will > > that be sufficient since no data will be appended/consumed from these > > replica logs until that is unblocked? > > > > As for reading the configs, I agree that if we consider per-topic > > configs then we probably need to read it from ZK.
Yes, under normal circumstances the partition would be kept offline until the previous leader is available, which would be sufficient to prevent log truncation from ever being considered. This code was added as an extra safeguard to handle the remote possibility of the config being changed while a replica is offline, which I believe is the only way this code path could be reached. I tried to describe this in the comment below: "This situation could only happen if the unclean election configuration for a topic changes while a replica is down. Otherwise, we should never encounter this situation since a non-ISR leader cannot be elected if disallowed by the broker configuration." In the follow-up patch I'll move this comment above the AdminUtils check so that it's more visible. - Andrew ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/17537/#review35999 ----------------------------------------------------------- On Jan. 30, 2014, 7:45 p.m., Andrew Olson wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/17537/ > ----------------------------------------------------------- > > (Updated Jan. 30, 2014, 7:45 p.m.) > > > Review request for kafka. > > > Bugs: KAFKA-1028 > https://issues.apache.org/jira/browse/KAFKA-1028 > > > Repository: kafka > > > Description > ------- > > KAFKA-1028: per topic configuration of preference for consistency over > availability > > > Diffs > ----- > > core/src/main/scala/kafka/admin/AdminUtils.scala > a167756f0fd358574c8ccb42c5c96aaf13def4f5 > core/src/main/scala/kafka/common/NoReplicaOnlineException.scala > a1e12794978adf79020936c71259bbdabca8ee68 > core/src/main/scala/kafka/controller/KafkaController.scala > a0267ae2670e8d5f365e49ec0fa5db1f62b815bf > core/src/main/scala/kafka/controller/PartitionLeaderSelector.scala > fd9200f3bf941aab54df798bb5899eeb552ea3a3 > core/src/main/scala/kafka/log/LogConfig.scala > 0b32aeeffcd9d4755ac90573448d197d3f729749 > core/src/main/scala/kafka/server/KafkaConfig.scala > 3c3aafc2b3f06fc8f3168a8a9c1e0b08e944c1ef > core/src/main/scala/kafka/server/ReplicaFetcherThread.scala > 73e605eb31bc71642d48b0bb8bd1632fd70b9dca > core/src/test/scala/unit/kafka/integration/RollingBounceTest.scala > b585f0ec0b1c402d95a3b34934dab7545dcfcb1f > core/src/test/scala/unit/kafka/integration/UncleanLeaderElectionTest.scala > PRE-CREATION > core/src/test/scala/unit/kafka/server/KafkaConfigTest.scala > 89c207a3f56c7a7711f8cee6fb277626329882a6 > core/src/test/scala/unit/kafka/utils/TestUtils.scala > 426b1a7bea1d83a64081f2c6b672c88c928713b7 > > Diff: https://reviews.apache.org/r/17537/diff/ > > > Testing > ------- > > > Thanks, > > Andrew Olson > >