I have a few questions about secondary indexes.

1st Question:

Quoting this FAQ: https://wiki.apache.org/cassandra/SecondaryIndexes

Q: When you write a new row, when/how does the index get updated? What I
> would like to know is the atomicity of the operation--is the "index write"
> part of the "row write"?
> A: The row and index updates are one, atomic operation.

Suppose that I have created a table and a secondary index. Since a delete
is considered a write, if I delete rows in my table, is it correct that the
index would automatically be changed as well?

2nd Question:

Quoting this documentation:

The index indexes column values in a separate, hidden table from the one
> that contains the values being indexed.

Wondering, under what situations is it necessary to run *nodetool

Does it need to be run in order to evict tombstones in the hidden table? I
would think that if the secondary index is stored in a Cassandra table,
whether hidden or not, that *repair* should handle evicting tombstones. My
guess is that *rebuild_index* like *repair* needs to be run in the event of
prolonged network outages or downed nodes, but should be run regularly, but
this is confusing, since if *repair *were to write data to a node, wouldn't
the "*row and index updates occur in one, atomic operation*".  I need
clarification on the reasons to run *rebuild_index*.

Thank you and best regards,

Reply via email to