On 25/08/2023 11:44, Andy Seaborne wrote:


On 03/07/2023 14:20, Dave Reynolds wrote:
We have a very strange problem with recent fuseki versions when running (in docker containers) on small machines. Suspect a jetty issue but it's not clear.

 From the threads here, it does seem to be Jetty related.

Yes.

We've followed up on Rob's suggestions for tuning the jetty settings so we can use a stock fuseki. On 4.9.0 if we switch off direct buffer using in jetty altogether the problem does seem to go away. The performance hit we see is small and barely above noise.

We currently have a soak test of leaving direct buffers on but limiting max and retained levels, that looks promising but too early to be sure.

I haven't managed to reproduce the situation on my machine in any sort of predictable way where I can look at what's going on.

Understood. While we can reproduce some effects in desktop test set ups the only real test has been to leave configurations running for days at a time in the real dev setting with all it's monitoring and instrumentation. Which makes testing any changes very painful, let alone deeper investigations.

For Jena5, there will be a switch to a Jetty to use uses jakarta.* packages. That's no more than a rename of imports. The migration EE8->EE9 is only repackaging.  That's Jetty10->Jetty11.

There is now Jetty12. It is a major re-architecture of Jetty including it's network handling for better HTTP/2 and HTTP/3.

If there has been some behaviour of Jetty involved in the memory growth, it is quite unlikely to carried over to Jetty12.

Jetty12 is not a simple switch of artifacts for Fuseki. APIs have changed but it's a step that going to be needed sometime.

If it does not turn out that Fuseki needs a major re-architecture, I think that Jena5 should be based on Jetty12. So far, it looks doable.

Sound promising. Agreed that jetty12 is enough of a new build it's unlikely to have the same behaviour.

We've being testing some of our troublesome queries on 4.9.0 on java 11 vs java 17 and see a 10-15% performance hit on java 17 (even after we take control of the GC by forcing both to use the old parallel GC instead of G1). No idea why, seems wrong! Makes us inclined to stick with java 11 and thus jena 4.x series as long as we can.

Dave

Reply via email to