Open JessicaLHartog opened 6 years ago
Possible solutions:
REBALANCING
state, and if there are stop suppressing Offers.Positive(s):
:do-rebalance
.Negative(s):
REBALANCING
state, the only way out of it is to resubmit the topology).Positive(s):
Negative(s):
_offersLock
in the first round of scheduling where we have topologies that need assignment, revive and collect Offers, then use them.Positives(s):
Negative(s):
After the merging of #200 and #213 rebalance of topologies no longer does anything. This is because there are no offers on which slots can be made when a rebalance happens unless there happen to also be other topologies needing assignments.
This is as a result of the way that Nimbus handles the
TopologiesMissingAssignments
component. A quick rundown of what now happens is:storm-mesos
does scheduling of topologies until no topologies need assignments since no topologies need assignments, offers are suppressedstorm-mesos
doesn't do anything inMesosNimbus
because no topologies need assignments (and offers are already suppressed):do-rebalance
event is scheduled some number of seconds in the futureallSlotsAvailableForScheduling
returns after reviving offersNimbus
wants slots immediately for the rebalancing topology on, and there's no time for offers to come in and be used in the nextallSlotsAvailableForScheduling
callNotably, if there are other topologies needing assignments at the same time as the
:do-rebalance
is executed, then the rebalance should work as expected.This also is simply referring to the Storm UI "Rebalance" and its associated command. I have not tested this with the type of rebalance mentioned in the Storm documentation:
However, I fully expect they hit the same logic in the Nimbus and this same behavior (or something similar) happens that way too.