On Tue, Nov 24, 2009 at 16:45, MMax <[email protected]> wrote: > I've tried using spi2dav way but I saw great performance decreasing. RMI > working 10 times faster on the same repository operations.
I think the real improvement comes with spi2davex [1] which actually does a lot of batch operations. You can configure it on the client side which node depth to pre-fetch to minimize the following number of operations (see config example in [2] createService() with the BatchReadConfig). Most importantly, all write operations will happen in a single POST upon a save() call. I think with the spi2dav you still have many single POSTs for every single property, that's why it is still slow. Also, to make your life simpler, you can use jcr2spi on top of spi2davex to use the standard jcr api. You create an o.a.j.jcr2spi.RepositoryImpl and pass it an o.a.j.jcr2spi.config.RepositoryConfig which will have to return the spi (in this case spi2davex) in its getRepositoryService() method. Also, you can configure caching/polling behaviour here for the work between jcr api and spi. [1] http://svn.apache.org/repos/asf/jackrabbit/tags/1.6.0/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/ [2] http://svn.apache.org/repos/asf/jackrabbit/tags/1.6.0/jackrabbit-spi2dav/src/test/java/org/apache/jackrabbit/spi2davex/RepositoryStubImpl.java [3] http://svn.apache.org/repos/asf/jackrabbit/tags/1.6.0/jackrabbit-jcr2spi/ [4] http://svn.apache.org/repos/asf/jackrabbit/tags/1.6.0/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/RepositoryImpl.java [5] http://svn.apache.org/repos/asf/jackrabbit/tags/1.6.0/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/config/RepositoryConfig.java Note: all the above links are for the latest stable release in 1.6.0. Jackrabbit 2.0 will have a simpler way of getting a repository using the JSR-283 standardized RepositoryFactory, which has a generic helper implementation in the new jcr-client lib [6]. See the test cases for more sample usage [7] [6] http://svn.apache.org/repos/asf/jackrabbit/trunk/jackrabbit-jcr-client/ [7] http://svn.apache.org/repos/asf/jackrabbit/trunk/jackrabbit-jcr-client/src/test/java/org/apache/jackrabbit/client/RepositoryFactoryImplTest.java I need to put this on the website or wiki... Regards, Alex -- Alexander Klimetschek [email protected]
