We should be able to eliminate sstables based on the entire column name, even if it is a composite one right?
That won't work as well as we want unfortunately. Say your table is something like:
CREATE TABLE timeline (
PRIMARY KEY (key, category, time);
i.e. the (internal) column names are a composite with a category first and then a timeline for each category (not saying that model is smart, it's just an example to illustrate ).
Now say in one sstable you only have entries whose time is <= 10, but for category "a" through "z". So the min/max column names might be "a:0"/"z:10". So if you do a query like:
SELECT * FROM timeline WHERE key = 3 AND category = "c" AND time > 100
then we cannot eliminate the sstable above, because "a:0" < "c:100" < "z:10".
However, if we keep each component separately, we would keep: for category, min/max = "a"/"z" and for time, min/max = 0/10. And from that we can eliminate the sstable for the query above since the time queried is not in the min/max range for time.