BigTable-like databases store rows sorted by their keys.
Cassandra uses the combination of partition and clustering keys to keep the data distributed and sorted; Yet, you're able to select rows only by having the partition key!
How is Cassandra architectured to work this way?
For example, a way around this in RocksDB is, you can have one default column family by partition key and another with partition and clustering combination keys and iterate over sorted data and retrieve by default column family, which you end up with very high space complexity!
Update: I guess Cassandra tries to store each column in a different key, It starts by partition key and iterated over the different "column names" - perhaps a combination of others the clustering columns. Refer to the picture of underlying storage engine -.
SELECT * From authors WHERE name = 'Tom Clancy' AND year = '1993'. In a table where "name" is partition key and "year" and "title" are the clustering columns.
The visulatiation of Cassandra Storage Layer for the above query.