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 aReplayDatabase
for 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 aReplayDatabase
for 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
ReplaySettings
object. The replay date, start time, and speed are controlled by these settings. - The per table configuration stored in a
ReplayConfigurationImpl
that 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
Database
object 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
timeTable
s,WindowCheck
operations, 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:
ClassNotFoundException
InvocationTargetException
NoSuchMethodException
InstantiationException
IllegalAccessException
- The PersistentQueryConfiguration type specific fields, which are represented by the
-