Shouldn't attempt math, my bad! Rob
On 16/02/2015 13:29, "Michael Brunnbauer" <[email protected]> wrote: > >Hello Rob, > >thanks again. Both single queries and a big UNION yield reasonable >performance. >So there really seems to be some combinatorial mess. > >Are you sure with 1200! ? This sounds like all permutations of the 1200 >counts are generated. I'd say the normal cross product of 1200 single >counts >only has 1 result. > >Regards, > >Michael Brunnbauer > >On Mon, Feb 16, 2015 at 12:42:21PM +0000, Rob Vesse wrote: >> Michael >> >> Was about to say roughly the same as Andy, btw an incomplete fragment is >> hard to say much about. >> >> Are the sub-queries literally just joined together I.e. no UNION in >>which >> cases Andy's comment are accurate >> >> If so then you are calculating a cross product of all your counts so >>with >> 1200 sub-queries you are going to get 1200! which is a number so big it >> overflows the OS X calculator and the Google calculator reports infinity >> >> Either do separate queries or use UNION to combine the sub-queries which >> will yield you one row with 1200 columns >> >> Rob >> >> >> >> On 16/02/2015 12:11, "Andy Seaborne" <[email protected]> wrote: >> >> >On 16/02/15 12:00, Michael Brunnbauer wrote: >> >> >> >> re >> >> >> >> thanks Rob and Andy - that makes sense! >> >> >> >> What is a bit strange is that the query takes so long. It consists of >> >>ca. 1200 >> >> subselects - each defining a separate binding with a simple query of >>the >> >> form { graph ?g { ?s ?g <uri> }}. Like this: >> >> >> >> { select (count(*) as ?s1091) where { graph ?g { ?s ?p >> >><http://dbpedia.org/resource/Thomas_Mills_Wood>. } }} >> >> { select (count(*) as ?s1092) where { graph ?g { ?s ?p >> >><http://dbpedia.org/resource/John_Wood_(explorer)>. } }} >> >> { select (count(*) as ?s1093) where { graph ?g { ?s ?p >> >><http://sws.geonames.org/2633653/>. } }} >> >> >> >> There are not many named graphs (ca. 7000) and not many triples that >> >>would >> >> match (I guess < 200). Do you think it would be faster to make 1200 >> >>separate >> >> queries instead? >> > >> >That's a cross-product (of one item) for what is essential a bunch of >> >separate queries. I'd look at the optimized algebra to see what >>execute >> >plan it decided on. >> > >> >And a stream of queries is worth trying out. >> > >> > Andy >> > >> >> >> >> Regards, >> >> >> >> Michael Brunnbauer >> >> >> >> On Mon, Feb 16, 2015 at 11:39:20AM +0000, Rob Vesse wrote: >> >>> Michael >> >>> >> >>> The error is coming from Jetty, it simply means that one end of the >> >>> connection was closed. I assume you see this in the Fuseki log? >> >>> >> >>> Most likely your client is timing out and closing the connection >>since >> >>>15 >> >>> minutes for a query to complete is longer than the default timeouts >>of >> >>> most browsers and HTTP clients/API. >> >>> >> >>> Try upping the timeout significantly in your client/browser/API to >> >>> something higher than the expected runtime of the query. >> >>> >> >>> Rob >> >>> >> >>> On 16/02/2015 11:01, "Michael Brunnbauer" <[email protected]> >>wrote: >> >>> >> >>>> >> >>>> hi all, >> >>>> >> >>>> I see this Exception with a very big SPARQL select query (182825 >> >>>>bytes) >> >>>> on a TDB with jena-fuseki-1.0.2-20140315.080253-36. After an >>upgrade >> >>>>to >> >>>> jena-fuseki-1.1.1, the problem is still there. The query used to >>work >> >>>> before >> >>>> but took very long (ca. 900s). >> >>>> >> >>>> What does the error mean? Is my TDB corrupted? >> >>>> >> >>>> 02:50:58 INFO [1] exec/select >> >>>> org.eclipse.jetty.io.EofException >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:9 >>>>>>14 >> >>>>) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.http.AbstractGenerator.flush(AbstractGenerator.java >>>>>>:4 >> >>>>43) >> >>>> at >> >>>>org.eclipse.jetty.server.HttpOutput.flush(HttpOutput.java:100) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.AbstractHttpConnection$Output.flush(Abstract >>>>>>Ht >> >>>>tpC >> >>>> onnection.java:1123) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.ResponseResultSet.output(ResponseResu >>>>>>lt >> >>>>Set >> >>>> .java:303) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.ResponseResultSet.textOutput(Response >>>>>>Re >> >>>>sul >> >>>> tSet.java:249) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.ResponseResultSet.doResponseResultSet >>>>>>$( >> >>>>Res >> >>>> ponseResultSet.java:148) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.ResponseResultSet.doResponseResultSet >>>>>>(R >> >>>>esp >> >>>> onseResultSet.java:89) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.SPARQL_Query.sendResults(SPARQL_Query >>>>>>.j >> >>>>ava >> >>>> :345) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.jav >>>>>>a: >> >>>>242 >> >>>> ) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.SPARQL_Query.executeWithParameter(SPA >>>>>>RQ >> >>>>L_Q >> >>>> uery.java:195) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.jav >>>>>>a: >> >>>>96) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.SPARQL_ServletBase.executeLifecycle(S >>>>>>PA >> >>>>RQL >> >>>> _ServletBase.java:171) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.SPARQL_ServletBase.executeAction(SPAR >>>>>>QL >> >>>>_Se >> >>>> rvletBase.java:152) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.SPARQL_ServletBase.execCommonWorker(S >>>>>>PA >> >>>>RQL >> >>>> _ServletBase.java:140) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.SPARQL_ServletBase.doCommon(SPARQL_Se >>>>>>rv >> >>>>let >> >>>> Base.java:69) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.SPARQL_Query.doPost(SPARQL_Query.java >>>>>>:5 >> >>>>7) >> >>>> 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$CachedChain.doFilter(Servlet >>>>>>Ha >> >>>>ndl >> >>>> er.java:1496) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.j >>>>>>av >> >>>>a:8 >> >>>> 2) >> >>>> at >> >>>> org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:256) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet >>>>>>Ha >> >>>>ndl >> >>>> er.java:1467) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java >>>>>>:4 >> >>>>99) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandl >>>>>>er >> >>>>.ja >> >>>> va:229) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandl >>>>>>er >> >>>>.ja >> >>>> va:1086) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java: >>>>>>42 >> >>>>8) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandle >>>>>>r. >> >>>>jav >> >>>> a:193) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandle >>>>>>r. >> >>>>jav >> >>>> a:1020) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.j >>>>>>av >> >>>>a:1 >> >>>> 35) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper >>>>>>.j >> >>>>ava >> >>>> :116) >> >>>> at org.eclipse.jetty.server.Server.handle(Server.java:370) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(Abstrac >>>>>>tH >> >>>>ttp >> >>>> Connection.java:494) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpC >>>>>>on >> >>>>nec >> >>>> tion.java:982) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.conten >>>>>>t( >> >>>>Abs >> >>>> tractHttpConnection.java:1043) >> >>>> at >> >>>> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865) >> >>>> at >> >>>> >>org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnecti >>>>>>on >> >>>>.ja >> >>>> va:82) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEn >>>>>>dP >> >>>>oin >> >>>> t.java:667) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEnd >>>>>>Po >> >>>>int >> >>>> .java:52) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPoo >>>>>>l. >> >>>>jav >> >>>> a:608) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool >>>>>>.j >> >>>>ava >> >>>> :543) >> >>>> at java.lang.Thread.run(Thread.java:745) >> >>>> Caused by: java.io.IOException: Broken pipe >> >>>> at sun.nio.ch.FileDispatcherImpl.write0(Native Method) >> >>>> at >>sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) >> >>>> at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) >> >>>> at sun.nio.ch.IOUtil.write(IOUtil.java:51) >> >>>> at >> >>>>sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:487) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.io.nio.ChannelEndPoint.flush(ChannelEndPoint.java:2 >>>>>>93 >> >>>>) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.io.nio.SelectChannelEndPoint.flush(SelectChannelEnd >>>>>>Po >> >>>>int >> >>>> .java:401) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:8 >>>>>>50 >> >>>>) >> >>>> ... 43 more >> >>>> 02:51:01 ERROR Internal error >> >>>> java.lang.IllegalStateException: Committed >> >>>> at >> >>>> org.eclipse.jetty.server.Response.resetBuffer(Response.java:1154) >> >>>> at >> >>>>org.eclipse.jetty.server.Response.sendError(Response.java:317) >> >>>> at >> >>>>org.eclipse.jetty.server.Response.sendError(Response.java:419) >> >>>> at >> >>>> >> >>>>>>javax.servlet.http.HttpServletResponseWrapper.sendError(HttpServletRe >>>>>>sp >> >>>>ons >> >>>> eWrapper.java:164) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.HttpServletResponseTracker.sendError( >>>>>>Ht >> >>>>tpS >> >>>> ervletResponseTracker.java:53) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.ServletBase.responseSendError(Servlet >>>>>>Ba >> >>>>se. >> >>>> java:73) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.SPARQL_ServletBase.doCommon(SPARQL_Se >>>>>>rv >> >>>>let >> >>>> Base.java:82) >> >>>> at >> >>>> >> >>>>>>org.apache.jena.fuseki.servlets.SPARQL_Query.doPost(SPARQL_Query.java >>>>>>:5 >> >>>>7) >> >>>> 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$CachedChain.doFilter(Servlet >>>>>>Ha >> >>>>ndl >> >>>> er.java:1496) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.j >>>>>>av >> >>>>a:8 >> >>>> 2) >> >>>> at >> >>>> org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:256) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet >>>>>>Ha >> >>>>ndl >> >>>> er.java:1467) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java >>>>>>:4 >> >>>>99) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandl >>>>>>er >> >>>>.ja >> >>>> va:229) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandl >>>>>>er >> >>>>.ja >> >>>> va:1086) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java: >>>>>>42 >> >>>>8) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandle >>>>>>r. >> >>>>jav >> >>>> a:193) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandle >>>>>>r. >> >>>>jav >> >>>> a:1020) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.j >>>>>>av >> >>>>a:1 >> >>>> 35) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper >>>>>>.j >> >>>>ava >> >>>> :116) >> >>>> at org.eclipse.jetty.server.Server.handle(Server.java:370) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(Abstrac >>>>>>tH >> >>>>ttp >> >>>> Connection.java:494) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpC >>>>>>on >> >>>>nec >> >>>> tion.java:982) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.conten >>>>>>t( >> >>>>Abs >> >>>> tractHttpConnection.java:1043) >> >>>> at >> >>>> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865) >> >>>> at >> >>>> >>org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnecti >>>>>>on >> >>>>.ja >> >>>> va:82) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEn >>>>>>dP >> >>>>oin >> >>>> t.java:667) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEnd >>>>>>Po >> >>>>int >> >>>> .java:52) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPoo >>>>>>l. >> >>>>jav >> >>>> a:608) >> >>>> at >> >>>> >> >>>>>>org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool >>>>>>.j >> >>>>ava >> >>>> :543) >> >>>> at java.lang.Thread.run(Thread.java:745) >> >>>> >> >>>> Regards, >> >>>> >> >>>> Michael Brunnbauer >> >>>> >> >>>> -- >> >>>> ++ Michael Brunnbauer >> >>>> ++ netEstate GmbH >> >>>> ++ Geisenhausener Straße 11a >> >>>> ++ 81379 München >> >>>> ++ Tel +49 89 32 19 77 80 >> >>>> ++ Fax +49 89 32 19 77 89 >> >>>> ++ E-Mail [email protected] >> >>>> ++ http://www.netestate.de/ >> >>>> ++ >> >>>> ++ Sitz: München, HRB Nr.142452 (Handelsregister B München) >> >>>> ++ USt-IdNr. DE221033342 >> >>>> ++ Geschäftsführer: Michael Brunnbauer, Franz Brunnbauer >> >>>> ++ Prokurist: Dipl. Kfm. (Univ.) Markus Hendel >> >>> >> >>> >> >>> >> >> >> > >> >> >> > >-- >++ Michael Brunnbauer >++ netEstate GmbH >++ Geisenhausener Straße 11a >++ 81379 München >++ Tel +49 89 32 19 77 80 >++ Fax +49 89 32 19 77 89 >++ E-Mail [email protected] >++ http://www.netestate.de/ >++ >++ Sitz: München, HRB Nr.142452 (Handelsregister B München) >++ USt-IdNr. DE221033342 >++ Geschäftsführer: Michael Brunnbauer, Franz Brunnbauer >++ Prokurist: Dipl. Kfm. (Univ.) Markus Hendel
