You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by mr...@apache.org on 2015/04/15 09:56:50 UTC

svn commit: r1673669 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java

Author: mreutegg
Date: Wed Apr 15 07:56:50 2015
New Revision: 1673669

URL: http://svn.apache.org/r1673669
Log:
OAK-2770: Configurable mode for backgroundOperationLock

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java?rev=1673669&r1=1673668&r2=1673669&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java Wed Apr 15 07:56:50 2015
@@ -143,6 +143,12 @@ public final class DocumentNodeStore
             Boolean.getBoolean("oak.enableConcurrentAddRemove");
 
     /**
+     * Use fair mode for background operation lock.
+     */
+    private boolean fairBackgroundOperationLock =
+            Boolean.getBoolean("oak.fairBackgroundOperationLock");
+
+    /**
      * How long to remember the relative order of old revision of all cluster
      * nodes, in milliseconds. The default is one hour.
      */
@@ -268,7 +274,8 @@ public final class DocumentNodeStore
      * Read/Write lock for background operations. Regular commits will acquire
      * a shared lock, while a background write acquires an exclusive lock.
      */
-    private final ReadWriteLock backgroundOperationLock = new ReentrantReadWriteLock();
+    private final ReadWriteLock backgroundOperationLock =
+            new ReentrantReadWriteLock(fairBackgroundOperationLock);
 
     /**
      * Read/Write lock to coordinate merges. In most cases merges acquire a