You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by Junguk Cho <jm...@gmail.com> on 2017/05/17 21:14:21 UTC

Latency measurement and tick tuple

Hi,

I have two questions.

1. I would like measure end-to-end latency (spout -> last bolt).
Based on "ThroughputvsLatency" example, it uses acker to measure latency.

If I do not use "acker" meaning "at most", what is the best to measure
latency?
I am planning to use similar approach with "ThroughputvsLatency".
I put a timestamp in tuple from a spout and last bolt gets it and then
calculates an end-to-end latency.
I thought there are many parameters which affect measurements like queue
size and flush time for it.


2. Question about "tick tuple".
In RollingTopWords example, it uses tick tuple to flush data from bolts.
As I understood, it uses a timer in an executor and sends a tick tuple to
the the executor based on timer timeout.

I thought this approach is based on the assumption that launching time of
all bolts is almost same, so tick tuple triggers at the similar time in all
bolts.
However, if a fault happens in one bolt using tick, they may not be sync
anymore and can cause problems. Is my thught right?

I also looked at another example. It uses "one signal spout" to send a
signal to bolts to flush data.
Conceptually, I thought the goals of both approaches are the same.
What is the difference like pros and cons between them?


Thanks,
Junguk