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 Description
      static class  IndexTransaction.Type
      Used to differentiate between type of index transaction when obtaining a handler from Index implementations.
    • Method Detail

      • start

        void start()
      • commit

        void commit()