The docs for the CLI say:

- min_compaction_threshold: The minimum number of SSTables needed
to start a minor compaction. Default is 4, setting to 0 disables minor
compactions.

If you are getting an error using 0 can you please raise a ticket on 
https://issues.apache.org/jira/browse/CASSANDRA

(Also you can also set the compaction threshold on a single node via nodetool. )

Thanks
-----------------
Aaron Morton
Freelance Developer
@aaronmorton
http://www.thelastpickle.com

On 18/05/2012, at 3:09 PM, Vijay wrote:

> I would rather set the Keyspace setting min_compaction_threshold and 
> max_compaction_threshold to be a higher number and once i am ready i will put 
> the value back... This way i dont need to restart. 
> Having said that why not set the compaction throughput to 1 (low enough to 
> not have contention) and complete the stream?
> 
> Regards,
> </VJ>
> 
> 
> 
> On Wed, May 16, 2012 at 2:43 PM, sj.climber <sj.clim...@gmail.com> wrote:
> Hi,
> 
> In an effort to minimize IO contention, I'd like to disable compactions
> while I'm streaming SSTables to the cluster.  When done streaming, I intend
> on forcing a major compaction through nodetool.
> 
> Elsewhere in the forums, various folks suggest setting
> max_compaction_threshold = 0 to disable compaction.  While this works
> sometimes (via 'update column family <family> with
> max_compaction_threshold=0'), I've observed a number of serious issues with
> this approach:
> 
> 1) You can't create a column family with max_compaction_threshold = 0.  The
> CLI reports that min_compaction_threshold must have a value >= 2, and
> max_compaction_threshold can't be lower than it.  Worse yet, trying to
> create a column family with max_compaction_threshold = 0 gets the cluster
> into a Schema Disagreement Exception (since the node on which you issue the
> migration command fails with a fatal error).
> 
> 2) Cassandra will allow me to update an existing column family with
> max_compaction_threshold = 0.  But if I restart the node, it will crash on
> startup.
> java.lang.reflect.InvocationTargetException
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
> org.apache.commons.daemon.support.DaemonLoader.load(DaemonLoader.java:160)
> Caused by: java.lang.RuntimeException:
> java.lang.reflect.InvocationTargetException
> ...
> org.apache.cassandra.config.CFMetaData.createCompactionStrategyInstance(CFMetaData.java:839)
>        ... 14 more
> Caused by: java.lang.RuntimeException: The max_compaction_threshold cannot
> be smaller than the min.
>        at
> org.apache.cassandra.db.ColumnFamilyStore.setMaximumCompactionThreshold(ColumnFamilyStore.java:1740)
>        at org.apache.
> 
> 
> Is there another solution for more safely enabling/disabling compaction?
> 
> Thanks!
> 
> --
> View this message in context: 
> http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/Safely-Disabling-Compaction-tp7562777.html
> Sent from the cassandra-u...@incubator.apache.org mailing list archive at 
> Nabble.com.
> 

Reply via email to