IndexTransaction (apache-cassandra API)
Date: 2018-02-14

org.apache.cassandra.index.transactions

## Interface IndexTransaction

- All Known Subinterfaces:
    CleanupTransaction, CompactionTransaction, UpdateTransaction

      public interface IndexTransaction

  Base interface for the handling of index updates. There are 3 types of transaction where indexes are updated to stay in sync with the base table, each represented by a subinterface: * `UpdateTransaction` Used on the regular write path and when indexing newly acquired SSTables from streaming or sideloading. This type of transaction may include both row inserts and updates to rows previously existing in the base Memtable. Instances are scoped to a single partition update and are obtained from the factory method `SecondaryIndexManager#newUpdateTransaction` * `CompactionTransaction` Used during compaction when stale entries which have been superceded are cleaned up from the index. As rows in a partition are merged during the compaction, index entries for any purged rows are cleaned from the index to compensate for the fact that they may not have been removed at write time if the data in the base table had been already flushed to disk (and so was processed as an insert, not an update by the UpdateTransaction). These transactions are currently scoped to a single row within a partition, but this could be improved to batch process multiple rows within a single partition. * @{code CleanupTransaction} During cleanup no merging is required, the only thing to do is to notify indexes of the partitions being removed, along with the rows within those partitions. Like with compaction, these transactions are currently scoped to a single row within a partition, but this could be improved with batching.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `IndexTransaction.Type` Used to differentiate between type of index transaction when obtaining a handler from Index implementations.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `commit()`
    `void` | `start()`

- - ### Method Detail

    - #### start

          void start()

    - #### commit

          void commit()

Copyright © 2018 The Apache Software Foundation