Rob is correct.

drain is really on there for when you need the commit log to be empty (some
upgrades or a complete backup of a shutdown cluster).

There really is no point to using to shutdown C* normally, just kill it...

On Wed, Oct 6, 2010 at 4:18 PM, Rob Coli <rc...@digg.com> wrote:

> On 10/6/10 1:13 PM, Aaron Morton wrote:
>
>> To shutdown cleanly, say in a production system, use nodetool drain
>> first. This will flush the memtables and put the node into a read only
>> mode, AFAIK this also gives the other nodes a faster way of detecting
>> the node is down via the drained node gossiping it's new status. Then
>> kill.
>>
>
> FWIW, the gossiper related code for "drain" (trunk) looks like it just
> stops the gossip service, which is almost certainly the same thing that
> happens if you kill Cassandra.
>
> ./src/java/org/apache/cassandra/service/StorageService.java
> "
>    public synchronized void drain() throws IOException,
> InterruptedException, ExecutionException
> ...
>  setMode("Starting drain process", true);
>        Gossiper.instance.stop();
> "
>
> ./src/java/org/apache/cassandra/gms/Gossiper.java
> "
>  public void stop()
>    {
>        scheduledGossipTask.cancel(false);
>    }
> "
>
> =Rob
>



-- 
Riptano
Software and Support for Apache Cassandra
http://www.riptano.com/
mden...@riptano.com
m: 512.587.0900 f: 866.583.2068

Reply via email to