We may have an concurrency issue here, when multiple Storm client requests cause topologies to be killed or added. rebalanceRates() will be called from those threads. It will likely that we have incorrect throttle values then.