Author: catholicon
Date: Wed Nov 16 15:43:09 2016
New Revision: 1770004
URL: http://svn.apache.org/viewvc?rev=1770004&view=rev
Log:
OAK-5119: JourncalGarbageCollector: journalGcBatchSize configuration is
irrelevant post implementation tasks of bulk remove support in DocumentStore
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalGarbageCollector.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalGCTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/JournalIT.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java?rev=1770004&r1=1770003&r2=1770004&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
Wed Nov 16 15:43:09 2016
@@ -243,19 +243,6 @@ public class DocumentNodeStoreService {
)
private static final String PROP_JOURNAL_GC_MAX_AGE_MILLIS =
"journalGCMaxAge";
- /**
- * Batch size used during to lookup and delete journal entries during
journalGC
- */
- private static final int DEFAULT_JOURNAL_GC_BATCH_SIZE = 100;
- @Property (intValue = DEFAULT_JOURNAL_GC_BATCH_SIZE,
- label = "Batch size used for journalGC",
- description = "The journal gc queries the journal for entries
older than configured to delete them. " +
- "It does so in batches to speed up the process. The batch
size can be configured via this " +
- " property. The trade-off is between reducing number of
operations with a larger batch size, " +
- " and consuming more memory less memory with a smaller
batch size."
- )
- public static final String PROP_JOURNAL_GC_BATCH_SIZE =
"journalGcBatchSize";
-
@Property (boolValue = false,
label = "Pre-fetch external changes",
description = "Boolean value indicating if external changes should
" +
@@ -872,14 +859,12 @@ public class DocumentNodeStoreService {
DEFAULT_JOURNAL_GC_INTERVAL_MILLIS);
final long journalGCMaxAge =
toLong(context.getProperties().get(PROP_JOURNAL_GC_MAX_AGE_MILLIS),
DEFAULT_JOURNAL_GC_MAX_AGE_MILLIS);
- final int journalGCBatchSize =
toInteger(context.getProperties().get(PROP_JOURNAL_GC_BATCH_SIZE),
- DEFAULT_JOURNAL_GC_BATCH_SIZE);
-
+
Runnable journalGCJob = new Runnable() {
@Override
public void run() {
- nodeStore.getJournalGarbageCollector().gc(journalGCMaxAge,
TimeUnit.MILLISECONDS, journalGCBatchSize);
+ nodeStore.getJournalGarbageCollector().gc(journalGCMaxAge,
TimeUnit.MILLISECONDS);
}
};
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalGarbageCollector.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalGarbageCollector.java?rev=1770004&r1=1770003&r2=1770004&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalGarbageCollector.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalGarbageCollector.java
Wed Nov 16 15:43:09 2016
@@ -70,10 +70,9 @@ public class JournalGarbageCollector {
*
* @param maxRevisionAge entries older than this age will be removed
* @param unit the {@linkplain TimeUnit} for maxRevisionAge
- * @param batchSize size of batch for removal
* @return the number of entries that have been removed
*/
- public int gc(long maxRevisionAge, TimeUnit unit, int batchSize) {
+ public int gc(long maxRevisionAge, TimeUnit unit) {
DocumentStore ds = ns.getDocumentStore();
Revision keep = ns.getCheckpoints().getOldestRevisionToKeep();
long maxRevisionAgeInMillis = unit.toMillis(maxRevisionAge);
@@ -85,8 +84,8 @@ public class JournalGarbageCollector {
keep, unit.toMinutes(maxRevisionAge));
}
if (log.isDebugEnabled()) {
- log.debug("gc: Journal garbage collection starts with maxAge: {}
min., batch size: {}.",
- TimeUnit.MILLISECONDS.toMinutes(maxRevisionAgeInMillis),
batchSize);
+ log.debug("gc: Journal garbage collection starts with maxAge: {}
min.",
+ TimeUnit.MILLISECONDS.toMinutes(maxRevisionAgeInMillis));
}
Stopwatch sw = Stopwatch.createStarted();
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalGCTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalGCTest.java?rev=1770004&r1=1770003&r2=1770004&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalGCTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalGCTest.java
Wed Nov 16 15:43:09 2016
@@ -62,7 +62,7 @@ public class JournalGCTest {
c.waitUntil(c.getTime() + TimeUnit.HOURS.toMillis(2));
// instruct journal collector to remove entries older than one hour
- ns.getJournalGarbageCollector().gc(1, TimeUnit.HOURS, 10);
+ ns.getJournalGarbageCollector().gc(1, TimeUnit.HOURS);
// must not remove existing entry, because checkpoint is still valid
entry = ns.getDocumentStore().find(JOURNAL, JournalEntry.asId(head));
@@ -70,7 +70,7 @@ public class JournalGCTest {
ns.release(cp);
- ns.getJournalGarbageCollector().gc(1, TimeUnit.HOURS, 10);
+ ns.getJournalGarbageCollector().gc(1, TimeUnit.HOURS);
// now journal GC can remove the entry
entry = ns.getDocumentStore().find(JOURNAL, JournalEntry.asId(head));
assertNull(entry);
@@ -91,7 +91,7 @@ public class JournalGCTest {
ns.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY);
ns.runBackgroundOperations();
- assertEquals(0, jgc.gc(1, TimeUnit.HOURS, 10));
+ assertEquals(0, jgc.gc(1, TimeUnit.HOURS));
// current time, but without the increment done by getTime()
long now = c.getTime() - 1;
@@ -105,7 +105,7 @@ public class JournalGCTest {
// must collect all journal entries. the first created when
// DocumentNodeStore was initialized and the second created
// by the background update
- assertEquals(2, jgc.gc(1, TimeUnit.HOURS, 10));
+ assertEquals(2, jgc.gc(1, TimeUnit.HOURS));
// current time, but without the increment done by getTime()
now = c.getTime() - 1;
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalTest.java?rev=1770004&r1=1770003&r2=1770004&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/JournalTest.java
Wed Nov 16 15:43:09 2016
@@ -186,15 +186,15 @@ public class JournalTest extends Abstrac
JournalGarbageCollector gc = new JournalGarbageCollector(ns1);
// first clean up
Thread.sleep(100); // OAK-2979 : wait 100ms before doing the cleanup
- gc.gc(1, TimeUnit.MILLISECONDS, 100);
+ gc.gc(1, TimeUnit.MILLISECONDS);
Thread.sleep(100); // sleep just quickly
- assertEquals(0, gc.gc(1, TimeUnit.DAYS, 100));
- assertEquals(0, gc.gc(6, TimeUnit.HOURS, 100));
- assertEquals(0, gc.gc(1, TimeUnit.HOURS, 100));
- assertEquals(0, gc.gc(10, TimeUnit.MINUTES, 100));
- assertEquals(0, gc.gc(1, TimeUnit.MINUTES, 100));
- assertEquals(0, gc.gc(1, TimeUnit.SECONDS, 100));
- assertEquals(0, gc.gc(1, TimeUnit.MILLISECONDS, 100));
+ assertEquals(0, gc.gc(1, TimeUnit.DAYS));
+ assertEquals(0, gc.gc(6, TimeUnit.HOURS));
+ assertEquals(0, gc.gc(1, TimeUnit.HOURS));
+ assertEquals(0, gc.gc(10, TimeUnit.MINUTES));
+ assertEquals(0, gc.gc(1, TimeUnit.MINUTES));
+ assertEquals(0, gc.gc(1, TimeUnit.SECONDS));
+ assertEquals(0, gc.gc(1, TimeUnit.MILLISECONDS));
// create some entries that can be deleted thereupon
mk1.commit("/", "+\"regular1\": {}", null, null);
@@ -202,16 +202,16 @@ public class JournalTest extends Abstrac
mk1.commit("/", "+\"regular3\": {}", null, null);
mk1.commit("/regular2", "+\"regular4\": {}", null, null);
Thread.sleep(100); // sleep 100millis
- assertEquals(0, gc.gc(5, TimeUnit.SECONDS, 100));
- assertEquals(0, gc.gc(1, TimeUnit.MILLISECONDS, 100));
+ assertEquals(0, gc.gc(5, TimeUnit.SECONDS));
+ assertEquals(0, gc.gc(1, TimeUnit.MILLISECONDS));
ns1.runBackgroundOperations();
mk1.commit("/", "+\"regular5\": {}", null, null);
ns1.runBackgroundOperations();
mk1.commit("/", "+\"regular6\": {}", null, null);
ns1.runBackgroundOperations();
Thread.sleep(100); // sleep 100millis
- assertEquals(0, gc.gc(5, TimeUnit.SECONDS, 100));
- assertEquals(3, gc.gc(1, TimeUnit.MILLISECONDS, 100));
+ assertEquals(0, gc.gc(5, TimeUnit.SECONDS));
+ assertEquals(3, gc.gc(1, TimeUnit.MILLISECONDS));
}
@Test
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/JournalIT.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/JournalIT.java?rev=1770004&r1=1770003&r2=1770004&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/JournalIT.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/JournalIT.java
Wed Nov 16 15:43:09 2016
@@ -197,7 +197,7 @@ public class JournalIT extends AbstractJ
JournalGarbageCollector gc = new JournalGarbageCollector(ns1);
clock.getTimeIncreasing();
clock.getTimeIncreasing();
- gc.gc(0, TimeUnit.MILLISECONDS, 100); // cleanup everything that might
still be there
+ gc.gc(0, TimeUnit.MILLISECONDS); // cleanup everything that might
still be there
// create entries as parametrized:
for(int i=offset; i<size+offset; i++) {
@@ -207,7 +207,7 @@ public class JournalIT extends AbstractJ
ns1.runBackgroundOperations();
}
Thread.sleep(100); // sleep 100millis
- assertEquals(size, gc.gc(0, TimeUnit.MILLISECONDS, 100)); // should
now be able to clean up everything
+ assertEquals(size, gc.gc(0, TimeUnit.MILLISECONDS)); // should now be
able to clean up everything
}
protected DocumentMK createMK(int clusterId, int asyncDelay) {