jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nicklas Löf <nicklas....@artificial-solutions.com>
Subject FineGrainedISMLocking problems
Date Tue, 05 Jun 2012 13:43:14 GMT
Hello.

In our application, that are using Jackrabbit 2.4.1 with Mysql persistence driver, we do have
a quite massive setup with a large number of nodes splitted into a large amount of different
folders.

A few operations requires lot of operations on these nodes (for example moving/copying nodes
between different folders) and also importing from external sources which is generating lots
of writes of newly created nodes.

During these operations other things are slowing down a lot and I have been looking into this
and found out that one of the problems is the locking mechanism in the DefaultISMLocking provider.
So yesterday I did change our test environment to use the  FineGrainedISMLocking provider
instead.

After the change the other operations done while those heavy operations are running did perform
a lot better. I still got threads getting blocked waiting for locks but overall the performance
in general become better.

Now to the problem. Sometimes the heavy operations fails and I wonder if there is any known
issues with the FineGrainedISMLocking. I have searched JIRA and the mailing list but haven't
really found any similar problems.

The two errors I have seen most are these two exceptions:


ERROR Unable to initialize workspace 'default'
javax.jcr.RepositoryException: Unable to aquire read lock.
       at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:1979)
       at org.apache.jackrabbit.core.RepositoryImpl.getWorkspaceInfo(RepositoryImpl.java:684)
       at org.apache.jackrabbit.core.RepositoryImpl.getObservationDispatcher(RepositoryImpl.java:820)
       at org.apache.jackrabbit.core.WorkspaceManager.getObservationDispatcher(WorkspaceManager.java:93)
       at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:244)
       at org.apache.jackrabbit.core.ItemImpl.perform(ItemImpl.java:91)
       at org.apache.jackrabbit.core.NodeImpl.addNodeWithUuid(NodeImpl.java:1776)
       at org.apache.jackrabbit.core.NodeImpl.addNode(NodeImpl.java:1736)
………………………...
Caused by: java.lang.InterruptedException
       at EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$ReaderLock.acquire(Unknown
Source)
       at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:1977)
       ... 78 more




and:

javax.jcr.RepositoryException: Unable to update item: item.save()
       at org.apache.jackrabbit.core.ItemSaveOperation.perform(ItemSaveOperation.java:265)
       at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216)
       at org.apache.jackrabbit.core.ItemImpl.perform(ItemImpl.java:91)
       at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:329)
       at org.apache.jackrabbit.core.session.SessionSaveOperation.perform(SessionSaveOperation.java:64)
       at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216)
       at org.apache.jackrabbit.core.SessionImpl.perform(SessionImpl.java:361)
       at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:812)
…………………...
Caused by: org.apache.jackrabbit.core.state.ItemStateException: Interrupted while acquiring
write lock
       at org.apache.jackrabbit.core.state.SharedItemStateManager.acquireWriteLock(SharedItemStateManager.java:1855)
       at org.apache.jackrabbit.core.state.SharedItemStateManager.access$200(SharedItemStateManager.java:112)
       at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:568)
       at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1462)
       at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1492)
       at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:400)
       at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:354)
       at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:375)
       at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:275)
       at org.apache.jackrabbit.core.ItemSaveOperation.perform(ItemSaveOperation.java:258)
       ... 66 more


/Nicklas

Mime
View raw message