Class BarrageSubscriptionOptions

java.lang.Object
io.deephaven.extensions.barrage.BarrageSubscriptionOptions
All Implemented Interfaces:
StreamReaderOptions

@Immutable public abstract class BarrageSubscriptionOptions extends Object implements StreamReaderOptions
  • Constructor Details

    • BarrageSubscriptionOptions

      public BarrageSubscriptionOptions()
  • Method Details

    • builder

      public static BarrageSubscriptionOptions.Builder 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 interface StreamReaderOptions
      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 interface StreamReaderOptions
      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 flag io.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 flag io.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 interface StreamReaderOptions
      Returns:
      the preferred batch size if specified
    • maxMessageSize

      @Default public int maxMessageSize()
      Specified by:
      maxMessageSize in interface StreamReaderOptions
      Returns:
      the preferred maximum GRPC message size if specified
    • columnConversionMode

      @Default public ColumnConversionMode columnConversionMode()
      Specified by:
      columnConversionMode in interface StreamReaderOptions
      Returns:
      the conversion mode to use for object columns
    • appendTo

      public int appendTo(com.google.flatbuffers.FlatBufferBuilder builder)