François,
I spent some time on improving performance lately. See
https://issues.apache.org/jira/browse/JCR-2497 and related issues.
I was able to improve performance for our use case with these fixes.
Getting the parameters right (i.e. item cache size, item info cache size
and batch read depth) is still quite tricky though and requires careful
profiling.
I can provide more specific information on these parameters if required.
Michael
François Cassistat wrote:
Ok, I've studied a little what was going on with a packet analyzer.
As I expected, jcr2spi does request for each node, but I did not expect it to
do 3 requests for each node of my iterator (one request to get the node, and
two for asking some UUID properties (for files ?)).
We need to pass in each node and consult three or four properties to render in
a table. In my product, we can't afford waiting 17 seconds fetching information
about 56 nodes (or 5 minutes for 1500 nodes). Is there any way to configure
spi2davex to get all the query result in one big HTTP request?
Thanks,
François
Le 2010-02-26 à 5:12 PM, François Cassistat a écrit :
Hello list,
I am using jcr2spi on top spi2davex, with JackRabbit 2.0 on a remote server.
I've made a query to the server, it takes :
- 900ms to connect (this is acceptable)
- 500ms to do a XPath query on ~25K nodes with a "order by" close (this is good)
- 1000ms to get the node iterator for the result (this is ok)
And then, between 240ms and 310ms to get each node. Are this normal
performances? At all, it took 16 seconds to load 56 node result. This is
unacceptable in my project.
I assume that jcr2spi makes one HTTP query to every NodeIterator.getNode()
call. Considered that I ping the server with ~70ms delay for large packets, are
theses delays normal?
I don't know much about spi2davex details, but is there anyway to load all
these nodes (and subnodes?) in one big HTTP request?
Thank you,
François