The update rates look to be around 40 updates per second (at least during catch-up, after restarting Fuseki. For regular processing, I’m seeing bursts of many such flurries of updates, at the same time I’m seeing perhaps a dozen queries.
Begin forwarded message: > From: Mark Feblowitz <[email protected]> > Subject: Jena/Fuseki/TDB Java heap space and OutOfMemory errors > Date: May 30, 2014 at 9:36:31 AM EDT > To: "[email protected]" <[email protected]> > > I have a setup where there can be many, rapid-fire updates sent to Jena TDB > via UPDATE posts to Fuseki. > > After some amount of time I see a series of messages after update posts > > WARN [xxxxxx] RC = 500 : Java heap space > > And I’m seeing "java.lang.OutOfMemoryError: Java heap space” errors. > > I’ve bumped heap space to 3072M, on a machine that has 32 GB of memory. > > Can this be dealt with, simply by doubling heap space? Or is there something > about how I’m posting that could be leading to the problem. > > What I’m doing is creating an OntModel in the client, which then posts that > model as an update to Fuseki. Fuseki is configured with TDB and > OWLFBRuleReasoner. > > As I mentioned in my prior posts on retries, there are flurries of posts to > Fuseki, and roughly concurrent queries - often on things that are in the > process of being posted. All of the posts come from a single client, while > the queries come from multiple queries initiated from separately run queries > (from separate JVMs). > > > Here’s a snippet of the console log after a series of other interactions and > errors. I’ll have to save out the entire log (but it will be huge) to > identify the circumstances of the first errors. > > > 00:55:33 INFO [79927] 500 Java heap space (5.393 s) > 00:55:39 INFO [79929] POST http://localhost:3030/km4sp/update > 00:55:43 WARN [79929] RC = 500 : Java heap space > java.lang.OutOfMemoryError: Java heap space > at > org.apache.jena.atlas.io.CharStreamBuffered.<init>(CharStreamBuffered > .java:53) > at org.apache.jena.atlas.io.PeekReader.make(PeekReader.java:81) > at org.apache.jena.atlas.io.PeekReader.make(PeekReader.java:75) > at org.apache.jena.atlas.io.PeekReader.makeUTF8(PeekReader.java:92) > at com.hp.hpl.jena.sparql.lang.UpdateParser.parse(UpdateParser.java:51) > at com.hp.hpl.jena.update.UpdateFactory.make(UpdateFactory.java:278) > at com.hp.hpl.jena.update.UpdateFactory.read(UpdateFactory.java:267) > at > org.apache.jena.fuseki.servlets.SPARQL_Update.execute(SPARQL_Update.j > ava:228) > at > org.apache.jena.fuseki.servlets.SPARQL_Update.executeBody(SPARQL_Upda > te.java:194) > at > org.apache.jena.fuseki.servlets.SPARQL_Update.perform(SPARQL_Update.j > ava:106) > at > org.apache.jena.fuseki.servlets.SPARQL_ServletBase.executeLifecycle(S > PARQL_ServletBase.java:171) > at > org.apache.jena.fuseki.servlets.SPARQL_ServletBase.executeAction(SPAR > QL_ServletBase.java:152) > at > org.apache.jena.fuseki.servlets.SPARQL_ServletBase.execCommonWorker(S > PARQL_ServletBase.java:140) > at > org.apache.jena.fuseki.servlets.SPARQL_ServletBase.doCommon(SPARQL_Se > rvletBase.java:69) > at > org.apache.jena.fuseki.servlets.SPARQL_Update.doPost(SPARQL_Update.ja > va:81) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:755) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) > at > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684 > ) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java > :457) > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandl > er.java:229) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandl > er.java:1075) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java: > 384) > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandle > r.java:193) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandle > r.java:1009) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.j > ava:135) > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper > .java:116) > at org.eclipse.jetty.server.Server.handle(Server.java:370) > at > org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(Abstrac > tHttpConnection.java:489) > at > org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(Blockin > gHttpConnection.java:53) > at > org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpC > onnection.java:960) > at > org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.conten > t(AbstractHttpConnection.java:1021) > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865) > 00:55:45 INFO [79929] 500 Java heap space (5.597 s) > 00:55:51 INFO [79930] POST http://localhost:3030/km4sp/update > 00:56:59 INFO [79928] exec/select >
