Description
Due to static dependencies, calling Keyspace.open trigger the creation of the CommitLog singleton which in turn trigger the start of all the threads used by the CommitLog.
For simple client like CQLSSTableWriter that dependency is an issue as it can prevent the JVM from shutting down if the CommitLog is not shutdown explicitly.
The following stacktrace show the initialization chain that trigger the CommitLog:
CommitLogSegmentManager.<init>() line: 173 CommitLog.<init>() line: 70 CommitLog.<clinit>() line: 55 Memtable.<init>(ColumnFamilyStore) line: 66 DataTracker.init() line: 378 DataTracker.<init>(ColumnFamilyStore) line: 54 ColumnFamilyStore.<init>(Keyspace, String, IPartitioner, int, CFMetaData, Directories, boolean) line: 281 ColumnFamilyStore.createColumnFamilyStore(Keyspace, String, IPartitioner, CFMetaData, boolean) line: 443 ColumnFamilyStore.createColumnFamilyStore(Keyspace, String, boolean) line: 414 Keyspace.initCf(UUID, String, boolean) line: 327 Keyspace.<init>(String, boolean) line: 280 Keyspace.open(String, Schema, boolean) line: 122