Istvan Toth created KNOX-3041: --------------------------------- Summary: Load Balancer backend selection synchronization issue Key: KNOX-3041 URL: https://issues.apache.org/jira/browse/KNOX-3041 Project: Apache Knox Issue Type: Bug Components: Server Reporter: Istvan Toth
I was trying to run a benchmark over Knox, with several Http client instances started at the same time on separate threads. I found that every single client was directed to the same backend, which was saved in the session, so instead of accessing each backend, every request was directed to a single one. While this was a benchmark/load test tool, any non-interactive client can exhibit similar behaviour, defating the point of load balancing. Looking at org.apache.knox.gateway.ha.dispatch.ConfigurableHADispatch.executeRequestWrapper(HttpUriRequest, HttpServletRequest, HttpServletResponse) , I think that the sitation could be improved by calling haProvider.makeNextActiveURLAvailable BEFORE the request is executed. It would be still racy, but the race window would be dramatically smaller, running some simple local code, which should be on the microsecond scale, instead of performing a full HTTP reqest, which is on on the millisecond scale at best. -- This message was sent by Atlassian Jira (v8.20.10#820010)