jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bruce Li" <...@tirawireless.com>
Subject RE: Jackrabbit performance issue
Date Mon, 11 Jun 2007 14:28:52 GMT
Hi Jukka,

Thank you very much for your feedback.

1) The DB latency is set for all application including repository. There
is no any performance issue with other application which has a lot of

2) The performance test is using local repository server. The
"repository" and "session" is constructed by Spring Framework. The real
repository server is running at Tomcat container and all the access for
repository is going through web service. 

3) This "search" is not by query but by visiting all "Company" note
using " getNode".

I would like to share some "Company" code for further performance

public class Company {
	private String repositoryId;
	private int usage;
	private int totalVotes;
	private double ranking;
	private int type;
	private CompanyProfile[] applications;
	private WebReference[] webReferences;
	private CompanyProperty[] companyProperties;

All fileds with build-in type of "Company" instance is persisted to
repository by a recursive method using "java.lang.reflect".

	String nodePath =

	// Get the class name by naming convention
	String modelName =
	String itemClassName = getClassName(modelName);

	Class itemClass = Class.forName(itemClassName);
	itemObj = itemClass.newInstance();

	PropertyIterator pi = itemNode.getProperties();
	while (pi.hasNext()) 
			Property property = pi.nextProperty();
			// recursive method to populate data from
repository 				// property
			populateItemField(itemNode.getUUID(), itemObj,

When execute the "Property property = pi.nextProperty()", it always
makes the CacheManager resizing, which costs time.

I am using JDK 1.5.

Thanks again for your help.

Bruce Li

-----Original Message-----
From: Jukka Zitting [mailto:jukka.zitting@gmail.com] 
Sent: Saturday, June 09, 2007 4:23 AM
To: users@jackrabbit.apache.org
Subject: Re: Jackrabbit performance issue


On 6/6/07, Bruce Li <bli@tirawireless.com> wrote:
> I am using Jackrabbit v1.3 and I got the performance issue.
> The problem is when I visit object notes (for example, "Company"), it
> costs more than 25 second to visit all "Company" notes.

Could you share an example of the code you are using to access the
company nodes?

Some common performance pitfalls that could affect your setup are:

1) Database latency. Check that the network latency between the
Jackrabbit and the backend database is small. Jackrabbit typically
makes a number of database calls, and the latencies of individual
calls can easily add up since at the moment Jackrabbit doesn't perform
those calls in parallel.

2) RMI access. Are you using the RMI layer to access the repository?
RMI access performance is also highly sensitive to network latency and
there are some inherent design choises that make the RMI layer perfom
not that well.

3) Large search result sets. Are you using a query to access all the
company nodes? When you are simply iterating all nodes in a subtree
you get noticeably better performance if you simply traverse the tree
with Node.getNodes() instead of using a query. Query performance is
best when you are targetting a small subset of a large subtree or an
entire workspace.


Jukka Zitting

View raw message