You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by sh...@apache.org on 2015/05/07 05:47:56 UTC

svn commit: r1678123 - /jackrabbit/trunk/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/CachingDataStore.java

Author: shashank
Date: Thu May  7 03:47:55 2015
New Revision: 1678123

URL: http://svn.apache.org/r1678123
Log:
JCR-3879 Remove contention in AsyncUploadCache to improve performance

fixed. Reversed the if condition block to reduce the dependency of synchronized access to asycuploadCache. 

Modified:
    jackrabbit/trunk/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/CachingDataStore.java

Modified: jackrabbit/trunk/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/CachingDataStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/CachingDataStore.java?rev=1678123&r1=1678122&r2=1678123&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/CachingDataStore.java (original)
+++ jackrabbit/trunk/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/CachingDataStore.java Thu May  7 03:47:55 2015
@@ -464,15 +464,15 @@ public abstract class CachingDataStore e
                     throws DataStoreException {
         String fileName = getFileName(identifier);
         try {
-            if (asyncWriteCache.hasEntry(fileName, minModifiedDate > 0)) {
-                LOG.trace("getRecord: [{}]  retrieved from asyncUploadmap",
+            if (getLength(identifier) > -1) {
+                LOG.trace("getRecord: [{}]  retrieved using getLength",
                     identifier);
+                touchInternal(identifier);
                 usesIdentifier(identifier);
                 return new CachingDataRecord(this, identifier);
-            } else if (getLength(identifier) > -1) {
-                LOG.trace("getRecord: [{}]  retrieved using getLength",
+            } else if (asyncWriteCache.hasEntry(fileName, minModifiedDate > 0)) {
+                LOG.trace("getRecord: [{}]  retrieved from asyncUploadmap",
                     identifier);
-                touchInternal(identifier);
                 usesIdentifier(identifier);
                 return new CachingDataRecord(this, identifier);
             }