Class LastByTableImportState<KEY_TYPE>
java.lang.Object
com.illumon.iris.db.tables.dataimport.importstate.TupleKeyedAbstractImportState<KEY_TYPE>
com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState<KEY_TYPE>
com.illumon.iris.db.tables.dataimport.importstate.lastby.LastByTableImportState<KEY_TYPE>
- All Implemented Interfaces:
ImportState
,LiveTable
,Externalizable
,Serializable
,Runnable
ImportState that 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.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
LocalTableMap with an associated LiveTableRefreshCombiner.Nested classes/interfaces inherited from class com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState
BaseLastByTableImportState.RowSetFactoryAdapter
-
Constructor Summary
ConstructorsConstructorDescriptionConstructor for an empty import state with null name.LastByTableImportState
(String name) Constructor for an empty import state. -
Method Summary
Modifier and TypeMethodDescriptionvoid
ensureInitialized
(FullTableLocationKey locationKey) Called when non-import code needs to ensure that an ImportState's internals have been initialized because of their side effects.Get the builder suitable for creating an initial RowSet (or Index) for this engine.getTableMap
(TableKey tableKey) Get aLocalTableMap
keyed byTableLocationKey
ofDynamicTable
s that contain only anIndex
and no user-facingColumnSource
s.getTableMap
(TableKey tableKey, String name) Get aLocalTableMap
keyed byTableLocationKey
ofDynamicTable
s that contain only anIndex
and no user-facingColumnSource
s.protected boolean
Verify that this state remains valid for refreshing.protected void
maybeUpdate
(long[] addedKeys, long[] removedKeys) Update the table if we remain the owner of the ImportStatevoid
onResume
(FullTableLocationKey locationKey) Called when data ingestion is resumed for the location observed by this ImportState.void
onTruncate
(FullTableLocationKey locationKey) Called when the underlying table location has been truncated.protected void
protected void
Methods inherited from class com.illumon.iris.db.tables.dataimport.importstate.lastby.BaseLastByTableImportState
getImportDetails, getName, newRowForKey, onClose, onFlush, onRelease, readExternal, refresh, skipRow, writeExternal
Methods inherited from class com.illumon.iris.db.tables.dataimport.importstate.TupleKeyedAbstractImportState
newRow, newRow, newRow, newRow, prepareElement, prepareKey
-
Constructor Details
-
LastByTableImportState
public LastByTableImportState()Constructor for an empty import state with null name. -
LastByTableImportState
Constructor for an empty import state.- Parameters:
name
- The name for this last-by view (seegetTableMap(TableKey, String)
).
-
-
Method Details
-
getTableMap
Get aLocalTableMap
keyed byTableLocationKey
ofDynamicTable
s that contain only anIndex
and no user-facingColumnSource
s. The contents of the result are produced by LastByImportState instances for the suppliedTableKey
and null name- Parameters:
tableKey
- The key- Returns:
- The table map, possibly empty
-
getTableMap
public static LastByTableImportState.ResultTableMap getTableMap(@NotNull TableKey tableKey, String name) Get aLocalTableMap
keyed byTableLocationKey
ofDynamicTable
s that contain only anIndex
and no user-facingColumnSource
s. The contents of the result are produced by LastByTableImportState instances for the suppliedTableKey
and name. Distinct names should be used for distinct last-by import state views of the same table. TODO: Consider whether we should implement a LocalTableMap equivalent that stores weakly-reachable values.- Parameters:
tableKey
- The keyname
- The name- Returns:
- The table map, possibly empty
-
getRowSetFactoryAdapter
Description copied from class:BaseLastByTableImportState
Get the builder suitable for creating an initial RowSet (or Index) for this engine.- Specified by:
getRowSetFactoryAdapter
in classBaseLastByTableImportState<KEY_TYPE>
- Returns:
- the RowSetAdapter for this concrete state.
-
ensureInitialized
Description copied from interface:ImportState
Called when non-import code needs to ensure that an ImportState's internals have been initialized because of their side effects. Must not interfere with concurrent data ingestion in the same process. Generally should be treated as a query operation, and the caller should hold theLiveTableMonitor
lock.- Specified by:
ensureInitialized
in interfaceImportState
- Specified by:
ensureInitialized
in classBaseLastByTableImportState<KEY_TYPE>
- Parameters:
locationKey
- The full table location key of the location whose ImportState is being initialized
-
onResume
Description copied from interface:ImportState
Called when data ingestion is resumed for the location observed by this ImportState.- Specified by:
onResume
in interfaceImportState
- Specified by:
onResume
in classBaseLastByTableImportState<KEY_TYPE>
- Parameters:
locationKey
- The full table location key of the location that has been resumed
-
onTruncate
Description copied from interface:ImportState
Called when the underlying table location has been truncated. Useful for resetting any in-memory state that may otherwise linger inappropriately.- Specified by:
onTruncate
in interfaceImportState
- Overrides:
onTruncate
in classBaseLastByTableImportState<KEY_TYPE>
- Parameters:
locationKey
- The full table location key of the location that has been truncated
-
startRefreshing
protected void startRefreshing()- Specified by:
startRefreshing
in classBaseLastByTableImportState<KEY_TYPE>
-
stopRefreshing
protected void stopRefreshing()- Specified by:
stopRefreshing
in classBaseLastByTableImportState<KEY_TYPE>
-
isValidToRefresh
protected boolean isValidToRefresh()Description copied from class:BaseLastByTableImportState
Verify that this state remains valid for refreshing.- Specified by:
isValidToRefresh
in classBaseLastByTableImportState<KEY_TYPE>
- Returns:
- true if this state is valid for refreshing.
-
maybeUpdate
protected void maybeUpdate(long[] addedKeys, long[] removedKeys) Description copied from class:BaseLastByTableImportState
Update the table if we remain the owner of the ImportState- Specified by:
maybeUpdate
in classBaseLastByTableImportState<KEY_TYPE>
- Parameters:
addedKeys
- row keys (positions in this partition) added to the tableremovedKeys
- row keys (positions in this partition) removed from the table
-