Hi,

I've been using Jackrabbit for over a year and my system has now millions of nodes and the performance is bad.

I've read the wiki page and I'm following the instructions of http://www.nabble.com/Explanation-and-solutions-of-some-Jackrabbit-queries-regarding-performance-td15028655.html:
- added the parameter <param name="respectDocumentOrder" value="false"/>
- My nodes doesn't have more than 4000 childs
- I'm not using xpath like '/jcr:root/a/b/c', my xpath is like '//element(*, myNodeType)[(jcr:contains(@aProperty, 'value1 OR value2 OR ... OR valueN')]'

I'm also using Jackrabbit's specific functions of QueryImpl:
   query.setLimit(limit);
   query.setOffset(offset);

The query.execute() is taking 1500 miliseconds.
I'm using RowIterator and rowIterator.nextRow() is taking 200 miliseconds each. I need to access some informations that are stored in the children and to get them is taking 200 miliseconds. So, to get 20 results from the search, it's taking 1500 + 20*(200 + 200) = 9500 miliseconds.

the session.getNodeByUUID, wich is supposed to be fast, is taking 200 miliseconds too.

For now, I'm not worried about the query.execute time, I'd be happy if I could solve the two 200 miliseconds that is taking for each node.

I think that slow session.getNodeByUUID is the cause of the problem of rowIterator.nextRow and the time to get the children.

I'm using Jackrabbit version 1.4.6, but I tried to update to 1.5 and the performance wasn't improved so much.

In my structure, the majority of nodes are versionable. Can it be the cause of the bad performance?

Regards,

Nelson Takashi Omori
Murah Technologies


Reply via email to