you may be seeing

https://issues.apache.org/jira/browse/CASSANDRA-8860 
<https://issues.apache.org/jira/browse/CASSANDRA-8860>
https://issues.apache.org/jira/browse/CASSANDRA-8635 
<https://issues.apache.org/jira/browse/CASSANDRA-8635>

related issues (which ends up with excessive numbers of sstables)

we applied

diff --git 
a/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java 
b/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactio
index fbd715c..cbb8c8b 100644
--- 
a/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java
+++ 
b/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java
@@ -118,7 +118,11 @@ public class SizeTieredCompactionStrategy extends 
AbstractCompactionStrategy
     static List<SSTableReader> filterColdSSTables(List<SSTableReader> 
sstables, double coldReadsToOmit, int minThreshold)
     {
         if (coldReadsToOmit == 0.0)
+        {
+            if (!sstables.isEmpty())
+                logger.debug("Skipping cold sstable filter for list sized {} 
containing {}", sstables.size(), sstables.get(0).getFilename());
             return sstables;
+        }
 
         // Sort the sstables by hotness (coldest-first). We first build a map 
because the hotness may change during the sort.
         final Map<SSTableReader, Double> hotnessSnapshot = 
getHotnessMap(sstables);
diff --git 
a/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategyOptions.java
 b/src/java/org/apache/cassandra/db/compaction/SizeTieredCo
index 84e7d61..c6c5f1b 100644
--- 
a/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategyOptions.java
+++ 
b/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategyOptions.java
@@ -26,7 +26,7 @@ public final class SizeTieredCompactionStrategyOptions
     protected static final long DEFAULT_MIN_SSTABLE_SIZE = 50L * 1024L * 1024L;
     protected static final double DEFAULT_BUCKET_LOW = 0.5;
     protected static final double DEFAULT_BUCKET_HIGH = 1.5;
-    protected static final double DEFAULT_COLD_READS_TO_OMIT = 0.05;
+    protected static final double DEFAULT_COLD_READS_TO_OMIT = 0.0;
     protected static final String MIN_SSTABLE_SIZE_KEY = "min_sstable_size";
     protected static final String BUCKET_LOW_KEY = "bucket_low";
     protected static final String BUCKET_HIGH_KEY = "bucket_high";

to our 2.1.3, though the entire coldReadsToOmit is removed in 2.1.4

Note you don’t have to patch your code, you can set the value on each table (we 
just have a lot and dynamically generated ones) - basically try setting 
coldReadsToOmit back to 0 which was the default in 2.0.x

> On Mar 26, 2015, at 3:56 AM, Anishek Agarwal <anis...@gmail.com> wrote:
> 
> Are you frequently updating same rows ? What is the memtable flush size ? can 
> you post the table create query here in please.
> 
> On Thu, Mar 26, 2015 at 1:21 PM, Dave Galbraith <david92galbra...@gmail.com 
> <mailto:david92galbra...@gmail.com>> wrote:
> Hey! So I'm running Cassandra 2.1.2 and using the 
> SizeTieredCompactionStrategy. I'm doing about 3k writes/sec on a single node. 
> My read performance is terrible, all my queries just time out. So I do 
> nodetool cfstats:
> 
>     Read Count: 42071
>     Read Latency: 67.47804242827601 ms.
>     Write Count: 131964300
>     Write Latency: 0.011721604274792501 ms.
>     Pending Flushes: 0
>         Table: metrics16513
>         SSTable count: 641
>         Space used (live): 6366740812
>         Space used (total): 6366740812
>         Space used by snapshots (total): 0
>         SSTable Compression Ratio: 0.25272488401992765
>         Memtable cell count: 0
>         Memtable data size: 0
>         Memtable switch count: 1016
>         Local read count: 42071
>         Local read latency: 67.479 ms
>         Local write count: 131964300
>         Local write latency: 0.012 ms
>         Pending flushes: 0
>         Bloom filter false positives: 994
>         Bloom filter false ratio: 0.00000
>         Bloom filter space used: 37840376
>         Compacted partition minimum bytes: 104
>         Compacted partition maximum bytes: 24601
>         Compacted partition mean bytes: 255
>         Average live cells per slice (last five minutes): 111.67243951154147
>         Maximum live cells per slice (last five minutes): 1588.0
>         Average tombstones per slice (last five minutes): 0.0
>         Maximum tombstones per slice (last five minutes): 0.0
> 
> and nodetool cfhistograms:
> 
> Percentile  SSTables     Write Latency      Read Latency    Partition Size    
>     Cell Count
>                               (micros)          (micros)           (bytes)    
>               
> 50%            46.00              6.99         154844.95               149    
>              1
> 75%           430.00              8.53        3518837.53               179    
>              1
> 95%           430.00             11.32        7252897.25               215    
>              2
> 98%           430.00             15.54       22103886.34               215    
>              3
> 99%           430.00             29.86       22290608.19              1597    
>             50
> Min             0.00              1.66             26.91               104    
>              0
> Max           430.00         269795.38       27311364.89             24601    
>            924
> 
> Gross!! There are 641 SSTables in there, and all my reads are hitting 
> hundreds of them and timing out. How could this possibly have happened, and 
> what can I do about it? Nodetool compactionstats says pending tasks: 0, by 
> the way. Thanks!
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to