[ 
https://issues.apache.org/jira/browse/CASSANDRA-7976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14386275#comment-14386275
 ] 

Stefania commented on CASSANDRA-7976:
-------------------------------------

Verified {{index_interval}} on cassandra-2.0 and reproduced the problem, added 
unit test.

Verified {{min_index_interval}} and {{max_index_interval}} on trunk and 
cassandra-2.1 but could not reproduce.

The problem for 2.0 is that the index interval is not updated in 
{{CFMetadata.apply()}}. As a consequence, the index interval was never changed, 
this is clearly visible in the log file, despite what the cqlsh DESC command 
shows. The reason why the initial DESC command shows an updated index interval 
is that the migration manager pushes a schema change that was not correctly 
applied.

When the index interval was changed into min and max on cassandra-2.1, 
{{CFMetadata.apply()}} was fixed (verified on trunk).

The patch for 2.0 is here: https://github.com/stef1927/cassandra/commits/7976.


> 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
>            Assignee: Stefania
>              Labels: cql3, metadata
>
> 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)

Reply via email to