You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Andrew Lenards (JIRA)" <ji...@apache.org> on 2014/09/19 02:05:34 UTC

[jira] [Created] (CASSANDRA-7976) Changes to index_interval table properties revert after subsequent modifications

Andrew Lenards created CASSANDRA-7976:
-----------------------------------------

             Summary: Changes to index_interval table properties revert after subsequent modifications
                 Key: CASSANDRA-7976
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7976
             Project: Cassandra
          Issue Type: Bug
          Components: Config
         Environment: cqlsh 4.1.1, Cassandra 2.0.9-SNAPSHOT (built w/ `ccm` on Mac OS X 10.9.4 with Java 1.7.0_67 - more detail below)

$ java -version 
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

$ mvn --version 
Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T13:58:10-07:00)
Maven home: /usr/local/Cellar/maven/3.2.3/libexec
Java version: 1.7.0_67, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.9.4", arch: "x86_64", family: "mac"
            Reporter: Andrew Lenards


It appears that if you want to increase the sampling in *-Summary.db files, you would change the default for {{index_interval}} table property from the {{128}} default value to {{256}} on a given CQL {{TABLE}}.

However, if you {{ALTER TABLE}} after setting the value, {{index_interval}} returns to the default, {{128}}. This is unexpected behavior. I would expect the value for {{index_interval}} to not be affected by subsequent {{ALTER TABLE}} statements.

As noted in Environment, this was seen with a 2.0.9-SNAPSHOT built w/ `ccm`. 

If I just use a table from one of DataStax documentation tutorials (musicdb as mdb):

{noformat}
cqlsh:mdb> DESC TABLE songs;

CREATE TABLE songs (
  id uuid,
  album text,
  artist text,
  data blob,
  reviews list<text>,
  tags set<text>,
  title text,
  venue map<timestamp, text>,
  PRIMARY KEY ((id))
) WITH
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=0.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='99.0PERCENTILE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
{noformat}

We've got {{128}} as expected.

We alter it:

{noformat}
cqlsh:mdb> ALTER TABLE songs WITH index_interval = 256; 
{noformat}

And the change appears: 

{noformat}
cqlsh:mdb> DESC TABLE songs;

CREATE TABLE songs (
  id uuid,
  album text,
  artist text,
  data blob,
  reviews list<text>,
  tags set<text>,
  title text,
  venue map<timestamp, text>,
  PRIMARY KEY ((id))
) WITH
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=256 AND
  read_repair_chance=0.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='99.0PERCENTILE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
{noformat}

But if do another {{ALTER TABLE}}, say, change the caching or comment, the {{index_interval}} will revert back to {{128}}.

{noformat}
cqlsh:mdb> ALTER TABLE songs WITH caching = 'none'; 
cqlsh:mdb> DESC TABLE songs; 

CREATE TABLE songs (
  id uuid,
  album text,
  artist text,
  data blob,
  reviews list<text>,
  tags set<text>,
  title text,
  venue map<timestamp, text>,
  PRIMARY KEY ((id))
) WITH
  bloom_filter_fp_chance=0.010000 AND
  caching='NONE' AND
  comment='' AND
  dclocal_read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  index_interval=128 AND
  read_repair_chance=0.000000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  default_time_to_live=0 AND
  speculative_retry='99.0PERCENTILE' AND
  memtable_flush_period_in_ms=0 AND
  compaction={'class': 'SizeTieredCompactionStrategy'} AND
  compression={'sstable_compression': 'LZ4Compressor'};
{noformat}

It should be index_interval=256.

I know that 2.1 will replace {{index_interval}}. 

I have not confirmed any behavior with {{min_index_interval}} nor {{max_index_interval}} (which is described in resolved #6379). 




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)