Class EventDrivenUpdateGraph
java.lang.Object
io.deephaven.engine.updategraph.impl.BaseUpdateGraph
io.deephaven.engine.updategraph.impl.EventDrivenUpdateGraph
- All Implemented Interfaces:
LogOutputAppendable
,NotificationQueue
,NotificationQueue.Dependency
,UpdateGraph
,UpdateSourceRegistrar
An EventDrivenUpdateGraph provides an isolated refresh processor.
As with a PeriodicUpdateGraph
, the EventDrivenUpdateGraph contains a set of sources, but it is refreshed only
when a call to requestRefresh()
is made. All sources are synchronously refreshed on that thread, and then
the resultant notifications are also synchronously processed.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Builds or retrieves a new EventDrivenUpdateGraph.Nested classes/interfaces inherited from class io.deephaven.engine.updategraph.impl.BaseUpdateGraph
BaseUpdateGraph.AccumulatedCycleStats
Nested classes/interfaces inherited from interface io.deephaven.engine.updategraph.NotificationQueue
NotificationQueue.Dependency, NotificationQueue.ErrorNotification, NotificationQueue.Notification
-
Field Summary
Fields inherited from class io.deephaven.engine.updategraph.impl.BaseUpdateGraph
accumulatedCycleStats, DEFAULT_MINIMUM_CYCLE_DURATION_TO_LOG_NANOSECONDS, DEFAULT_UPDATE_GRAPH_NAME, MINIMUM_CYCLE_DURATION_TO_LOG_MILLIS_PROP
-
Method Summary
Modifier and TypeMethodDescriptionnewBuilder
(String name) Create a builder for an EventDrivenUpdateGraph with the given name.int
Retrieve the number of independent update propagation tasks this UpdateGraph can process concurrently.void
Refresh all sources and execute the resulting notifications synchronously on this thread.void
stop()
Attempt to stop this update graph, and cease processing further notifications.Methods inherited from class io.deephaven.engine.updategraph.impl.BaseUpdateGraph
addNotification, addNotifications, addSource, buildOrThrow, clock, createUpdatePerformanceEntry, currentThreadProcessesUpdates, exclusiveLock, existingOrBuild, getInstance, getName, getUpdateGraph, isCycleOnBudget, logDependencies, maybeAddNotification, removeInstance, removeSource, removeSources, resetNextFlushTime, satisfied, serialTableOperationsSafe, setSerialTableOperationsSafe, sharedLock, sourceCount, supportsRefreshing, takeAccumulatedCycleStats, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface io.deephaven.engine.updategraph.NotificationQueue.Dependency
getUpdateGraph
Methods inherited from interface io.deephaven.engine.updategraph.UpdateGraph
allowSerialTableOperations, allowSerialTableOperations, cast, checkInitiateSerialTableOperation, requestSignal
-
Method Details
-
newBuilder
Create a builder for an EventDrivenUpdateGraph with the given name.- Parameters:
name
- the name of the new EventDrivenUpdateGraph- Returns:
- a builder for the EventDrivenUpdateGraph
-
append
-
parallelismFactor
public int parallelismFactor()Description copied from interface:UpdateGraph
Retrieve the number of independent update propagation tasks this UpdateGraph can process concurrently.For example, an implementation using a fixed-size thread pool of update task workers should return the size of the thread pool.
This is exposed in order to allow users to determine the ideal way to partition their queries for maximum parallelism without undue overhead.
- Returns:
- number of independent update propagation tasks this UpdateGraph can process concurrently
-
requestRefresh
public void requestRefresh()Refresh all sources and execute the resulting notifications synchronously on this thread. -
stop
public void stop()Description copied from interface:UpdateGraph
Attempt to stop this update graph, and cease processing further notifications.
-