You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by ij...@apache.org on 2016/06/29 20:58:53 UTC
kafka git commit: KAFKA-3761; Remove BrokerState "RunningAsController"
Repository: kafka
Updated Branches:
refs/heads/trunk 10abe858b -> cf03f349c
KAFKA-3761; Remove BrokerState "RunningAsController"
The reasons to remove it are:
1. It's currently broken. The purpose of the [JIRA](https://issues.apache.org/jira/browse/KAFKA-3761) was to report that the RunningAsController state gets overwritten back to "RunningAsBroker".
2. It's not a useful state.
a. If clients want to use this metric to know whether a broker is ready to receive requests or not, they do not care whether or not the broker is the controller
b. there is already a separate boolean property, KafkaController.isActive which contains this information.
Author: Roger Hoover <ro...@gmail.com>
Reviewers: Grant Henke <gr...@gmail.com>, Ismael Juma <is...@juma.me.uk>
Closes #1437 from theduderog/KAFKA-3761-broker-state
Project: http://git-wip-us.apache.org/repos/asf/kafka/repo
Commit: http://git-wip-us.apache.org/repos/asf/kafka/commit/cf03f349
Tree: http://git-wip-us.apache.org/repos/asf/kafka/tree/cf03f349
Diff: http://git-wip-us.apache.org/repos/asf/kafka/diff/cf03f349
Branch: refs/heads/trunk
Commit: cf03f349caa92592ec42c7864b7f9d9ef21fee94
Parents: 10abe85
Author: Roger Hoover <ro...@gmail.com>
Authored: Wed Jun 29 22:58:45 2016 +0200
Committer: Ismael Juma <is...@juma.me.uk>
Committed: Wed Jun 29 22:58:45 2016 +0200
----------------------------------------------------------------------
.../scala/kafka/controller/KafkaController.scala | 1 -
core/src/main/scala/kafka/server/BrokerStates.scala | 16 +++++++---------
docs/upgrade.html | 6 ++++++
3 files changed, 13 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kafka/blob/cf03f349/core/src/main/scala/kafka/controller/KafkaController.scala
----------------------------------------------------------------------
diff --git a/core/src/main/scala/kafka/controller/KafkaController.scala b/core/src/main/scala/kafka/controller/KafkaController.scala
index 1584cc9..8b89c8d 100755
--- a/core/src/main/scala/kafka/controller/KafkaController.scala
+++ b/core/src/main/scala/kafka/controller/KafkaController.scala
@@ -337,7 +337,6 @@ class KafkaController(val config : KafkaConfig, zkUtils: ZkUtils, val brokerStat
// register the partition change listeners for all existing topics on failover
controllerContext.allTopics.foreach(topic => partitionStateMachine.registerPartitionChangeListener(topic))
info("Broker %d is ready to serve as the new controller with epoch %d".format(config.brokerId, epoch))
- brokerState.newState(RunningAsController)
maybeTriggerPartitionReassignment()
maybeTriggerPreferredReplicaElection()
/* send partition leadership info to all live brokers */
http://git-wip-us.apache.org/repos/asf/kafka/blob/cf03f349/core/src/main/scala/kafka/server/BrokerStates.scala
----------------------------------------------------------------------
diff --git a/core/src/main/scala/kafka/server/BrokerStates.scala b/core/src/main/scala/kafka/server/BrokerStates.scala
index e6ee77e..2b66beb 100644
--- a/core/src/main/scala/kafka/server/BrokerStates.scala
+++ b/core/src/main/scala/kafka/server/BrokerStates.scala
@@ -32,14 +32,13 @@ package kafka.server
* +-----+-----+ | +----+------------+
* | +>+RecoveringFrom |
* v |UncleanShutdown |
- * +----------+ +-----+-----+ +-------+---------+
- * |RunningAs | |RunningAs | |
- * |Controller+<--->+Broker +<-----------+
- * +----------+ +-----+-----+
- * | |
- * | v
- * | +-----+------------+
- * |-----> |PendingControlled |
+ * +-------+-------+ +-------+---------+
+ * |RunningAsBroker| |
+ * +-------+-------+<-----------+
+ * |
+ * v
+ * +-----+------------+
+ * |PendingControlled |
* |Shutdown |
* +-----+------------+
* |
@@ -61,7 +60,6 @@ case object NotRunning extends BrokerStates { val state: Byte = 0 }
case object Starting extends BrokerStates { val state: Byte = 1 }
case object RecoveringFromUncleanShutdown extends BrokerStates { val state: Byte = 2 }
case object RunningAsBroker extends BrokerStates { val state: Byte = 3 }
-case object RunningAsController extends BrokerStates { val state: Byte = 4 }
case object PendingControlledShutdown extends BrokerStates { val state: Byte = 6 }
case object BrokerShuttingDown extends BrokerStates { val state: Byte = 7 }
http://git-wip-us.apache.org/repos/asf/kafka/blob/cf03f349/docs/upgrade.html
----------------------------------------------------------------------
diff --git a/docs/upgrade.html b/docs/upgrade.html
index a9a1443..9807bcb 100644
--- a/docs/upgrade.html
+++ b/docs/upgrade.html
@@ -17,6 +17,12 @@
<h3><a id="upgrade" href="#upgrade">1.5 Upgrading From Previous Versions</a></h3>
+<h5><a id="upgrade_1010_notable" href="#upgrade_1010_notable">Notable changes in 0.10.1.0</a></h5>
+
+<ul>
+ <li> The BrokerState "RunningAsController" (value 4) has been removed. Due to a bug, a broker would only be in this state briefly before transitioning out of it and hence the impact of the removal should be minimal. The recommended way to detect if a given broker is the controller is via the kafka.controller:type=KafkaController,name=ActiveControllerCount metric. </li>
+</ul>
+
<h4><a id="upgrade_10" href="#upgrade_10">Upgrading from 0.8.x or 0.9.x to 0.10.0.0</a></h4>
0.10.0.0 has <a href="#upgrade_10_breaking">potential breaking changes</a> (please review before upgrading) and
there may be a <a href="#upgrade_10_performance_impact">performance impact during the upgrade</a>. Because new protocols