Author: mreutegg
Date: Thu Jul  6 07:12:01 2017
New Revision: 1800971

URL: http://svn.apache.org/viewvc?rev=1800971&view=rev
Log:
OAK-6423: MongoDocumentStore re-creates old index on _deletedOnce

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreTest.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java?rev=1800971&r1=1800970&r2=1800971&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
 Thu Jul  6 07:12:01 2017
@@ -281,12 +281,20 @@ public class MongoDocumentStore implemen
 
         // index on _deleted for fast lookup of potentially garbage
         // depending on the MongoDB version, create a partial index
-        if (mongoStatus.isVersion(3, 2)
-                && initialDocsCount == 0) {
-            createPartialIndex(nodes, new String[]{DELETED_ONCE, 
MODIFIED_IN_SECS},
-                    new boolean[]{true, true}, "{" + DELETED_ONCE + ":true}");
-        } else {
-            createIndex(nodes, NodeDocument.DELETED_ONCE, true, false, true);
+        if (initialDocsCount == 0) {
+            if (mongoStatus.isVersion(3, 2)) {
+                createPartialIndex(nodes, new String[]{DELETED_ONCE, 
MODIFIED_IN_SECS},
+                        new boolean[]{true, true}, "{" + DELETED_ONCE + 
":true}");
+            } else {
+                createIndex(nodes, NodeDocument.DELETED_ONCE, true, false, 
true);
+            }
+        } else if (!hasIndex(nodes, DELETED_ONCE, MODIFIED_IN_SECS)) {
+            LOG.warn("Detected an upgrade from Oak version <= 1.6. For optimal 
" +
+                    "Revision GC performance it is recommended to create a " +
+                    "partial index for the 'nodes' collection on " +
+                    "{_deletedOnce:1, _modified:1} with a 
partialFilterExpression " +
+                    "{_deletedOnce:true}. Partial indexes require MongoDB 3.2 
" +
+                    "or higher.");
         }
 
         // compound index on _sdType and _sdMaxRevTime

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreTest.java?rev=1800971&r1=1800970&r2=1800971&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreTest.java
 Thu Jul  6 07:12:01 2017
@@ -26,7 +26,6 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.plugins.document.MongoUtils;
 import org.apache.jackrabbit.oak.plugins.document.NodeDocument;
 import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import static 
org.apache.jackrabbit.oak.plugins.document.mongo.MongoUtils.hasIndex;
@@ -67,7 +66,6 @@ public class MongoDocumentStoreTest exte
         assertTrue(hasIndex(store.getDBCollection(Collection.JOURNAL), 
JournalEntry.MODIFIED));
     }
 
-    @Ignore("OAK-6423")
     @Test
     public void oak6423() throws Exception {
         MongoConnection c = connectionFactory.getConnection();


Reply via email to