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>,NotificationStepReceiver,NotificationStepSource,TableDefaults,BarrageMessage.Listener,Table,DynamicNode,NotificationQueue.Dependency,SystemicObject<Table>,LongSizedDataStructure,Serializable
- Direct Known Subclasses:
BarrageBlinkTable,BarrageRedirectedTable
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
ENABLE_PARALLEL_SNAPSHOT, MINIMUM_PARALLEL_SELECT_ROWS, MINIMUM_PARALLEL_SNAPSHOT_ROWS, USE_CHUNKED_CROSS_JOIN, 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, description, 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(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 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(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) 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, 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, awaitUpdate, awaitUpdate, checkAvailableColumns, copyAttributes, copyAttributes, copySortableColumns, createSnapshotControlIfRefreshing, getDefinition, getDescription, getLastNotificationStep, getUpdateGraph, hasListeners, initializeWithSnapshot, isAddOnly, isAppendOnly, isBlink, isFailed, isRefreshing, isSystemicObject, markSystemic, notifyListeners, notifyListeners, notifyListenersOnError, 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- See Also:
-
stats
-
capacity
protected long capacitythe capacity that the destSources been set to -
destSources
the reinterpreted destination writable sources
-
-
Constructor Details
-
BarrageTable
protected BarrageTable(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
-
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.
-
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 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:
executorService- 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(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)
-