Carole Nash
Carole Nash

Reputation: 118

What is SSTable in Cassandra? How is it different from other relational tables?

What is SSTable in Cassandra? How is it different from other relational tables? Is the SSTable stored on disk? How is the bloom filter and sparse index related to the SSTable?

Upvotes: 2

Views: 800

Answers (2)

Aaron
Aaron

Reputation: 57748

Just to expand on the Bloom Filter a bit...

A Bloom Filter is a probabilistic structure. In Cassandra, a Bloom Filter is used with the SSTable file at read time to help determine whether or not a particular SSTable has the requested data. Basically, the Bloom Filter provides one of two answers in the read path:

  • This SSTable file may contain the requested data.
  • This SSTable file definitely does not contain the requested data.

From the doc linked below:

because the Bloom filter is a probabilistic function, it can result in false positives. Not all SSTables identified by the Bloom filter will have data. If the Bloom filter does not rule out an SSTable, Cassandra checks the partition key cache.

The DataStax documentation has more detail on this and other structures used in the read path:

How is data read?

Upvotes: 0

Dewey Munoz
Dewey Munoz

Reputation: 360

SSTable expands to ‘Sorted String Table,’ which refers to an important data file in Cassandra and accepts regular written memtables. They are stored on disk and exist for each Cassandra table. Exhibiting immutability, SSTables do not allow any further addition and removal of data items once written. For each SSTable, Cassandra creates three separate files like partition index, partition summary, and a bloom filter.

Upvotes: 1

Related Questions