kafka-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Neha Narkhede" <neha.narkh...@gmail.com>
Subject Re: Review Request 14865: Patch for KAFKA-1097
Date Fri, 01 Nov 2013 16:49:54 GMT


> On Nov. 1, 2013, 4:33 p.m., Jun Rao wrote:
> > core/src/main/scala/kafka/controller/KafkaController.scala, lines 383-387
> > <https://reviews.apache.org/r/14865/diff/4/?file=375158#file375158line383>
> >
> >     In moveReassignedPartitionLeaderIfRequired(), we call partitionStateMachine.handleStateChanges(),
which will use the old assigned replicas. It seems that we need to call updateAssignedReplicasForPartition()
before this step so that we can pick up the new assigned replicas.

>> In moveReassignedPartitionLeaderIfRequired(), we call partitionStateMachine.handleStateChanges(),
which will use the old assigned replicas.

It doesn't. See this

    // change the assigned replica list to just the reassigned replicas in the cache so it
gets sent out on the LeaderAndIsr
    // request to the current or new leader. This will prevent it from adding the old replicas
to the ISR
    val oldAndNewReplicas = controllerContext.partitionReplicaAssignment(topicAndPartition)
    controllerContext.partitionReplicaAssignment.put(topicAndPartition, reassignedReplicas)

We do this before the partitionStateMachine.handleStateChanges() call and it correctly sends
the shrunk assigned replicas.


> On Nov. 1, 2013, 4:33 p.m., Jun Rao wrote:
> > core/src/main/scala/kafka/controller/KafkaController.scala, lines 387-388
> > <https://reviews.apache.org/r/14865/diff/4/?file=375158#file375158line387>
> >
> >     We can use reassignedReplicas for reassignedPartitionContext.newReplicas.

Though both are same, changed it


> On Nov. 1, 2013, 4:33 p.m., Jun Rao wrote:
> > core/src/main/scala/kafka/controller/KafkaController.scala, lines 631-632
> > <https://reviews.apache.org/r/14865/diff/4/?file=375158#file375158line631>
> >
> >     It probably doesn't hurt to send the leaderAndIsr request to both the old and
the new replicas. However, it seems that we really just need to send to the new replicas since
in the caller onPartitionReassignment(), we will be stopping the old replicas immediately
afterwards.

Agree, but I'm afraid I may be missing some corner cases in which case sending more data will
be useful compared to sending less data. 


- Neha


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14865/#review28011
-----------------------------------------------------------


On Oct. 31, 2013, 5:37 p.m., Neha Narkhede wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14865/
> -----------------------------------------------------------
> 
> (Updated Oct. 31, 2013, 5:37 p.m.)
> 
> 
> Review request for kafka.
> 
> 
> Bugs: KAFKA-1097
>     https://issues.apache.org/jira/browse/KAFKA-1097
> 
> 
> Repository: kafka
> 
> 
> Description
> -------
> 
> Addressed Guozhang's comment to reduce the data logged to state change log
> 
> 
> Addressed Jun and Guozhang's review comments
> 
> 
> Rebased after KAFKA-1001 was checked in
> 
> 
> Make a reusable updateLeaderEpoch API
> 
> 
> 1. Reverted changes to test log4j.properties and AdminTest 2. Fixed a bug in moving leader
logic during partition reassignment:
> 
> 
> 1. Changed partition reassignment behavior to first expand the replication factor and
then shrink it. 2. Fixed the reassign partition tool to check for error conditions and improve
logging 3. Did a minor improvement to the patch review tool 4. Changed the version to 0.8.1
since it should be that on trunk
> 
> 
> Revert "kafka-1097, unit tests broken due to kafka-1098"
> 
> This reverts commit 0da98f7e3b5512bdc876438704c6a895e997daee.
> 
> kafka-1097, unit tests broken due to kafka-1098
> 
> 
> Diffs
> -----
> 
>   core/src/main/scala/kafka/admin/ReassignPartitionsCommand.scala 2f706c94d340f1cd715210b3d8b00597d65b5dd0

>   core/src/main/scala/kafka/cluster/Partition.scala d8078bd4e73a8a80be436396765ead4c62d334bd

>   core/src/main/scala/kafka/common/NotAssignedReplicaException.scala PRE-CREATION 
>   core/src/main/scala/kafka/controller/KafkaController.scala 88d130f55997b72a8590e4cfe92857a7320e70d5

>   core/src/main/scala/kafka/controller/ReplicaStateMachine.scala 212c05d65dcdc147e55f90875bacc940e30342bf

>   core/src/main/scala/kafka/server/ReplicaManager.scala 7b8f89edecec446664fb4abe64f5dfafb9aa3120

>   kafka-patch-review.py daf2c3597a81d0d6db574a488f3cf372701fd113 
>   project/Build.scala bcd1ca546b3f081d669892677276a0f19fb1236e 
> 
> Diff: https://reviews.apache.org/r/14865/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Neha Narkhede
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message