[16/37] incubator-geode git commit: GEODE-229: Fixed javadoc for DiskStoreFactory.setCompactionThreshold
GEODE-229: Fixed javadoc for DiskStoreFactory.setCompactionThreshold The javadocs and the behavior of the code were backwards. The code compacts when the live data gets below the threshold. I changed the javadocs to avoid screwing up someone who was relied on the old behavior. Adding a unit test of this property. Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/936065f4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/936065f4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/936065f4 Branch: refs/heads/feature/GEODE-77 Commit: 936065f4194f5df97d83b26ca029e66bb69a8d15 Parents: bbc2a5f Author: Dan SmithAuthored: Tue Aug 18 17:54:56 2015 -0700 Committer: Dan Smith Committed: Wed Aug 19 16:35:27 2015 -0700 -- .../gemfire/cache/DiskStoreFactory.java | 15 ++ .../internal/cache/DiskRegionJUnitTest.java | 30 2 files changed, 39 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/936065f4/gemfire-core/src/main/java/com/gemstone/gemfire/cache/DiskStoreFactory.java -- diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/cache/DiskStoreFactory.java b/gemfire-core/src/main/java/com/gemstone/gemfire/cache/DiskStoreFactory.java index ab67c75..296fb8a 100755 --- a/gemfire-core/src/main/java/com/gemstone/gemfire/cache/DiskStoreFactory.java +++ b/gemfire-core/src/main/java/com/gemstone/gemfire/cache/DiskStoreFactory.java @@ -111,13 +111,16 @@ public interface DiskStoreFactory public DiskStoreFactory setAutoCompact(boolean isAutoCompact); /** - * Sets the threshold at which an oplog will become compactable. Until it reaches - * this threshold the oplog will not be compacted. - * The threshold is a percentage in the range 0..100. - * When the amount of garbage in an oplog exceeds this percentage then when a compaction - * is done this garbage will be cleaned up freeing up disk space. Garbage is created by + * Sets the threshold at which an oplog will become compactable. Until it + * reaches this threshold the oplog will not be compacted. The threshold is a + * percentage in the range 0..100. When the amount of live data in an oplog + * becomes less than this percentage then when a compaction is done this + * garbage will be cleaned up freeing up disk space. Garbage is created by * entry destroys, entry updates, and region destroys. - * @param compactionThreshold the threshold percentage at which an oplog is compactable + * + * @param compactionThreshold + * percentage of remaining live data in the oplog at which an oplog + * is compactable * @return a reference to this */ public DiskStoreFactory setCompactionThreshold(int compactionThreshold); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/936065f4/gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/DiskRegionJUnitTest.java -- diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/DiskRegionJUnitTest.java b/gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/DiskRegionJUnitTest.java index bfc832a..9f85b6f 100755 --- a/gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/DiskRegionJUnitTest.java +++ b/gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/DiskRegionJUnitTest.java @@ -2993,6 +2993,36 @@ public class DiskRegionJUnitTest extends DiskRegionTestingBase boolean compacted = ((LocalRegion)region).getDiskStore().forceCompaction(); assertEquals(true, compacted); } + + /** + * Confirm that forceCompaction waits for the compaction to finish + */ + @Test + public void testNonDefaultCompaction() { +DiskRegionProperties props = new DiskRegionProperties(); +props.setRegionName("testForceCompactionDoesRoll"); +props.setRolling(false); +props.setDiskDirs(dirs); +props.setAllowForceCompaction(true); +props.setPersistBackup(true); +props.setCompactionThreshold(90); +region = DiskRegionHelperFactory.getSyncPersistOnlyRegion(cache, props, Scope.LOCAL); +DiskRegion dr = ((LocalRegion)region).getDiskRegion(); +logWriter.info("putting key1"); +region.put("key1", "value1"); +logWriter.info("putting key2"); +region.put("key2", "value2"); +//Only remove 1 of the entries. This wouldn't trigger compaction with +//the default threshold, since there are two entries. +logWriter.info("removing key1"); +region.remove("key1"); +// now that it is compactable the following forceCompaction should +
incubator-geode git commit: GEODE-229: Fixed javadoc for DiskStoreFactory.setCompactionThreshold
Repository: incubator-geode Updated Branches: refs/heads/develop bbc2a5fa5 - 936065f41 GEODE-229: Fixed javadoc for DiskStoreFactory.setCompactionThreshold The javadocs and the behavior of the code were backwards. The code compacts when the live data gets below the threshold. I changed the javadocs to avoid screwing up someone who was relied on the old behavior. Adding a unit test of this property. Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/936065f4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/936065f4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/936065f4 Branch: refs/heads/develop Commit: 936065f4194f5df97d83b26ca029e66bb69a8d15 Parents: bbc2a5f Author: Dan Smith upthewatersp...@apache.org Authored: Tue Aug 18 17:54:56 2015 -0700 Committer: Dan Smith upthewatersp...@apache.org Committed: Wed Aug 19 16:35:27 2015 -0700 -- .../gemfire/cache/DiskStoreFactory.java | 15 ++ .../internal/cache/DiskRegionJUnitTest.java | 30 2 files changed, 39 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/936065f4/gemfire-core/src/main/java/com/gemstone/gemfire/cache/DiskStoreFactory.java -- diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/cache/DiskStoreFactory.java b/gemfire-core/src/main/java/com/gemstone/gemfire/cache/DiskStoreFactory.java index ab67c75..296fb8a 100755 --- a/gemfire-core/src/main/java/com/gemstone/gemfire/cache/DiskStoreFactory.java +++ b/gemfire-core/src/main/java/com/gemstone/gemfire/cache/DiskStoreFactory.java @@ -111,13 +111,16 @@ public interface DiskStoreFactory public DiskStoreFactory setAutoCompact(boolean isAutoCompact); /** - * Sets the threshold at which an oplog will become compactable. Until it reaches - * this threshold the oplog will not be compacted. - * The threshold is a percentage in the range 0..100. - * When the amount of garbage in an oplog exceeds this percentage then when a compaction - * is done this garbage will be cleaned up freeing up disk space. Garbage is created by + * Sets the threshold at which an oplog will become compactable. Until it + * reaches this threshold the oplog will not be compacted. The threshold is a + * percentage in the range 0..100. When the amount of live data in an oplog + * becomes less than this percentage then when a compaction is done this + * garbage will be cleaned up freeing up disk space. Garbage is created by * entry destroys, entry updates, and region destroys. - * @param compactionThreshold the threshold percentage at which an oplog is compactable + * + * @param compactionThreshold + * percentage of remaining live data in the oplog at which an oplog + * is compactable * @return a reference to codethis/code */ public DiskStoreFactory setCompactionThreshold(int compactionThreshold); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/936065f4/gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/DiskRegionJUnitTest.java -- diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/DiskRegionJUnitTest.java b/gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/DiskRegionJUnitTest.java index bfc832a..9f85b6f 100755 --- a/gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/DiskRegionJUnitTest.java +++ b/gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/DiskRegionJUnitTest.java @@ -2993,6 +2993,36 @@ public class DiskRegionJUnitTest extends DiskRegionTestingBase boolean compacted = ((LocalRegion)region).getDiskStore().forceCompaction(); assertEquals(true, compacted); } + + /** + * Confirm that forceCompaction waits for the compaction to finish + */ + @Test + public void testNonDefaultCompaction() { +DiskRegionProperties props = new DiskRegionProperties(); +props.setRegionName(testForceCompactionDoesRoll); +props.setRolling(false); +props.setDiskDirs(dirs); +props.setAllowForceCompaction(true); +props.setPersistBackup(true); +props.setCompactionThreshold(90); +region = DiskRegionHelperFactory.getSyncPersistOnlyRegion(cache, props, Scope.LOCAL); +DiskRegion dr = ((LocalRegion)region).getDiskRegion(); +logWriter.info(putting key1); +region.put(key1, value1); +logWriter.info(putting key2); +region.put(key2, value2); +//Only remove 1 of the entries. This wouldn't trigger compaction with +//the default threshold, since there are two entries. +logWriter.info(removing key1); +region.remove(key1); +//