Class PrintListener
- All Implemented Interfaces:
com.fishlib.base.log.LogOutputAppendable,NotificationQueue.Dependency,LivenessManager,LivenessNode,LivenessReferent,ListenerBase,ShiftAwareListener,Serializable
This can be used to debug the performance of a query by attaching to various tables in an effort to understand the update pattern. Optionally, you can also print out the head of the table.
Output is directed to stdout, thus this should not be enabled in production queries.
After you are finished, call the stop() method to remove this listener from the source table.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.illumon.iris.db.v2.InstrumentedShiftAwareListener
InstrumentedShiftAwareListener.NotificationNested classes/interfaces inherited from class com.illumon.iris.db.v2.InstrumentedListenerBase
InstrumentedListenerBase.ErrorNotification, InstrumentedListenerBase.NotificationBaseNested classes/interfaces inherited from interface com.illumon.iris.db.v2.ShiftAwareListener
ShiftAwareListener.Update -
Constructor Summary
ConstructorsConstructorDescriptionPrintListener(String description, DynamicTable table) Create a PrintListener attached to the given table.PrintListener(String description, DynamicTable table, int rowCount) Create a PrintListener attached to the given table. -
Method Summary
Modifier and TypeMethodDescriptionvoidonFailureInternal(Throwable originalException, UpdatePerformanceTracker.Entry sourceEntry) voidonUpdate(ShiftAwareListener.Update upstream) Process notification of table changes.voidstop()Remove this listener from the table.Methods inherited from class com.illumon.iris.db.v2.InstrumentedShiftAwareListener
getNotificationMethods inherited from class com.illumon.iris.db.v2.InstrumentedListenerBase
append, canExecute, getEntry, getErrorNotification, onFailure, onFailureInternalWithDependent, satisfied, setVerboseLogging, toStringMethods inherited from class com.illumon.iris.db.util.liveness.LivenessArtifact
manageWithCurrentScope, unmanage, unmanageMethods inherited from class com.illumon.iris.db.util.liveness.ReferenceCountedLivenessNode
destroy, dropReference, getWeakReference, initializeTransientFieldsForLiveness, onReferenceCountAtZero, tryManage, tryRetainReferenceMethods inherited from class com.illumon.util.referencecounting.ReferenceCounted
decrementReferenceCount, incrementReferenceCount, resetReferenceCount, tryDecrementReferenceCount, tryIncrementReferenceCountMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.illumon.iris.db.v2.ListenerBase
getErrorNotification, onFailureMethods inherited from interface com.illumon.iris.db.util.liveness.LivenessManager
manage, tryManageMethods inherited from interface com.illumon.iris.db.util.liveness.LivenessReferent
dropReference, getReferentDescription, getWeakReference, retainReference, tryRetainReference
-
Constructor Details
-
PrintListener
Create a PrintListener attached to the given table. Note that this automatically listens to the source table.- Parameters:
description- the description (for use in each print statement)table- the table to attach to
-
PrintListener
Create a PrintListener attached to the given table. Note that this automatically listens to the source table.- Parameters:
description- the description (for use in each print statement)table- the table to attach torowCount- how many rows to print out on each update
-
-
Method Details
-
onUpdate
Description copied from interface:ShiftAwareListenerProcess notification of table changes.The Listener onUpdate call executes within the
LiveTableMonitorrefresh loop. Any tables used within the listener's onUpdate call must have already been refreshed. Using the typical pattern of a Listener that is listening to a single table, withDynamicTable.listenForUpdates(Listener), this is trivially true.When the listener must reference more than just one parent, the tables (or other objects) it references, must be made a
NotificationQueue.Dependencyof the listener. For listeners that reference multiple ticking tables, a common pattern is to use aMergedListenerand collection ofListenerRecorders.- Parameters:
upstream- The set of upstream table updates.
-
onFailureInternal
public void onFailureInternal(Throwable originalException, UpdatePerformanceTracker.Entry sourceEntry) - Specified by:
onFailureInternalin classInstrumentedListenerBase
-
stop
public void stop()Remove this listener from the table.
-