Class BarrageTable
java.lang.Object
io.deephaven.util.referencecounting.ReferenceCounted
io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
io.deephaven.engine.liveness.ReferenceCountedLivenessNode
io.deephaven.engine.liveness.LivenessArtifact
io.deephaven.engine.table.impl.LiveAttributeMap<IFACE_TYPE,IMPL_TYPE>
io.deephaven.engine.table.impl.BaseGridAttributes<Table,IMPL_TYPE>
io.deephaven.engine.table.impl.BaseTable<QueryTable>
io.deephaven.engine.table.impl.QueryTable
io.deephaven.extensions.barrage.table.BarrageTable
- All Implemented Interfaces:
TableOperations<Table,,Table> TableOperationsDefaults<Table,,Table> LogOutputAppendable,LivenessManager,LivenessNode,LivenessReferent,AttributeMap<Table>,GridAttributes<Table>,HasParentPerformanceIds,HasRefreshingSource,NotificationStepReceiver,NotificationStepSource,TableDefaults,BarrageMessage.Listener,Table,DynamicNode,NotificationQueue.Dependency,SystemicObject<Table>,LongSizedDataStructure,Serializable
- Direct Known Subclasses:
BarrageBlinkTable,BarrageRedirectedTable
public abstract class BarrageTable
extends QueryTable
implements BarrageMessage.Listener, HasRefreshingSource
A client side
Table that mirrors an upstream/server side Table.
Note that viewports are defined in row positions of the upstream table.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected classstatic interfaceNested classes/interfaces inherited from class io.deephaven.engine.table.impl.QueryTable
QueryTable.FilteredTable, QueryTable.MemoizableOperation<T extends DynamicNode & NotificationStepReceiver>, QueryTable.Operation<T extends DynamicNode & NotificationStepReceiver>Nested classes/interfaces inherited from class io.deephaven.engine.table.impl.BaseTable
BaseTable.CopyAttributeOperation, BaseTable.ListenerImpl, BaseTable.ShiftObliviousListenerImpl, BaseTable.SnapshotControlFactory<T extends ConstructSnapshot.SnapshotControl> -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final intprotected longthe capacity that the destSources been set tostatic final booleanprotected final WritableColumnSource<?>[]the reinterpreted destination writable sourcesprotected static final Loggerprotected final BarrageTable.StatsFields inherited from class io.deephaven.engine.table.impl.QueryTable
DATA_INDEX_FOR_WHERE_THRESHOLD, DISABLE_WHERE_PUSHDOWN_DATA_INDEX, DISABLE_WHERE_PUSHDOWN_PARQUET_DICTIONARY, DISABLE_WHERE_PUSHDOWN_PARQUET_ROW_GROUP_METADATA, ENABLE_PARALLEL_SNAPSHOT, MINIMUM_PARALLEL_SELECT_ROWS, MINIMUM_PARALLEL_SNAPSHOT_ROWS, SERIAL_SELECT_IMPLICIT_BARRIERS, STATELESS_FILTERS_BY_DEFAULT, STATELESS_SELECT_BY_DEFAULT, USE_DATA_INDEX_FOR_AGGREGATION, USE_DATA_INDEX_FOR_JOINS, USE_DATA_INDEX_FOR_WHEREFields inherited from class io.deephaven.engine.table.impl.BaseTable
definition, PRINT_SERIALIZED_UPDATE_OVERLAPS, updateGraph, VALIDATE_UPDATE_OVERLAPSFields inherited from interface io.deephaven.engine.table.GridAttributes
COLUMN_DESCRIPTIONS_ATTRIBUTE, DESCRIPTION_ATTRIBUTE, LAYOUT_HINTS_ATTRIBUTE, SORTABLE_COLUMNS_ATTRIBUTEFields inherited from interface io.deephaven.engine.table.impl.NotificationStepReceiver
NULL_NOTIFICATION_STEPFields inherited from interface io.deephaven.engine.table.Table
ADD_ONLY_TABLE_ATTRIBUTE, AGGREGATION_ROW_LOOKUP_ATTRIBUTE, APPEND_ONLY_TABLE_ATTRIBUTE, BARRAGE_PERFORMANCE_KEY_ATTRIBUTE, BARRAGE_SCHEMA_ATTRIBUTE, BLINK_TABLE_ATTRIBUTE, FILTERABLE_COLUMNS_ATTRIBUTE, INITIALLY_EMPTY_COALESCED_SOURCE_TABLE_ATTRIBUTE, INPUT_TABLE_ATTRIBUTE, KEY_COLUMNS_ATTRIBUTE, MERGED_TABLE_ATTRIBUTE, NON_DISPLAY_TABLE, PLUGIN_NAME, PREVIEW_PARENT_TABLE, SNAPSHOT_VIEWPORT_TYPE, SORT_REVERSE_LOOKUP_ATTRIBUTE, SORT_ROW_REDIRECTION_ATTRIBUTE, SORTED_COLUMNS_ATTRIBUTE, SYSTEMIC_TABLE_ATTRIBUTE, TEST_SOURCE_TABLE_ATTRIBUTE, TOTALS_TABLE_ATTRIBUTE, UNIQUE_KEYS_ATTRIBUTEFields inherited from interface io.deephaven.engine.table.impl.TableDefaults
ZERO_LENGTH_TABLE_ARRAYFields inherited from interface io.deephaven.api.TableOperations
AGG_BY_PRESERVE_EMPTY_DEFAULTFields inherited from interface io.deephaven.api.TableOperationsDefaults
ZERO_LENGTH_COLUMNNAME_ARRAY, ZERO_LENGTH_FILTER_ARRAY -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBarrageTable(@Nullable String channelName, UpdateSourceRegistrar registrar, NotificationQueue notificationQueue, @Nullable ScheduledExecutorService executorService, LinkedHashMap<String, ColumnSource<?>> columns, WritableColumnSource<?>[] writableSources, Map<String, Object> attributes, @Nullable BarrageTable.ViewportChangedCallback viewportChangedCallback) -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd this table to the registrar so that it can be refreshed.protected abstract TableUpdateapplyUpdates(ArrayDeque<BarrageMessage> localPendingUpdates) protected LogEntryConvenience method for writing consistent log messages from this object.protected voiddestroy()Attempt to release (destructively when necessary) resources held by this object.protected voiddoWakeup()@Nullable ObjectgetAttribute(@NotNull String key) Get the value for the specified attribute key.protected NotificationQueueGet the notification queue to insert notifications into as they are generated by listeners duringBaseTable.notifyListeners(io.deephaven.engine.rowset.RowSet, io.deephaven.engine.rowset.RowSet, io.deephaven.engine.rowset.RowSet)andBaseTable.notifyListenersOnError(Throwable, TableListener.Entry).booleanClass<?>[]Class<?>[]voidvoidhandleBarrageMessage(BarrageMessage update) protected booleanisSubscribedColumn(int i) static BarrageTablemake(@Nullable String channelName, @Nullable ScheduledExecutorService executorService, BarrageUtil.ConvertedArrowSchema schema, boolean isFullSubscription, @Nullable BarrageTable.ViewportChangedCallback vpCallback) Set up a replicated table from the given proxy, id and columns.static BarrageTablemake(@Nullable String channelName, UpdateSourceRegistrar registrar, NotificationQueue queue, @Nullable ScheduledExecutorService executor, BarrageUtil.ConvertedArrowSchema schema, boolean isFullSubscription, @Nullable BarrageTable.ViewportChangedCallback vpCallback) protected static @NotNull LinkedHashMap<String,ColumnSource<?>> makeColumns(BarrageUtil.ConvertedArrowSchema schema, WritableColumnSource<?>[] writableSources) Set up the columns for the replicated blink table.protected static @NotNull LinkedHashMap<String,ColumnSource<?>> makeColumns(BarrageUtil.ConvertedArrowSchema schema, WritableColumnSource<?>[] writableSources, WritableRowRedirection emptyRowRedirection) Set up the columns for the replicated redirected table.protected booleanprotected voidrecordMetric(Function<BarrageTable.Stats, org.HdrHistogram.Histogram> hist, long value) protected voidsaveForDebugging(BarrageMessage snapshotOrDelta) @NotNull Stream<PerformanceEntry>Return a stream of performance entries that represent theInstrumentedTableUpdateSourcewhich drive this table.protected voidupdateServerViewport(RowSet viewport, BitSet columns, boolean reverseViewport) Methods inherited from class io.deephaven.engine.table.impl.QueryTable
aggAllBy, aggBy, aggNoMemo, apply, asOfJoin, byteColumnIterator, characterColumnIterator, checkInitiateBinaryOperation, checkInitiateOperation, columnIterator, copy, copy, copy, disableParallelWhereForThread, doubleColumnIterator, dropColumns, exactJoin, flatten, floatColumnIterator, getColumnSource, getColumnSourceMap, getColumnSources, getModifiedColumnSetForUpdates, getResult, getRowSet, getSubTable, getSubTable, head, headBy, headPct, integerColumnIterator, isFlat, join, lazyUpdate, longColumnIterator, memoizeResult, moveColumns, naturalJoin, newModifiedColumnSet, newModifiedColumnSetIdentityTransformer, newModifiedColumnSetIdentityTransformer, newModifiedColumnSetTransformer, newModifiedColumnSetTransformer, newModifiedColumnSetTransformer, newModifiedColumnSetTransformer, objectColumnIterator, objectColumnIterator, partitionBy, partitionedAggBy, propagateFlatness, rangeJoin, releaseCachedResources, renameColumns, reverse, rollup, select, selectDistinct, setFlat, setMemoizeResults, shortColumnIterator, silent, size, slice, slicePct, snapshot, snapshotWhen, sort, sort, tail, tailBy, tailPct, tree, ungroup, update, updateBy, updateView, validateSelect, view, where, whereIn, whereNotIn, withAdditionalColumns, withDefinitionUnsafe, wouldMatchMethods inherited from class io.deephaven.engine.table.impl.BaseTable
addParentReference, addUpdateListener, addUpdateListener, addUpdateListener, append, assertAddOnly, assertAppendOnly, assertBlink, awaitUpdate, awaitUpdate, checkAvailableColumns, copyAttributes, copyAttributes, copySortableColumns, createSnapshotControlIfRefreshing, getDefinition, getLastNotificationStep, getUpdateGraph, hasListeners, initializeWithSnapshot, isAddOnly, isAppendOnly, isBlink, isFailed, isRefreshing, isSystemicObject, markSystemic, notifyListeners, notifyListeners, notifyListenersOnError, parentPerformanceEntryIds, removeBlink, removeUpdateListener, removeUpdateListener, satisfied, setLastNotificationStep, setRefreshing, setTotalsTable, shouldCopyAttribute, toString, withKeys, withUniqueKeysMethods inherited from class io.deephaven.engine.table.impl.BaseGridAttributes
clearSortingRestrictions, getSortableColumns, restrictSortTo, setColumnDescriptions, setLayoutHints, setSortableColumns, withColumnDescription, withColumnDescriptions, withDescriptionMethods inherited from class io.deephaven.engine.table.impl.LiveAttributeMap
copyAttributes, getAttributeKeys, getAttributes, getAttributes, hasAttribute, prepareReturnCopy, prepareReturnThis, published, retainingAttributes, setAttribute, setAttribute, withAttributes, withAttributes, withoutAttributesMethods inherited from class io.deephaven.engine.liveness.LivenessArtifact
manageWithCurrentScopeMethods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessNode
getWeakReference, initializeTransientFieldsForLiveness, onReferenceCountAtZero, tryManage, tryUnmanage, tryUnmanageMethods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
dropReference, tryRetainReferenceMethods inherited from class io.deephaven.util.referencecounting.ReferenceCounted
decrementReferenceCount, forceReferenceCountToZero, getReferenceCountDebug, incrementReferenceCount, resetReferenceCount, tryDecrementReferenceCount, tryIncrementReferenceCountMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface io.deephaven.engine.table.AttributeMap
getAttributeKeys, getAttributes, getAttributes, hasAttribute, retainingAttributes, withAttributes, withAttributes, withoutAttributesMethods inherited from interface io.deephaven.engine.table.GridAttributes
clearSortingRestrictions, restrictSortTo, setLayoutHints, withColumnDescription, withColumnDescriptions, withDescriptionMethods inherited from interface io.deephaven.engine.liveness.LivenessManager
manage, tryManage, tryUnmanage, tryUnmanage, unmanage, unmanageMethods inherited from interface io.deephaven.engine.liveness.LivenessReferent
dropReference, getReferentDescription, getWeakReference, retainReference, tryRetainReferenceMethods inherited from interface io.deephaven.util.datastructures.LongSizedDataStructure
intSize, intSizeMethods inherited from interface io.deephaven.engine.updategraph.NotificationQueue.Dependency
getUpdateGraphMethods inherited from interface io.deephaven.engine.table.impl.NotificationStepReceiver
initializeLastNotificationStepMethods inherited from interface io.deephaven.engine.table.impl.TableDefaults
addUpdateListener, applyToAllBy, applyToAllBy, applyToAllBy, close, coalesce, dropColumnFormats, formatColumns, formatColumnWhere, formatRowWhere, getColumnSource, getColumnSource, hasColumns, hasColumns, headBy, isEmpty, join, meta, moveColumnsDown, moveColumnsUp, numColumns, partitionBy, renameAllColumns, renameColumns, rollup, rollup, rollup, rollup, rollup, selectDistinct, sizeForInstrumentation, snapshotWhen, snapshotWhen, tailBy, wouldMatchMethods inherited from interface io.deephaven.api.TableOperationsDefaults
absSumBy, absSumBy, absSumBy, absSumBy, aggAllBy, aggAllBy, aggAllBy, aggBy, aggBy, aggBy, aggBy, aggBy, aggBy, aggBy, aj, aj, avgBy, avgBy, avgBy, avgBy, countBy, countBy, countBy, countBy, dropColumns, dropColumns, exactJoin, exactJoin, firstBy, firstBy, firstBy, firstBy, groupBy, groupBy, groupBy, join, join, join, lastBy, lastBy, lastBy, lastBy, lazyUpdate, maxBy, maxBy, maxBy, maxBy, medianBy, medianBy, medianBy, medianBy, minBy, minBy, minBy, minBy, naturalJoin, naturalJoin, naturalJoin, naturalJoin, naturalJoin, raj, raj, rangeJoin, select, select, selectDistinct, sort, sortDescending, stdBy, stdBy, stdBy, stdBy, sumBy, sumBy, sumBy, sumBy, ungroup, ungroup, ungroup, ungroup, update, updateBy, updateBy, updateBy, updateBy, updateBy, updateBy, updateBy, updateBy, updateView, varBy, varBy, varBy, varBy, view, wavgBy, wavgBy, wavgBy, wavgBy, where, whereIn, whereNotIn, wsumBy, wsumBy, wsumBy, wsumBy
-
Field Details
-
DEBUG_ENABLED
public static final boolean DEBUG_ENABLED -
log
-
BATCH_SIZE
protected static final int BATCH_SIZE -
stats
-
capacity
protected long capacitythe capacity that the destSources been set to -
destSources
the reinterpreted destination writable sources
-
-
Constructor Details
-
BarrageTable
protected BarrageTable(@Nullable @Nullable String channelName, UpdateSourceRegistrar registrar, NotificationQueue notificationQueue, @Nullable @Nullable ScheduledExecutorService executorService, LinkedHashMap<String, ColumnSource<?>> columns, WritableColumnSource<?>[] writableSources, Map<String, Object> attributes, @Nullable @Nullable BarrageTable.ViewportChangedCallback viewportChangedCallback)
-
-
Method Details
-
getDescription
- Specified by:
getDescriptionin interfaceTable- Overrides:
getDescriptionin classBaseTable<QueryTable>
-
addSourceToRegistrar
public void addSourceToRegistrar()Add this table to the registrar so that it can be refreshed.- ImplNote:
- this cannot be performed in the constructor as the class is subclassed.
-
sourceEntries
Description copied from interface:HasRefreshingSourceReturn a stream of performance entries that represent theInstrumentedTableUpdateSourcewhich drive this table.If no such sources, exist, then an empty stream is returned.
- Specified by:
sourceEntriesin interfaceHasRefreshingSource- Returns:
- a stream of performance entries for this node in the graph
-
applyUpdates
-
getWireChunkTypes
-
getWireTypes
-
getWireComponentTypes
-
getServerViewport
-
getServerReverseViewport
public boolean getServerReverseViewport() -
getServerColumns
-
handleBarrageMessage
- Specified by:
handleBarrageMessagein interfaceBarrageMessage.Listener
-
handleBarrageError
- Specified by:
handleBarrageErrorin interfaceBarrageMessage.Listener
-
updateServerViewport
-
isSubscribedColumn
protected boolean isSubscribedColumn(int i) -
getNotificationQueue
Description copied from class:BaseTableGet the notification queue to insert notifications into as they are generated by listeners duringBaseTable.notifyListeners(io.deephaven.engine.rowset.RowSet, io.deephaven.engine.rowset.RowSet, io.deephaven.engine.rowset.RowSet)andBaseTable.notifyListenersOnError(Throwable, TableListener.Entry). This method may be overridden to provide a different notification queue than the table'sPeriodicUpdateGraphinstance for more complex behavior.- Overrides:
getNotificationQueuein classBaseTable<QueryTable>- Returns:
- The
NotificationQueueto add to
-
make
@InternalUseOnly public static BarrageTable make(@Nullable @Nullable String channelName, @Nullable @Nullable ScheduledExecutorService executorService, @NotNull BarrageUtil.ConvertedArrowSchema schema, boolean isFullSubscription, @Nullable @Nullable BarrageTable.ViewportChangedCallback vpCallback) Set up a replicated table from the given proxy, id and columns. This is intended for internal use only.- Parameters:
channelName- a string representation of the channel for use in Performance LogsexecutorService- an executor service used to flush statsschema- the table schemaisFullSubscription- whether this table is a full subscriptionvpCallback- a callback for viewport changes- Returns:
- a properly initialized
BarrageTable
-
make
public static BarrageTable make(@Nullable @Nullable String channelName, UpdateSourceRegistrar registrar, NotificationQueue queue, @Nullable @Nullable ScheduledExecutorService executor, @NotNull BarrageUtil.ConvertedArrowSchema schema, boolean isFullSubscription, @Nullable @Nullable BarrageTable.ViewportChangedCallback vpCallback) -
makeColumns
@NotNull protected static @NotNull LinkedHashMap<String,ColumnSource<?>> makeColumns(BarrageUtil.ConvertedArrowSchema schema, WritableColumnSource<?>[] writableSources, WritableRowRedirection emptyRowRedirection) Set up the columns for the replicated redirected table.- ApiNote:
- emptyRowRedirection must be initialized and empty.
-
makeColumns
@NotNull protected static @NotNull LinkedHashMap<String,ColumnSource<?>> makeColumns(BarrageUtil.ConvertedArrowSchema schema, WritableColumnSource<?>[] writableSources) Set up the columns for the replicated blink table. -
saveForDebugging
-
maybeEnablePrevTracking
protected boolean maybeEnablePrevTracking() -
doWakeup
protected void doWakeup() -
getAttribute
Description copied from interface:AttributeMapGet the value for the specified attribute key.- Specified by:
getAttributein interfaceAttributeMap<Table>- Overrides:
getAttributein classLiveAttributeMap<Table,QueryTable> - Parameters:
key- The name of the attribute- Returns:
- The value, or
nullif there was none.
-
beginLog
Convenience method for writing consistent log messages from this object.- Parameters:
level- the log level- Returns:
- a LogEntry
-
destroy
@OverridingMethodsMustInvokeSuper protected void destroy()Description copied from class:ReferenceCountedLivenessReferentAttempt to release (destructively when necessary) resources held by this object. This may render the object unusable for subsequent operations. Implementations should be sure to call super.destroy().This is intended to only ever be used as a side effect of decreasing the reference count to 0.
- Overrides:
destroyin classBaseTable<QueryTable>
-
getDeserializationTmConsumer
-
recordMetric
protected void recordMetric(Function<BarrageTable.Stats, org.HdrHistogram.Histogram> hist, long value)
-