Did you try the new Go proxy? How could I test persistent
connections handling?--
  Michele Sciabarra
  [email protected]



On Wed, Jul 4, 2018, at 8:35 PM, Markus Thoemmes wrote:
> Hi all,
>
> fixing the subtle bugs in HttpUtils has lead to quite an odyssey. We
> needed to roll back the changes mostly because of latency regressions> being 
> caught by the tests in the main repository.
>
> These regressions seemed to have been applying only to runtimes !=
> node.js, which caused me to investigate into those. My theory is that> 
> neither our Python proxy (used by Swift etc. as well) nor the
> Java proxy> properly support persistent connections today. Handling requests
> properly on the client-side (closing the entity stream) turned out to> add a 
> whole lot of latency only for those runtimes (10-20m per
> request).>
> I then went ahead and disabled connection reuse in total (it shouldn't> be 
> working correctly today anyway, due to the missing closes). That
> brought the latency back to normal through all runtimes.
>
> The good sideeffect of that is, that resolves any issues of checking
> connections for staleness and/or them breaking because of the pause/
> resume lifecycle discussed in this thread. The added latency of always> 
> establishing a new connection were not measurable in the
> latency tests.> They are probably <= 1ms. Compared to the added benefit of
> always being> "correct" and enabling us to implement the other bugfixes 
> needed in
> HttpUtils (properly closing responses and entities), I feel like we
> should disable connection reuse until we find that to be a bottleneck> that 
> warrants the added complexity of handling their lifecycle
> properly> (as discussed here).
>
> The new implementation is to be found here:
> https://github.com/apache/incubator-openwhisk/pull/3843
>
> Cheers
> -mt
>

Reply via email to