[16/37] incubator-geode git commit: GEODE-229: Fixed javadoc for DiskStoreFactory.setCompactionThreshold

2015-09-01 Thread bschuchardt
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 Smith 
Authored: 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

2015-08-19 Thread upthewaterspout
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);
+//