Github user roshannaik commented on a diff in the pull request:
https://github.com/apache/storm/pull/2502#discussion_r167807269
--- Diff:
storm-client/src/jvm/org/apache/storm/executor/spout/SpoutOutputCollectorImpl.java
---
@@ -44,14 +48,15 @@
private final Boolean isEventLoggers;
private final Boolean isDebug;
private final RotatingMap<Long, TupleInfo> pending;
+ private TupleInfo globalTupleInfo = new TupleInfo(); // thread
safety: assumes Collector.emit*() calls are externally synchronized (if needed).
--- End diff --
To get the id of the current thread involves a call to
Thread.currentThread() which is quite
[expensive](!http://www.jutils.com/checks/performance.html)... so not good to
use to determine whether or not to use fast path.
I am introducing that check if topology.debug is enabled as a compromise.
This mode could
be used mode to do any checks in dev mode that are unnecessary or
expensive to do repeatedly in production.
I have opened:
[STORM-2945](!https://issues.apache.org/jira/browse/STORM-2945) to nail down
and document background emits support.. we can document both spout & bolt
support semantics together in the same document.
---