Separate table directories

Cassandra provides fine-grained control of table storage on disk.

Cassandra provides fine-grained control of table storage on disk, writing tables to disk using separate directories for each table. From the installation directory, data files are stored using this directory and file naming format on default tarball installations:

/data/data/ks1/cf1-5be396077b811e3a3ab9dc4b9ac088d/ks1-cf1-hc-1-Data.db

On packaged installations, the data files are stored in the same format, but in /var/lib/cassandra/data by default. In this example, ks1 represents the keyspace name to distinguish the keyspace for streaming or bulk loading data. A hexadecimal string, 5be396077b811e3a3ab9dc4b9ac088d in this example, is appended to table names to represent unique table IDs.

Cassandra creates a subdirectory for each table, which allows you to symlink a table to a chosen physical drive or data volume. This provides the capability to move very active tables to faster media, such as SSD’s for better performance, and also divvy up tables across all attached storage devices for better I/O balance at the storage layer.