This class starts a Thrift CassandraDaemon inside the current JVM. This class
supports testing and shouldn't be used in production.
This class starts Cassandra on the first invocation of
start(String) in the life of the JVM.
Invocations after the first have no effect except that they may log a
warning.
When the thread that first called
#start(String) dies, a daemon
thread returns from
Thread.join() and kills all embedded Cassandra
threads in the JVM.
This class once supported consecutive, idempotent calls to start(String) so
long as the argument was the same in each invocation. It also once used
refcounting to kill Cassandra's non-daemon threads once stop() was called as
many times as start(). Some of Cassandra's background threads and statics
can't be easily reset to allow a restart inside the same JVM, so this was
intended as a one-use thing. However, this interacts poorly with the new
KCVConfiguration system in titan-core. When KCVConfiguration is in use, core
starts and stops each backend at least twice in the course of opening a
single database instance. So the old refcounting and killing approach is out.