You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Martin Weitzel <tr...@googlemail.com> on 2011/11/23 18:34:40 UTC

SPARQL queries getting slower execution by execution: com.hp.hpl.jena.reasoner.rulesys.impl.LPBRuleEngine.activeInterpreters

Hi there,

I am investigating a issue similar to this one:
http://tech.groups.yahoo.com/group/jena-dev/message/45210

My in-memory (tried TDB as well) InfModel is working just fine the first
"run" (each run ~60 queries). The Queries could surely be optimized, but
actually the execution time would be sufficient: Each time round about
20-70ms. However, I created a testing suite that triggers 8 parallel "runs"
(each with 60 or more query executions) in order to simulate the
expected future usage of my web application.

Each run, the execution times raise about 30-50% (an because of
concurrency, the blockingtime of each thread gets mean). When I look
at com.hp.hpl.jena.reasoner.rulesys.impl.LPBRuleEngine.activeInterpreters
after several of these runs, the  activeInterpreters count is extremly high
(hundrets of thousands or even millions): This is probably the cause for
the raise in execution times.

At first I suspected my crappy Query as cause of defect, but I stripped
nearly everything (custom properties etc.) and the issue stays the same,
only now in a smaller scale. Each run adds "only" 100 activeInterpreters
there.

So, I have not a clue how to stop this behaviour. I expect a steady
performance of my knowledge base. I would appreciate any hints!

Relevant code snippets:

* Model creation: http://pastebin.com/xdZQhhqT
* Query (stripped from nearly everything): http://pastebin.com/CXuHTEwg
* Query execution: http://pastebin.com/3YnEQVUv

I tried both the latest Developmentsnapshot and the latest stable version
or Jena and ARQ

Bye,

-- Martin

Re: SPARQL queries getting slower execution by execution: com.hp.hpl.jena.reasoner.rulesys.impl.LPBRuleEngine.activeInterpreters

Posted by Martin Weitzel <me...@mweitzel.com>.
Hi Dave,

Thank you for your efforts!

-- Martin

2011/11/23 Dave Reynolds <da...@gmail.com>

> On Wed, 2011-11-23 at 18:47 +0100, Martin Weitzel wrote:
> > Hm, now that I thought about it: I currently do not need any inferencing,
> > so I could relinquish the InfModel: The RuleEngine probably won't be
> > used then  (I think; I have to try this one out).
>
> I was just about to respond asking about why you don't seem to be
> supplying any rules to the rule engine.
>
> > But I suppose some time in the future I may need at least some basic owl
> > inferencing, so the problem stays.
>
> Indeed. There was a report of a similar problem a while ago but,
> checking for the Jira, it seems to have fallen through the cracks.
> Apologies for that.
>
> I've now raised a Jira for it (JENA-168) and will try to allocate time
> to look at it. If you are not blocked for now that is good.
>
> Dave
>
> >
> >
> > -- Martin
> >
> > 2011/11/23 Martin Weitzel <tr...@googlemail.com>
> >
> > > Hi there,
> > >
> > > I am investigating a issue similar to this one:
> > > http://tech.groups.yahoo.com/group/jena-dev/message/45210
> > >
> > > My in-memory (tried TDB as well) InfModel is working just fine the
> first
> > > "run" (each run ~60 queries). The Queries could surely be optimized,
> but
> > > actually the execution time would be sufficient: Each time round about
> > > 20-70ms. However, I created a testing suite that triggers 8 parallel
> "runs"
> > > (each with 60 or more query executions) in order to simulate the
> > > expected future usage of my web application.
> > >
> > > Each run, the execution times raise about 30-50% (an because of
> > > concurrency, the blockingtime of each thread gets mean). When I look
> > > at
> com.hp.hpl.jena.reasoner.rulesys.impl.LPBRuleEngine.activeInterpreters
> > > after several of these runs, the  activeInterpreters count is extremly
> high
> > > (hundrets of thousands or even millions): This is probably the cause
> for
> > > the raise in execution times.
> > >
> > > At first I suspected my crappy Query as cause of defect, but I stripped
> > > nearly everything (custom properties etc.) and the issue stays the
> same,
> > > only now in a smaller scale. Each run adds "only" 100
> activeInterpreters
> > > there.
> > >
> > > So, I have not a clue how to stop this behaviour. I expect a steady
> > > performance of my knowledge base. I would appreciate any hints!
> > >
> > > Relevant code snippets:
> > >
> > > * Model creation: http://pastebin.com/xdZQhhqT
> > > * Query (stripped from nearly everything):
> http://pastebin.com/CXuHTEwg
> > > * Query execution: http://pastebin.com/3YnEQVUv
> > >
> > > I tried both the latest Developmentsnapshot and the latest stable
> version
> > > or Jena and ARQ
> > >
> > > Bye,
> > >
> > > -- Martin
> > >
> > >
> > >
> > >
>
>
>
>

Re: SPARQL queries getting slower execution by execution: com.hp.hpl.jena.reasoner.rulesys.impl.LPBRuleEngine.activeInterpreters

Posted by Dave Reynolds <da...@gmail.com>.
On Wed, 2011-11-23 at 18:47 +0100, Martin Weitzel wrote: 
> Hm, now that I thought about it: I currently do not need any inferencing,
> so I could relinquish the InfModel: The RuleEngine probably won't be
> used then  (I think; I have to try this one out).

I was just about to respond asking about why you don't seem to be
supplying any rules to the rule engine.

> But I suppose some time in the future I may need at least some basic owl
> inferencing, so the problem stays.

Indeed. There was a report of a similar problem a while ago but,
checking for the Jira, it seems to have fallen through the cracks.
Apologies for that.

I've now raised a Jira for it (JENA-168) and will try to allocate time
to look at it. If you are not blocked for now that is good.

Dave

> 
> 
> -- Martin
> 
> 2011/11/23 Martin Weitzel <tr...@googlemail.com>
> 
> > Hi there,
> >
> > I am investigating a issue similar to this one:
> > http://tech.groups.yahoo.com/group/jena-dev/message/45210
> >
> > My in-memory (tried TDB as well) InfModel is working just fine the first
> > "run" (each run ~60 queries). The Queries could surely be optimized, but
> > actually the execution time would be sufficient: Each time round about
> > 20-70ms. However, I created a testing suite that triggers 8 parallel "runs"
> > (each with 60 or more query executions) in order to simulate the
> > expected future usage of my web application.
> >
> > Each run, the execution times raise about 30-50% (an because of
> > concurrency, the blockingtime of each thread gets mean). When I look
> > at com.hp.hpl.jena.reasoner.rulesys.impl.LPBRuleEngine.activeInterpreters
> > after several of these runs, the  activeInterpreters count is extremly high
> > (hundrets of thousands or even millions): This is probably the cause for
> > the raise in execution times.
> >
> > At first I suspected my crappy Query as cause of defect, but I stripped
> > nearly everything (custom properties etc.) and the issue stays the same,
> > only now in a smaller scale. Each run adds "only" 100 activeInterpreters
> > there.
> >
> > So, I have not a clue how to stop this behaviour. I expect a steady
> > performance of my knowledge base. I would appreciate any hints!
> >
> > Relevant code snippets:
> >
> > * Model creation: http://pastebin.com/xdZQhhqT
> > * Query (stripped from nearly everything): http://pastebin.com/CXuHTEwg
> > * Query execution: http://pastebin.com/3YnEQVUv
> >
> > I tried both the latest Developmentsnapshot and the latest stable version
> > or Jena and ARQ
> >
> > Bye,
> >
> > -- Martin
> >
> >
> >
> >




Re: SPARQL queries getting slower execution by execution: com.hp.hpl.jena.reasoner.rulesys.impl.LPBRuleEngine.activeInterpreters

Posted by Martin Weitzel <tr...@googlemail.com>.
Hm, now that I thought about it: I currently do not need any inferencing,
so I could relinquish the InfModel: The RuleEngine probably won't be
used then  (I think; I have to try this one out).

But I suppose some time in the future I may need at least some basic owl
inferencing, so the problem stays.


-- Martin

2011/11/23 Martin Weitzel <tr...@googlemail.com>

> Hi there,
>
> I am investigating a issue similar to this one:
> http://tech.groups.yahoo.com/group/jena-dev/message/45210
>
> My in-memory (tried TDB as well) InfModel is working just fine the first
> "run" (each run ~60 queries). The Queries could surely be optimized, but
> actually the execution time would be sufficient: Each time round about
> 20-70ms. However, I created a testing suite that triggers 8 parallel "runs"
> (each with 60 or more query executions) in order to simulate the
> expected future usage of my web application.
>
> Each run, the execution times raise about 30-50% (an because of
> concurrency, the blockingtime of each thread gets mean). When I look
> at com.hp.hpl.jena.reasoner.rulesys.impl.LPBRuleEngine.activeInterpreters
> after several of these runs, the  activeInterpreters count is extremly high
> (hundrets of thousands or even millions): This is probably the cause for
> the raise in execution times.
>
> At first I suspected my crappy Query as cause of defect, but I stripped
> nearly everything (custom properties etc.) and the issue stays the same,
> only now in a smaller scale. Each run adds "only" 100 activeInterpreters
> there.
>
> So, I have not a clue how to stop this behaviour. I expect a steady
> performance of my knowledge base. I would appreciate any hints!
>
> Relevant code snippets:
>
> * Model creation: http://pastebin.com/xdZQhhqT
> * Query (stripped from nearly everything): http://pastebin.com/CXuHTEwg
> * Query execution: http://pastebin.com/3YnEQVUv
>
> I tried both the latest Developmentsnapshot and the latest stable version
> or Jena and ARQ
>
> Bye,
>
> -- Martin
>
>
>
>