Merge branch 'cassandra-2.0' into cassandra-2.1

Conflicts:
        
src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/755a6b24
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/755a6b24
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/755a6b24

Branch: refs/heads/trunk
Commit: 755a6b244c7c0db34044f03b9a62c2070e033a78
Parents: 26ff150 17042f1
Author: Marcus Eriksson <marc...@apache.org>
Authored: Tue Aug 18 10:51:38 2015 +0200
Committer: Marcus Eriksson <marc...@apache.org>
Committed: Tue Aug 18 10:51:38 2015 +0200

----------------------------------------------------------------------
 .../DateTieredCompactionStrategy.java           |  7 +++----
 .../DateTieredCompactionStrategyOptions.java    | 21 ++++++++++++++++++++
 .../DateTieredCompactionStrategyTest.java       |  2 +-
 3 files changed, 25 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/755a6b24/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java
----------------------------------------------------------------------
diff --cc 
src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java
index 41c304b,2e43352..a8e2aff
--- 
a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java
+++ 
b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java
@@@ -36,11 -36,9 +36,10 @@@ public class DateTieredCompactionStrate
  {
      private static final Logger logger = 
LoggerFactory.getLogger(DateTieredCompactionStrategy.class);
  
 -    protected DateTieredCompactionStrategyOptions options;
 +    private final DateTieredCompactionStrategyOptions options;
      protected volatile int estimatedRemainingTasks;
 +    private final Set<SSTableReader> sstables = new HashSet<>();
-     @VisibleForTesting
-     long lastExpiredCheck;
+     private long lastExpiredCheck;
  
      public DateTieredCompactionStrategy(ColumnFamilyStore cfs, Map<String, 
String> options)
      {
@@@ -79,14 -80,14 +78,14 @@@
       */
      private List<SSTableReader> getNextBackgroundSSTables(final int gcBefore)
      {
 -        if (!isEnabled() || cfs.getSSTables().isEmpty())
 +        if (cfs.getSSTables().isEmpty())
              return Collections.emptyList();
  
 -        Set<SSTableReader> uncompacting = cfs.getUncompactingSSTables();
 +        Set<SSTableReader> uncompacting = Sets.intersection(sstables, 
cfs.getUncompactingSSTables());
  
          Set<SSTableReader> expired = Collections.emptySet();
-         // we only check for expired sstables every 10 minutes due to it 
being an expensive operation
-         if (System.currentTimeMillis() - lastExpiredCheck > 
TimeUnit.MINUTES.toMillis(10))
+         // we only check for expired sstables every 10 minutes (by default) 
due to it being an expensive operation
+         if (System.currentTimeMillis() - lastExpiredCheck > 
options.expiredSSTableCheckFrequency)
          {
              // Find fully expired SSTables. Those will be included no matter 
what.
              expired = CompactionController.getFullyExpiredSSTables(cfs, 
uncompacting, cfs.getOverlappingSSTables(uncompacting), gcBefore);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/755a6b24/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java
----------------------------------------------------------------------
diff --cc 
test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java
index cea835f,6d9bfc2..f05bf44
--- 
a/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java
+++ 
b/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java
@@@ -305,12 -305,10 +305,12 @@@ public class DateTieredCompactionStrate
          options.put(DateTieredCompactionStrategyOptions.BASE_TIME_KEY, "30");
          
options.put(DateTieredCompactionStrategyOptions.TIMESTAMP_RESOLUTION_KEY, 
"MILLISECONDS");
          options.put(DateTieredCompactionStrategyOptions.MAX_SSTABLE_AGE_KEY, 
Double.toString((1d / (24 * 60 * 60))));
+         
options.put(DateTieredCompactionStrategyOptions.EXPIRED_SSTABLE_CHECK_FREQUENCY_SECONDS_KEY,
 "0");
          DateTieredCompactionStrategy dtcs = new 
DateTieredCompactionStrategy(cfs, options);
 +        for (SSTableReader sstable : cfs.getSSTables())
 +            dtcs.addSSTable(sstable);
          dtcs.startup();
          assertNull(dtcs.getNextBackgroundTask((int) 
(System.currentTimeMillis() / 1000)));
-         dtcs.lastExpiredCheck = 0;
          Thread.sleep(2000);
          AbstractCompactionTask t = dtcs.getNextBackgroundTask((int) 
(System.currentTimeMillis()/1000));
          assertNotNull(t);

Reply via email to