Class SkipListMemtable

All Implemented Interfaces:
Comparable<Memtable>, CellSourceIdentifier, Memtable, UnfilteredSource

public class SkipListMemtable extends AbstractAllocatorMemtable
  • Field Details

    • FACTORY

      public static final Memtable.Factory FACTORY
    • ROW_OVERHEAD_HEAP_SIZE

      protected static final int ROW_OVERHEAD_HEAP_SIZE
  • Constructor Details

  • Method Details

    • isClean

      public boolean isClean()
      Description copied from interface: Memtable
      True if the memtable contains no data
    • put

      public long put(PartitionUpdate update, UpdateTransaction indexer, OpOrder.Group opGroup)
      Should only be called by ColumnFamilyStore.apply via Keyspace.apply, which supplies the appropriate OpOrdering. commitLogSegmentPosition should only be null if this is a secondary index, in which case it is *expected* to be null
      Parameters:
      update - the partition update, may be a new partition or an update to an existing one
      indexer - receives information about the update's effect
      opGroup - write operation group, used to permit the operation to complete if it is needed to complete a flush to free space.
      Returns:
      the smallest timestamp delta between corresponding rows from existing and update. A timestamp delta being computed as the difference between the cells and DeletionTimes from any existing partition and those in update. See CASSANDRA-7979.
    • partitionCount

      public long partitionCount()
      Description copied from interface: Memtable
      Number of partitions stored in the memtable
    • partitionIterator

      public org.apache.cassandra.db.memtable.SkipListMemtable.MemtableUnfilteredPartitionIterator partitionIterator(ColumnFilter columnFilter, DataRange dataRange, SSTableReadsListener readsListener)
      Description copied from interface: UnfilteredSource
      Returns a partition iterator for the given data range.
      Parameters:
      columnFilter - filter to apply to all returned partitions
      dataRange - the partition and clustering range queried
      readsListener - a listener used to handle internal read events
    • rowIterator

      public UnfilteredRowIterator rowIterator(DecoratedKey key, Slices slices, ColumnFilter selectedColumns, boolean reversed, SSTableReadsListener listener)
      Description copied from interface: UnfilteredSource
      Returns a row iterator for the given partition, applying the specified row and column filters.
      Parameters:
      key - the partition key
      slices - the row ranges to return
      selectedColumns - filter to apply to all returned partitions
      reversed - true if the content should be returned in reverse order
      listener - a listener used to handle internal read events
    • rowIterator

      public UnfilteredRowIterator rowIterator(DecoratedKey key)
    • getFlushSet

      Description copied from interface: Memtable
      Get the collection of data between the given partition boundaries in a form suitable for flushing.
    • getLiveDataSize

      public long getLiveDataSize()
      Description copied from interface: Memtable
      Size of the data not accounting for any metadata / mapping overheads
    • makeUnflushable

      public void makeUnflushable()
      For testing only. Give this memtable too big a size to make it always fail flushing.