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