Hello, thank you for the response!
Your explanation makes sense to me. I can try to check without the RDFS inferencer, but we really do need with inference! I also wanted to clarify that the timeout is not triggered by RDF4J server itself, but by the 60-second timeout in the container where we have deployed the server (so there is no error message from the server).
Qualitatively, I can tell you that after server startup, loading the query interface in the RDF4J workbench is extremely slow (takes on the order of multiple minutes to load initially), and HTTP queries to the server take just as long. We have noticed that after a few initial queries, the server memory usage seems to increase dramatically, and once it reaches a plateau, we are able to execute queries very quickly, which leads me to believe your explanation that it needs to cache the forward-chained schema, and begins to do so in earnest once it receives a query.
Because we would like to reduce the startup time of our RDF4J server (and avoid having to manually make queries in order to trigger the caching behavior):
- Can we configure our RDF4J server to preemptively begin the caching process as soon as it starts up?
- We are currently using the in-memory data store; would moving to a native disk store have any meaningful consequences on performance?
- Any other ideas on how to improve query performance or caching time?
- Would you be available/interested in hopping on a short call sometime this week to discuss debugging strategies? I would be very happy to!
Thanks so much for your help!
Jo-Jo