Class CoreLastByTableImportState<KEY_TYPE>

java.lang.Object
io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.TupleKeyedAbstractImportState<KEY_TYPE>
io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState<KEY_TYPE>
io.deephaven.enterprise.lastbystate.CoreLastByTableImportState<KEY_TYPE>
All Implemented Interfaces:
io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.logtailer.ImportState, io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.live.LiveTable, Externalizable, Serializable, Runnable

public class CoreLastByTableImportState<KEY_TYPE> extends io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState<KEY_TYPE>
Core+ ImportState for lastBy DIS instances.

This ImportState publishes a last-by view of the data being imported, producing a table intended for concurrent usage by clients with access to the importing process. Typically, the table is exported via Barrage so that other persistent queries can take advantage of improved initialization time.

See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    LocalTableMap with an associated LiveTableRefreshCombiner.

    Nested classes/interfaces inherited from class io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState

    io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState.RowSetFactoryAdapter
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor for an empty import state with null name.
    Constructor for an empty import state.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    ensureInitialized(@NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.locations.FullTableLocationKey locationKey)
     
    getPartitionedTable(@NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.locations.TableKey tableKey)
    Get a PartitionedTable keyed by TableLocationKey of Tables that contain only an RowSet and no user-facing ColumnSources.
    getPartitionedTable(@NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.locations.TableKey tableKey, @Nullable String name)
    Get a PartitionedTable keyed by TableLocationKey of Tables that contain only an RowSet and no user-facing ColumnSources.
    getPartitionedTable(@NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.locations.TableKey tableKey, @Nullable String name, @NotNull Supplier<UpdateGraph> updateGraphSupplier)
    Get a PartitionedTable keyed by TableLocationKey of Tables that contain only an RowSet and no user-facing ColumnSources.
    protected io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState.RowSetFactoryAdapter
     
    protected boolean
     
    protected void
    maybeUpdate(long[] addedKeys, long[] removedKeys)
     
    void
    onResume(@NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.locations.FullTableLocationKey locationKey)
     
    void
    onTruncate(@NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.locations.FullTableLocationKey locationKey)
     
    static void
    setSchemaService(io.deephaven.shadow.enterprise.com.illumon.iris.db.schema.SchemaService schemaService)
    Set the schema service to use when creating a new state for use in unit tests.
    void
    setUpdateGraph(@NotNull UpdateGraph updateGraph)
    Set the update graph to use for this state.
    protected void
     
    protected void
     

    Methods inherited from class io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState

    getImportDetails, getName, newRowForKey, onClose, onFlush, onRelease, readExternal, refresh, skipRow, writeExternal

    Methods inherited from class io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.TupleKeyedAbstractImportState

    newRow, newRow, newRow, newRow, prepareElement, prepareKey

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.live.LiveTable

    run
  • Constructor Details

    • CoreLastByTableImportState

      public CoreLastByTableImportState()
      Constructor for an empty import state with null name.
    • CoreLastByTableImportState

      public CoreLastByTableImportState(String name)
      Constructor for an empty import state.
      Parameters:
      name - The name for this last-by view (see getPartitionedTable(TableKey, String)).
  • Method Details

    • getPartitionedTable

      public static CoreLastByTableImportState.ResultPartitionedTable getPartitionedTable(@NotNull @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.locations.TableKey tableKey)
      Get a PartitionedTable keyed by TableLocationKey of Tables that contain only an RowSet and no user-facing ColumnSources. The contents of the result are produced by LastByImportState instances for the supplied TableKey and null name
      Parameters:
      tableKey - The key
      Returns:
      The table map, possibly empty
    • getPartitionedTable

      public static CoreLastByTableImportState.ResultPartitionedTable getPartitionedTable(@NotNull @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.locations.TableKey tableKey, @Nullable @Nullable String name)
      Get a PartitionedTable keyed by TableLocationKey of Tables that contain only an RowSet and no user-facing ColumnSources. The contents of the result are produced by LastByTableImportState instances for the supplied TableKey and name. Distinct names should be used for distinct last-by import state views of the same table.

      The default update graph is used for creating new tables.

      Parameters:
      tableKey - The key
      name - The name
      Returns:
      The table map, possibly empty
    • getPartitionedTable

      public static CoreLastByTableImportState.ResultPartitionedTable getPartitionedTable(@NotNull @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.locations.TableKey tableKey, @Nullable @Nullable String name, @NotNull @NotNull Supplier<UpdateGraph> updateGraphSupplier)
      Get a PartitionedTable keyed by TableLocationKey of Tables that contain only an RowSet and no user-facing ColumnSources. The contents of the result are produced by LastByTableImportState instances for the supplied TableKey and name. Distinct names should be used for distinct last-by import state views of the same table.
      Parameters:
      tableKey - The key
      name - The name
      updateGraphSupplier - A supplier for the update graph to construct a new table
      Returns:
      The table map, possibly empty
    • setUpdateGraph

      @TestUseOnly public void setUpdateGraph(@NotNull @NotNull UpdateGraph updateGraph)
      Set the update graph to use for this state. Note, that you must set this before creating any engine artifacts.
      Parameters:
      updateGraph - the update graph to use for this state
    • setSchemaService

      @TestUseOnly public static void setSchemaService(io.deephaven.shadow.enterprise.com.illumon.iris.db.schema.SchemaService schemaService)
      Set the schema service to use when creating a new state for use in unit tests.
      Parameters:
      schemaService - the schema service to use.
    • getRowSetFactoryAdapter

      protected io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState.RowSetFactoryAdapter getRowSetFactoryAdapter()
      Specified by:
      getRowSetFactoryAdapter in class io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState<KEY_TYPE>
    • ensureInitialized

      public void ensureInitialized(@NotNull @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.locations.FullTableLocationKey locationKey)
      Specified by:
      ensureInitialized in interface io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.logtailer.ImportState
      Specified by:
      ensureInitialized in class io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState<KEY_TYPE>
    • onResume

      public void onResume(@NotNull @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.locations.FullTableLocationKey locationKey)
      Specified by:
      onResume in interface io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.logtailer.ImportState
      Specified by:
      onResume in class io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState<KEY_TYPE>
    • onTruncate

      public void onTruncate(@NotNull @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.locations.FullTableLocationKey locationKey)
      Specified by:
      onTruncate in interface io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.logtailer.ImportState
      Overrides:
      onTruncate in class io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState<KEY_TYPE>
    • startRefreshing

      protected void startRefreshing()
      Specified by:
      startRefreshing in class io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState<KEY_TYPE>
    • stopRefreshing

      protected void stopRefreshing()
      Specified by:
      stopRefreshing in class io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState<KEY_TYPE>
    • isValidToRefresh

      protected boolean isValidToRefresh()
      Specified by:
      isValidToRefresh in class io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState<KEY_TYPE>
    • maybeUpdate

      protected void maybeUpdate(long[] addedKeys, long[] removedKeys)
      Specified by:
      maybeUpdate in class io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState<KEY_TYPE>