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 2017/07/06 07:12:01 UTC

svn commit: r1800971 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreTest.java

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();