Package io.deephaven.extensions.barrage
Class BarrageSubscriptionOptions
java.lang.Object
io.deephaven.extensions.barrage.BarrageSubscriptionOptions
- All Implemented Interfaces:
StreamReaderOptions
@Immutable
public abstract class BarrageSubscriptionOptions
extends Object
implements StreamReaderOptions
-
Nested Class Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
appendTo
(com.google.flatbuffers.FlatBufferBuilder builder) int
builder()
boolean
Requesting clients can specify whether they want columns to be returned wrapped in a list.int
int
By default, we should not specify anything; the server will use whatever it is configured with.static BarrageSubscriptionOptions
of
(io.deephaven.barrage.flatbuf.BarrageSubscriptionOptions options) static BarrageSubscriptionOptions
of
(io.deephaven.barrage.flatbuf.BarrageSubscriptionRequest subscriptionRequest) boolean
By default, prefer to communicate null values using the arrow-compatible validity structure.
-
Constructor Details
-
BarrageSubscriptionOptions
public BarrageSubscriptionOptions()
-
-
Method Details
-
builder
-
of
public static BarrageSubscriptionOptions of(io.deephaven.barrage.flatbuf.BarrageSubscriptionOptions options) -
of
public static BarrageSubscriptionOptions of(io.deephaven.barrage.flatbuf.BarrageSubscriptionRequest subscriptionRequest) -
useDeephavenNulls
@Default public boolean useDeephavenNulls()By default, prefer to communicate null values using the arrow-compatible validity structure.- Specified by:
useDeephavenNulls
in interfaceStreamReaderOptions
- Returns:
- whether to use deephaven nulls
-
columnsAsList
@Default public boolean columnsAsList()Requesting clients can specify whether they want columns to be returned wrapped in a list. This enables easier support in some official arrow clients, but is not the default.- Specified by:
columnsAsList
in interfaceStreamReaderOptions
- Returns:
- true if the columns should be wrapped in a list
-
minUpdateIntervalMs
@Default public int minUpdateIntervalMs()By default, we should not specify anything; the server will use whatever it is configured with. If multiple subscriptions exist on a table (via the same client or via multiple clients) then the server will re-use state needed to perform barrage-acrobatics for both of them. This greatly reduces the burden each client adds to the server's workload. If a given table does want a shorter interval, consider using that shorter interval for all subscriptions to that table. The default interval can be set on the server with the flagio.deephaven.server.arrow.ArrowFlightUtil#DEFAULT_UPDATE_INTERVAL_MS
, or-Dbarrage.minUpdateInterval=1000
. Related, when shortening the minUpdateInterval, you typically want to shorten the server's UGP cycle enough to update at least as quickly. This can be done on the server with the flagio.deephaven.engine.updategraph.impl.PeriodicUpdateGraph#defaultTargetCycleTime
, or-DPeriodicUpdateGraph.targetcycletime=1000
.- Returns:
- the update interval to subscribe for
-
batchSize
@Default public int batchSize()- Specified by:
batchSize
in interfaceStreamReaderOptions
- Returns:
- the preferred batch size if specified
-
maxMessageSize
@Default public int maxMessageSize()- Specified by:
maxMessageSize
in interfaceStreamReaderOptions
- Returns:
- the preferred maximum GRPC message size if specified
-
columnConversionMode
- Specified by:
columnConversionMode
in interfaceStreamReaderOptions
- Returns:
- the conversion mode to use for object columns
-
appendTo
public int appendTo(com.google.flatbuffers.FlatBufferBuilder builder)
-