ARTEMIS-1925 - allow redistribution with loadbalance type of OFF to e…#3676
ARTEMIS-1925 - allow redistribution with loadbalance type of OFF to e…#3676gtully merged 1 commit intoapache:mainfrom
Conversation
|
-1 This is semantic breaking change for an existing setting and behaviour, e.g. im using OFF to ensure redistribute never occurs, regardless. it should never redistribute. What you're doing is almost making off have almost the same semantic of ON DEMAND. If the current semantic isn't what you need, suggest introducing a new one, to avoid causing a break / semantic change on existing users. |
...pache/activemq/artemis/tests/integration/cluster/distribution/MessageRedistributionTest.java
Outdated
Show resolved
Hide resolved
redistribution is a solution to the problem of stuck messages due to early load balancing at routing time. ON_DEMAND is like STRICT when there are remote consumers, if we only want to go remote when we have stuck messages, then redistribution is the nice answer. the change in semantic, that needs to be communicated for sure, but it need not be a blocker. |
|
I think it should be a blocker. Especially when theres an alternative option thats easily to implement and avoids a break change that is simply adding an additional config option for the new semantic/behaviour |
|
wha do you suggest in terms of configuration? to my mind more configuration in this area is more confusion. |
|
as config: redistribution-delay-when-load-balance-type-off with default -1, it just does not make sense. It is mixing two things. I just don't think the breaking case is worth protecting, just don't enable redistribution-delay if you don't want redistribution. |
|
the issue is loadbalancing and redistribution was intertwined, e.g. most of the time the reason for loadbalancing was in cluster setup and in that scenario you wanted redistribution to occure, its why the other settings such as ON DEMAND also have an effect |
|
The same basic thing was attempted here: I for one would really welcome this change, weather it's a separate option or the default behavior. I see a lot of excessive "forwarding" caused by ON_DEMAND when the feature I am really after is just the redistribution. Br, |
|
@michaelandrepearce re: "the issue is loadbalancing and redistribution was intertwined" is exactly the problem, they should be separate and I want to fix that. Not make it more complicated, simplify. They are already separately configured but intertwined in code. This is a perfect release note . If it is a problem for some existing broken config, then there is existing config that can sort the problem. |
|
I understand you want to do something here, but i still hold strongly especially as no need to break existing setups, can start brining new config values in very safely and mark old as deprecated if eventually we want to retire something in a 3.x release, but this you can easily add your new logic onto that new config. |
|
the "break existing setups" is actually "point out existing broken setups", and I think the existence of such configs is likely to be small. I say that b/c redistribution is enabled (non default) but won't be in play due to the load balance policy. With redistribution being configured, if it now kicks in it will be just a 'fix'. |
|
OFF_DEMAND? It then follow the ON_DEMAND, where LB is on, and distribution is demand based. or even more explicit what it is, could just be: OFF_WITH_DISTRIBUTION |
|
I really think this is a step in the wrong direction, but I will go with OFF_WITH_DISTRIBUTION, which make redistribution conditional on loadbalance type ON_DEMAND or OFF_WITH_DISTRIBUTION && redistribution-delay > 0 To my mind, load balancing happens at routing time, redistribution on a queue with stuck messages. They should be independent. Maybe for 3.0 we can resolve this :-) |
|
There is a new load balance type - OFF_WITH_REDISTRIBUTION that ensures local consumers get priority, ie: no forwarding on initial routing, but the potential to redistribute if configured |
…WITH_REDISTRIBUTION to ensure local consumers get priority, we only optionally redistribute when messages are stuck
|
@michaelandrepearce can you close the loop on this one, thanks! |
|
@gtully should be ok to merge now. |
…nsure local consumers get priority, we only optionally redistribute when messages are stuck