On Wed, Jan 7, 2009 at 4:09 PM, Kurz Wolfgang <[email protected]> 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 [email protected]
