Class IncrementalChunkedOperatorAggregationStateManagerOpenAddressedBase

java.lang.Object
io.deephaven.engine.table.impl.by.IncrementalChunkedOperatorAggregationStateManagerOpenAddressedBase
All Implemented Interfaces:
IncrementalOperatorAggregationStateManager

public abstract class IncrementalChunkedOperatorAggregationStateManagerOpenAddressedBase extends Object implements IncrementalOperatorAggregationStateManager
  • Field Details

    • CHUNK_SIZE

      public static final int CHUNK_SIZE
    • tableSize

      protected int tableSize
      The number of slots in our table.
    • alternateTableSize

      protected int alternateTableSize
      The number of slots in our alternate table, to start with "1" is a lie, but rehashPointer is zero; so our location value is positive and can be compared against rehashPointer safely
    • fullRehash

      protected boolean fullRehash
      Should we rehash the entire table fully (true) or incrementally (false)?
    • rehashPointer

      protected int rehashPointer
      How much of the alternate sources are necessary to rehash?
    • numEntries

      protected long numEntries
    • mainKeySources

      protected final WritableColumnSource[] mainKeySources
      The keys for our hash entries.
    • alternateKeySources

      protected final ColumnSource[] alternateKeySources
      The keys for our hash entries, for the old alternative smaller table.
    • EMPTY_OUTPUT_POSITION

      protected static final int EMPTY_OUTPUT_POSITION
      Our state value used when nothing is there.
      See Also:
    • mainOutputPosition

      protected ImmutableIntArraySource mainOutputPosition
      The state value for the bucket, parallel to mainKeySources (the state is an output row key for the aggregation).
    • alternateOutputPosition

      protected ImmutableIntArraySource alternateOutputPosition
      The state value for the bucket, parallel to alternateKeySources (the state is an output row key for the aggregation).
    • outputPositionToHashSlot

      protected final IntegerArraySource outputPositionToHashSlot
      Used as a row redirection for the output key sources, updated using the mainInsertMask to identify the main vs. alternate values.
    • nextOutputPosition

      protected MutableInt nextOutputPosition
      State variables that exist as part of the update.
    • outputPositions

      protected WritableIntChunk<RowKeys> outputPositions
    • alternatingColumnSources

      protected AlternatingColumnSource[] alternatingColumnSources
      Output alternating column sources.
    • mainInsertMask

      protected int mainInsertMask
      The mask for insertion into the main table (this tells our alternating column sources which of the two sources to access for a given key).
    • UNKNOWN_ROW

      static final int UNKNOWN_ROW
      See Also:
  • Constructor Details

    • IncrementalChunkedOperatorAggregationStateManagerOpenAddressedBase

      protected IncrementalChunkedOperatorAggregationStateManagerOpenAddressedBase(ColumnSource<?>[] tableKeySources, int tableSize, double maximumLoadFactor)
  • Method Details