Class Tracker

java.lang.Object
org.apache.cassandra.db.lifecycle.Tracker

public class Tracker extends Object
Tracker tracks live View of data store for a table.
  • Field Details

    • cfstore

      public final ColumnFamilyStore cfstore
    • loadsstables

      public final boolean loadsstables
  • Constructor Details

    • Tracker

      public Tracker(ColumnFamilyStore columnFamilyStore, Memtable memtable, boolean loadsstables)
      Parameters:
      columnFamilyStore -
      memtable - Initial Memtable. Can be null.
      loadsstables - true to indicate to load SSTables (TODO: remove as this is only accessed from 2i)
  • Method Details

    • newDummyTracker

      public static Tracker newDummyTracker()
    • tryModify

      public LifecycleTransaction tryModify(SSTableReader sstable, OperationType operationType)
    • tryModify

      public LifecycleTransaction tryModify(Iterable<? extends SSTableReader> sstables, OperationType operationType)
      Returns:
      a Transaction over the provided sstables if we are able to mark the given @param sstables as compacted, before anyone else
    • updateLiveDiskSpaceUsed

      public void updateLiveDiskSpaceUsed(long adjustment)
    • addInitialSSTables

      public void addInitialSSTables(Collection<SSTableReader> sstables)
    • addInitialSSTablesWithoutUpdatingSize

      public void addInitialSSTablesWithoutUpdatingSize(Collection<SSTableReader> sstables)
    • updateInitialSSTableSize

      public void updateInitialSSTableSize(Iterable<SSTableReader> sstables)
    • addSSTables

      public void addSSTables(Collection<SSTableReader> sstables)
    • reset

      public void reset(Memtable memtable)
      (Re)initializes the tracker, purging all references.
    • dropSSTablesIfInvalid

      public Throwable dropSSTablesIfInvalid(Throwable accumulate)
    • dropSSTables

      public void dropSSTables()
    • dropSSTables

      public Throwable dropSSTables(Throwable accumulate)
    • dropSSTables

      public Throwable dropSSTables(com.google.common.base.Predicate<SSTableReader> remove, OperationType operationType, Throwable accumulate)
      removes all sstables that are not busy compacting.
    • removeUnreadableSSTables

      public void removeUnreadableSSTables(File directory)
      Removes every SSTable in the directory from the Tracker's view.
      Parameters:
      directory - the unreadable directory, possibly with SSTables in it, but not necessarily.
    • getMemtableFor

      public Memtable getMemtableFor(OpOrder.Group opGroup, CommitLogPosition commitLogPosition)
      get the Memtable that the ordered writeOp should be directed to
    • switchMemtable

      public Memtable switchMemtable(boolean truncating, Memtable newMemtable)
      Switch the current memtable. This atomically appends a new memtable to the end of the list of active memtables, returning the previously last memtable. It leaves the previous Memtable in the list of live memtables until discarding(memtable) is called. These two methods must be synchronized/paired, i.e. m = switchMemtable must be followed by discarding(m), they cannot be interleaved.
      Returns:
      the previously active memtable
    • markFlushing

      public void markFlushing(Memtable memtable)
    • replaceFlushed

      public void replaceFlushed(Memtable memtable, Collection<SSTableReader> sstables)
    • getCompacting

      public Set<SSTableReader> getCompacting()
    • getUncompacting

      public Iterable<SSTableReader> getUncompacting()
    • getUncompacting

      public Iterable<SSTableReader> getUncompacting(Iterable<SSTableReader> candidates)
    • maybeIncrementallyBackup

      public void maybeIncrementallyBackup(Iterable<SSTableReader> sstables)
    • notifySSTableRepairedStatusChanged

      public void notifySSTableRepairedStatusChanged(Collection<SSTableReader> repairStatusesChanged)
    • notifySSTableMetadataChanged

      public void notifySSTableMetadataChanged(SSTableReader levelChanged, StatsMetadata oldMetadata)
    • notifyDeleting

      public void notifyDeleting(SSTableReader deleting)
    • notifyTruncated

      public void notifyTruncated(long truncatedAt)
    • notifyRenewed

      public void notifyRenewed(Memtable renewed)
    • notifySwitched

      public void notifySwitched(Memtable previous, Memtable next)
    • notifyDiscarded

      public void notifyDiscarded(Memtable discarded)
    • isDummy

      public boolean isDummy()
    • subscribe

      public void subscribe(INotificationConsumer consumer)
    • contains

      public boolean contains(INotificationConsumer consumer)
    • unsubscribe

      public void unsubscribe(INotificationConsumer consumer)
    • getView

      public View getView()
    • removeUnsafe

      public void removeUnsafe(Set<SSTableReader> toRemove)