Package io.deephaven.enterprise.dnd
Class ConfigureReplay
java.lang.Object
io.deephaven.enterprise.dnd.ConfigureReplay
Configure replay persistent queries.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionconfigureReplay(io.deephaven.shadow.enterprise.com.fishlib.configuration.Configuration configuration, @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.databases.ReplaySettings replaySettings) Set up aReplayDatabasefor this worker.provideReplayTransformer(@NotNull io.deephaven.shadow.enterprise.com.fishlib.configuration.Configuration enterpriseConfiguration, @Nullable io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.databases.ReplaySettings replaySettings)
-
Constructor Details
-
ConfigureReplay
public ConfigureReplay()
-
-
Method Details
-
provideReplayTransformer
@Provides @Named("databaseTransformer") @Nullable public @Nullable Function<Database,Database> provideReplayTransformer(@NotNull @NotNull io.deephaven.shadow.enterprise.com.fishlib.configuration.Configuration enterpriseConfiguration, @Nullable @Nullable io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.databases.ReplaySettings replaySettings) -
configureReplay
public static Function<Database,Database> configureReplay(@NotNull io.deephaven.shadow.enterprise.com.fishlib.configuration.Configuration configuration, @NotNull @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.tables.databases.ReplaySettings replaySettings) throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException Set up aReplayDatabasefor this worker.The replay is controlled by replacing the
DateTimeUtils.currentClock()with a simulated clock.The configuration of a replay query derives from two distinct sources:
- The PersistentQueryConfiguration type specific fields, which are represented by the
ReplaySettingsobject. The replay date, start time, and speed are controlled by these settings. - The per table configuration stored in a
ReplayConfigurationImplthat is derived from configuration properties. The per-table configuration determines the Timestamp column name and whether historicalTable or liveTable is used for the replayed data.
The
Databaseobject created by Dagger is wrapped with aReplayDatabase, which filters tables using the replay Clock before returning them to the query.In addition to the Database, the replay clock is used by
timeTables,WindowCheckoperations, and the result of theDateTimeUtils.today()function. This allows many simple persistent queries to function as if they were executing at the time returned by the replay clock.- Parameters:
configuration- the Enterprise configurationreplaySettings- the replay settings from the worker JSON- Throws:
ClassNotFoundExceptionInvocationTargetExceptionNoSuchMethodExceptionInstantiationExceptionIllegalAccessException
- The PersistentQueryConfiguration type specific fields, which are represented by the
-