I finally found the problem. I don't know why, but my Jackrabbit tables
didn't have index.
I created the index and getNodeByUUID become fast (60 miliseconds).
Nelson Takashi Omori escreveu:
Ok,
I debbuged here and I found that the problem is the select query:
select BUNDLE_DATA from JR_WORKSPACE_BUNDLE where NODE_ID = ?
in the class MSSqlPersistenceManager
I'm using Microsoft SQL Server 2005 with JTDS. Maybe it's problem with
database configuration...
Nelson Takashi Omori escreveu:
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
--
Atenciosamente,
Nelson Takashi Omori
Murah Technologies
Esta mensagem, incluindo seus anexos, pode conter informação confidencial e/ou
privilegiada. Se você recebeu este e-mail por engano, não utilize, copie ou
divulgue as informações nele contidas. Por favor, avise imediatamente o
remetente, respondendo ao e-mail, e em seguida apague-o. Caso necessite de
atendimento imediato, recomendamos utilizar um dos canais disponíveis:
www.murah.com.br ou telefone (11) 5531 8288. Agradecemos sua colaboração.
This message, including its attachments, may contain confidential and/or
privileged information. If you have received this email by mistake, do not use,
copy or disseminate any information herein contained. Please notify us
immediately by replying to the sender and then delete it. In case you need
immediate assistance, please use one of the following: www.murah.com.br or
phone: 55 11 5531 8288. Thank you for your cooperation.