jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexander Klimetschek" <aklim...@day.com>
Subject Re: Jackrabbit RMI Performance
Date Thu, 08 Jan 2009 23:11:03 GMT
On Wed, Jan 7, 2009 at 4:09 PM, Kurz Wolfgang <wolfgang.kurz@gwvs.de> wrote:
> I started working with Jackrabbit a while back and it seems really cool but atm I am
using the RMI support which seems really slow.
>
> When I do a query the Query takes like 90 ms which is fine but then I fill my objects
with the node properties which takes like forever.

Yes, RMI is slow over the network since each call is a network
roundtrip. It is just the simplest way to enable a complete JCR
remoting protocol.

> Somone told my that clustering would be a way to have Jackrabbit available to all the
applications and use JNDI to access the Repository but I have like no odea if that would help:-)

Clustering will definitely help if you have many read operations,
since the contents of the repository will be replicated on each
cluster node, ie. server. That include the search as well. Heavy
writing to a cluster might have a small impact on performance,
depending on the underlying database that does the data clustering
(see http://wiki.apache.org/jackrabbit/Clustering for the requirements
for clustering).

> Anyone have some Hints performance wise?

Depending on what the application should do, there are some other
remoting options:

- using webdav (http://jackrabbit.apache.org/jackrabbit-jcr-server.html)
- using the http interface that Apache Sling puts on top of JCR
(http://incubator.apache.org/sling/)
- using the SPI interface, which is kind of a "batch-optimized" and
smaller API compared to JCR, but provides the same feature set (see
SPI components on
http://jackrabbit.apache.org/jackrabbit-components.html)

SPI is a good generic solution, but not 100% polished for remoting yet
(it allows remoting via WebDAV and via RMI, but this time on the
optimized SPI interfaces, which should give much less network
roundtris).

Pure webdav works for many document-level cases, but webdav clients in
Java are not so good (AFAIK). Sling offers multiple ways to access the
JCR via HTTP using a JSON format and webdav as well. You can easily
extend Sling to build optimized remoting calls specific for your
application.

Regards,
Alex


--
Alexander Klimetschek
alexander.klimetschek@day.com

Mime
View raw message