Apache Cassandra™ 2.0

About index updates

To update an index Cassandra appends data to the commit log, updates the memtable, and updates the index. Writing to a table having an index involves more work than writing to a table without an index, but the update process has been improved in Cassandra 1.2 and later. The need for a synchronization lock to prevent concurrency issues for heavy insert loads has been removed.

When a column is updated, the index is updated. If the old column value was still in the memtable, which typically occurs when updating a small set of rows repeatedly, Cassandra removes the index entry; otherwise, the old entry remains to be purged by compaction. If a read sees a stale index entry before compaction purges it, the reader thread invalidates it.

As with relational databases, keeping indexes up to date is not free, so unnecessary indexes should be avoided.

Show/hide