Alex's answer is correct, but I thought I would add an additional input.
The secondary Cassandra (2i) indices are indeed intended for low power fields, i.e. things that are not unique to each entity / row.
If you have a spreadsheet of 250 million US citizens, using a secondary index to track the state they are in is an ideal use case for 2i. Using a secondary index to track social security numbers is not - it will create huge performance problems for reading and writing. You better create your own family of indexed columns in the second scenario.
2i are not replicated and must be created locally in each node, therefore, substantial work is required to restore them if you need to replace the node or add a new one.
Personally, I use 2i to filter the results of elements sorted by the same CQL string (i.e. all elements have the same section key) - it is quite effective in this case.
Aaronontheweb
source share