Thank you for that.  I did not have trickle_fsync enabled and will give it a 
try.  I just noticed that when running a describe on my table, I do not see the 
sstable size parameter (compaction_strategy_options = {'sstable_size_in_mb':5}) 
included.  Is that expected?  Does it mean its using the defaults?

Assuming none of the tuning here makes a noticeable difference, my next step is 
to try switching from LZ4 to Snappy.  Any opinions on that?

Thanks!

CREATE TABLE global_user (
  user_id bigint,
  app_id int,
  type text,
  name text,
  extra_param map<text, text>,
  last timestamp,
  paid boolean,
  sku_time map<text, timestamp>,
  values map<timestamp, float>,
  PRIMARY KEY (user_id, app_id, type, name)
) WITH
  bloom_filter_fp_chance=0.100000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.000000 AND
  gc_grace_seconds=86400 AND
  read_repair_chance=0.100000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  compaction={'class': 'LeveledCompactionStrategy'} AND
  compression={'chunk_length_kb': '8', 'crc_check_chance': '0.1', 
'sstable_compression': 'LZ4Compressor'};

From: Igor <i...@4friends.od.ua<mailto:i...@4friends.od.ua>>
Reply-To: "user@cassandra.apache.org<mailto:user@cassandra.apache.org>" 
<user@cassandra.apache.org<mailto:user@cassandra.apache.org>>
Date: Thursday, May 16, 2013 4:27 PM
To: "user@cassandra.apache.org<mailto:user@cassandra.apache.org>" 
<user@cassandra.apache.org<mailto:user@cassandra.apache.org>>
Subject: Re: SSTable size versus read performance

just in case it will be useful to somebody - here is my checklist for better 
read performance from SSD

1. limit read-ahead to 16 or 32
2. enable 'trickle_fsync' (available starting from cassandra 1.1.x)
3. use 'deadline' io-scheduler (much more important for rotational drives then 
for SSD)
4. format data partition starting on 2048 sector boundary
5. use ext4 with noatime,nodiratime,discard mount options

On 05/16/2013 10:48 PM, Edward Capriolo wrote:
I was going to say something similar I feel like the SSD drives read much 
"more" then the standard drive. Read Ahead/arge sectors could and probably does 
explain it.


On Thu, May 16, 2013 at 3:43 PM, Bryan Talbot 
<btal...@aeriagames.com<mailto:btal...@aeriagames.com>> wrote:
512 sectors for read-ahead.  Are your new fancy SSD drives using large sectors? 
 If your read-ahead is really reading 512 x 4KB per random IO, then that 2 MB 
per read seems like a lot of extra overhead.

-Bryan




On Thu, May 16, 2013 at 12:35 PM, Keith Wright 
<kwri...@nanigans.com<mailto:kwri...@nanigans.com>> wrote:
We actually have it set to 512.  I have tried decreasing my SSTable size to 5 
MB and changing the chunk size to 8 kb

From: Igor <i...@4friends.od.ua<mailto:i...@4friends.od.ua>>
Reply-To: "user@cassandra.apache.org<mailto:user@cassandra.apache.org>" 
<user@cassandra.apache.org<mailto:user@cassandra.apache.org>>
Date: Thursday, May 16, 2013 1:55 PM

To: "user@cassandra.apache.org<mailto:user@cassandra.apache.org>" 
<user@cassandra.apache.org<mailto:user@cassandra.apache.org>>
Subject: Re: SSTable size versus read performance

My 5 cents: I'd check blockdev --getra for data drives - too high values for 
readahead (default to 256 for debian) can hurt read performance.



Reply via email to